What Is PyXB? ============= PyXB is a pure `Python `_ package that generates Python 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 major goals of PyXB are: * Provide a generated Python interface that is "Pythonic", meaning similar to one that would have been hand-written: + Attributes and elements are Python properties, with name conflicts resolved in favor of elements + Elements with maxOccurs larger than 1 are stored as Python lists + Bindings for type extensions inherit from the binding for the base type + Enumeration constraints are exposed as class (constant) variables * Support bi-directional conversion (document to Python and back) * Allow easy customization of the generated bindings to provide functionality along with content * Support all XMLSchema features that are in common use, including: + complex content models (nested all/choice/sequence) + cross-namespace dependencies + include and import directives + constraints on simple types * Validate the documents against their schema Secondary goals, some of which have been achieved in the current release, are listed in :ref:`pyxb_vision`.