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 PyXB Vision.