generateDS.py generates Python data structures (for example, class definitions) from an XML Schema document. These data structures represent the elements in an XML document described by the XML Schema.
It also generates parsers that load an XML document into those data structures. In addition, a separate file containing subclasses (stubs) is optionally generated. The user can add methods to the subclasses in order to process the contents of an XML document.
The generated Python code contains:
� A class definition for each element defined in the XML Schema document.
� A main and driver function that can be used to test the generated code.
� A parser that will read an XML document which satisfies the XML Schema from which the parser was generated. The parser creates and populates a tree structure of instances of the generated Python classes.
� Methods in each class to export the instance back out to XML (method export) and to export the instance to a literal representing the Python data structure (method exportLiteral).
The generated classes contain the following:
� A constructor method (__init__), with member variable initializers.
� Methods with names 'getX' and 'setX' for each member variable 'X' or, if the member variable is defined with maxOccurs="unbounded", methods with names 'getX', 'setX', 'addX', and 'insertX'.
� A "build" method that can be used to populate an instance of the class from a node in a minidom tree.
� An "export" method that will write the instance (and any nested sub-instances) to a file object as XML text.
� An "exportLiteral" method that will write the instance (and any nested sub-instances) to a file object as Python literals (text).
The generated subclass file contains one (sub-)class definition for each data representation class. If the subclass file is used, then the parser creates instances of the subclasses (instead of creating instances of the superclasses). This enables the user to extend the subclasses with "tree walk" methods, for example, that process the contents of the XML file. The user can also generate and extend multiple subclass files which use a single, common superclass file, thus implementing a number of different processes on the same XML document type.
This document explains (1) how to use generateDS.py; (2) how to use the Python code and data structures that it generates; and (3) how to modify the generated code for special purposes.
What's New in This Release: [ read full changelog ]
· Fix for generation of recusively defined simpleTypes, e.g. a simpleType defined as a restriction of another simpleType. (see fix_simpletype comment in generateDS.py)
· Added version number to generated class files.
· Fixes to/for process_includes.py -- DirPath/DIRPATH now initialized correctly and fixed failure to initialize a local variable.