Several months ago I announced the initial public release of PyXB, a
pure Python package that generates Python bindings from XML schema.
PyXB is now feature-complete at version 0.7.3, with an expected posting
of the stable version 1.0.0 by the end of September. The documentation
is at http://pyxb.sourceforge.net, and the release can be downloaded
from links on that page.
PyXB supports almost all features of XML schema, including:
* Class constants corresponding to string enumeration constraints
* Simple and complex type definitions
* List and union datatypes
* Constraints on (simple) datatypes (e.g., minInclusive, length)
* Model groups and attribute groups
* Complex content models (all, sequence, choice); minOccurs and
* Abstract types, xsi:type, substitution groups
* Nillable elements with xsi:nil
* Namespace qualified attributes and elements
* Import and include directives
* Documentation annotations present in the schema are converted to
Python docstrings in the generated bindings.
* Pattern constraints (as long as the simple type derives from
something that is represented as a Python string)
The full package includes bindings for almost two dozen WS-*--related
schema including SOAP and WSDL, and the complete set of schema for
OpenGIS. Its limitations are that it has only crude support for
bindings that do not validate, does not support the "redefine"
directive, and is not always as informative regarding why a particular
document is invalid as one might wish.