Note 0:

    See http://gnosis.cx/publish/programming/xml_matters_2.txt
    and http://gnosis.cx/publish/programming/xml_matters_11.txt
    for a detailed discussion of this module.

Note 1:

    This version of [xml_objectify] should work with Python 2.0
    and later (and with any newer PyXML package users might have
    installed).  Sorry about the loss of Python 1.52
    compatibility, but the XML support only really stabilized
    with 2.0 anyway.  Older versions can be downloaded at:

      http://gnosis.cx/download/xml_objectify/

    Those older versions might lack certain features.

Note 2:

    This module is a companion to the [xml_pickle] module.
    However, the focus of each is different.  [xml_pickle] starts
    with an generic Python object, and produces a specialized XML
    document (and reads back from that custom DTD).
    [xml_objectify] starts with a generic XML document, and
    produces a somewhat specialized Python object.  Depending on
    the original and natural form of your data, one companion
    module is preferable to the other.

Usage:

    # Create a "factory object"
    xml_object = XML_Objectify('test.xml',parser=DOM)
    # Create two different objects with recursively equal values
    py_obj1 = xml_object.make_instance()
    py_obj2 = xml_object.make_instance()

Classes:

    XML_Objectify
    _XO_
    ExpatFactory

Functions:

    keep_containers(yes_no)
    pyobj_from_dom(dom_node)
    safe_eval()
    pyobj_printer(py_obj)
    _dir(obj)

