Uche Ogbuji wrote:
On Wed, Nov 18, 2009 at 5:01 PM, Peter A. Bigot <big...@acm.org <mailto:big...@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

_______________________________________________
XML-SIG maillist  -  XML-SIG@python.org
http://mail.python.org/mailman/listinfo/xml-sig

Reply via email to