Wednesday, April 19, 2017

PyXB

"PyXB (“pixbee”) is a pure Python package that generates Python source code for classes that correspond to data structures defined by XMLSchema. The generated classes support bi-directional conversion between XML documents and Python objects. 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."

http://pyxb.sourceforge.net/

https://github.com/pabigot/pyxb

No comments:

Post a Comment