[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
Re: [xml-dev] [ANN] Python XML Schema Bindings 1.0.0
- From: "Peter A. Bigot" <bigotp@acm.org>
- To: Uche Ogbuji <uche@ogbuji.net>
- Date: Thu, 19 Nov 2009 15:45:42 -0700
Uche Ogbuji wrote:
> On Wed, Nov 18, 2009 at 5:01 PM, Peter A. Bigot <bigotp@acm.org
> <mailto:bigotp@acm.org>> wrote:
>
> PyXB version 1.0.0 is now available from SourceForge at:
> http://sourceforge.net/projects/pyxb/
>
> PyXB (Python XML Schema Bindings; "pixbee") is a pure Python
> package that generates Python source code for classes that
> correspond to data structures defined by XMLSchema. In concept it
> is similar to JAXB for Java and CodeSynthesis XSD for C++. The
> current release supports XML Schema 1.0.
>
> This looks like impressive work.
Thank you.
>
> I must say, though, aren't static-language-style data bindings rather
> rigid, and counter to the spirit of Python? Of course, I develop a
> tool with a very different philosophy [1], but perhaps it's possible
> to probe the matter with use-cases.
A dislike of static structures is certainly a prevalent view among
Python aficionados, even those who tolerate XML. I don't expect to get
much attention from people who are building systems where they are in
full control of both client and server implementation; many of those
have no motivation to use XML at all, and would be better off using
pickled data structures or JSON for data persistence and
inter/intra-system communication.
The driving environment for PyXB's development is a community of
engineers who use Python to compose applications from existing
capabilities in multiple languages (primarily Fortran and C++). The
execution model and development environment of Java do not suit their
culture. They are being asked to publish interfaces to their systems in
an enterprise-wide service-oriented architecture, and to make use of
services provided by others. The environment mandates an
industry-supported standard for interfaces that can be accessed through
a machine-readable service definition, rather than a vendor-provided
language-specific library. Java and C++ both have tools that support
XML as a solution for this problem; Python has historically been less
mature.
When operating with XML-based services that define their interfaces with
schema, static bindings simplify both service provider and client. In
some cases it may be easy in Python to consume a service's XML without a
binding, but to produce a document that is certain to conform to the
service requirements can be quite a bit more effort. This is especially
true for complex descriptions like the Geography Markup Language.
For these situations, my hope is that PyXB will help eliminate the overt
intrusion of XML into the code of an end user who really only wants to
use (or provide) the service. PyXB is only appropriate where an XML
schema is already available or useful for other reasons. That the
current version nearly insists upon doing validation of input and output
will make it unsuitable for some of those cases, though that's an issue
that would be straightforward to address.
Peter
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]