<?xml version="1.0" encoding="ascii"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>lxml.objectify</title> <link rel="stylesheet" href="epydoc.css" type="text/css" /> <script type="text/javascript" src="epydoc.js"></script> </head> <body bgcolor="white" text="black" link="blue" vlink="#204080" alink="#204080"> <!-- ==================== NAVIGATION BAR ==================== --> <table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0"> <tr valign="middle"> <!-- Home link --> <th> <a href="lxml-module.html">Home</a> </th> <!-- Tree link --> <th> <a href="module-tree.html">Trees</a> </th> <!-- Index link --> <th> <a href="identifier-index.html">Indices</a> </th> <!-- Help link --> <th> <a href="help.html">Help</a> </th> <!-- Project homepage --> <th class="navbar" align="right" width="100%"> <table border="0" cellpadding="0" cellspacing="0"> <tr><th class="navbar" align="center" ><a class="navbar" target="_top" href="http://codespeak.net/lxml/">lxml API</a></th> </tr></table></th> </tr> </table> <table width="100%" cellpadding="0" cellspacing="0"> <tr valign="top"> <td width="100%"> <span class="breadcrumbs"> <a href="lxml-module.html">Package lxml</a> :: Module objectify </span> </td> <td> <table cellpadding="0" cellspacing="0"> <!-- hide/show private --> <tr><td align="right"><span class="options" >[<a href="frames.html" target="_top">frames</a >] | <a href="lxml.objectify-module.html" target="_top">no frames</a>]</span></td></tr> </table> </td> </tr> </table> <!-- ==================== MODULE DESCRIPTION ==================== --> <h1 class="epydoc">Module objectify</h1><p class="nomargin-top"></p> The <tt class="rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutils literal"><span class="pre">lxml.objectify</span></tt> module implements a Python object API for XML. It is based on <a href="lxml.etree-module.html" class="link">lxml.etree</a>. <hr /> <div class="fields"> <p><strong>Version:</strong> 2.0.10-60473 </p> </div><!-- ==================== CLASSES ==================== --> <a name="section-Classes"></a> <table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr bgcolor="#70b0f0" class="table-header"> <td align="left" colspan="2" class="table-header"> <span class="table-header">Classes</span></td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="lxml.objectify.BoolElement-class.html" class="summary-name">BoolElement</a><br /> Boolean type base on string values: 'true' or 'false'. </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="lxml.objectify.ElementMaker-class.html" class="summary-name">ElementMaker</a><br /> ElementMaker(self, namespace=None, nsmap=None, annotate=True, makeelement=None) </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="lxml.objectify.FloatElement-class.html" class="summary-name">FloatElement</a> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="lxml.objectify.IntElement-class.html" class="summary-name">IntElement</a> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="lxml.objectify.LongElement-class.html" class="summary-name">LongElement</a> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="lxml.objectify.NoneElement-class.html" class="summary-name">NoneElement</a> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="lxml.objectify.NumberElement-class.html" class="summary-name">NumberElement</a> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="lxml.objectify.ObjectPath-class.html" class="summary-name">ObjectPath</a><br /> ObjectPath(path) Immutable object that represents a compiled object path. </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="lxml.objectify.ObjectifiedDataElement-class.html" class="summary-name">ObjectifiedDataElement</a><br /> This is the base class for all data type Elements. </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="lxml.objectify.ObjectifiedElement-class.html" class="summary-name">ObjectifiedElement</a><br /> Main XML Element class. </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="lxml.objectify.ObjectifyElementClassLookup-class.html" class="summary-name">ObjectifyElementClassLookup</a><br /> ObjectifyElementClassLookup(self, tree_class=None, empty_data_class=None) Element class lookup method that uses the objectify classes. </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="lxml.objectify.PyType-class.html" class="summary-name">PyType</a><br /> PyType(self, name, type_check, type_class, stringify=None) User defined type. </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="lxml.objectify.StringElement-class.html" class="summary-name">StringElement</a><br /> String data class. </td> </tr> </table> <!-- ==================== FUNCTIONS ==================== --> <a name="section-Functions"></a> <table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr bgcolor="#70b0f0" class="table-header"> <td align="left" colspan="2" class="table-header"> <span class="table-header">Functions</span></td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="lxml.objectify-module.html#DataElement" class="summary-sig-name">DataElement</a>(<span class="summary-sig-arg">_value</span>, <span class="summary-sig-arg">attrib</span>=<span class="summary-sig-default">None</span>, <span class="summary-sig-arg">nsmap</span>=<span class="summary-sig-default">None</span>, <span class="summary-sig-arg">_pytype</span>=<span class="summary-sig-default">None</span>, <span class="summary-sig-arg">_xsi</span>=<span class="summary-sig-default">None</span>, <span class="summary-sig-arg">**_attributes</span>)</span><br /> Create a new element from a Python value and XML attributes taken from keyword arguments or a dictionary passed as second argument.</td> <td align="right" valign="top"> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="lxml.objectify-module.html#Element" class="summary-sig-name">Element</a>(<span class="summary-sig-arg">_tag</span>, <span class="summary-sig-arg">attrib</span>=<span class="summary-sig-default">None</span>, <span class="summary-sig-arg">nsmap</span>=<span class="summary-sig-default">None</span>, <span class="summary-sig-arg">_pytype</span>=<span class="summary-sig-default">None</span>, <span class="summary-sig-arg">**_attributes</span>)</span><br /> Objectify specific version of the lxml.etree Element() factory that always creates a structural (tree) element.</td> <td align="right" valign="top"> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="lxml.objectify-module.html#XML" class="summary-sig-name">XML</a>(<span class="summary-sig-arg">xml</span>, <span class="summary-sig-arg">parser</span>=<span class="summary-sig-default">None</span>)</span><br /> Objectify specific version of the lxml.etree fromstring() function that uses the objectify parser.</td> <td align="right" valign="top"> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="lxml.objectify-module.html#annotate" class="summary-sig-name">annotate</a>(<span class="summary-sig-arg">element_or_tree</span>, <span class="summary-sig-arg">ignore_old</span>=<span class="summary-sig-default">True</span>, <span class="summary-sig-arg">ignore_xsi</span>=<span class="summary-sig-default">False</span>, <span class="summary-sig-arg">empty_pytype</span>=<span class="summary-sig-default">None</span>, <span class="summary-sig-arg">empty_type</span>=<span class="summary-sig-default">None</span>, <span class="summary-sig-arg">annotate_xsi</span>=<span class="summary-sig-default">0</span>, <span class="summary-sig-arg">annotate_pytype</span>=<span class="summary-sig-default">1</span>)</span><br /> Recursively annotates the elements of an XML tree with 'xsi:type' and/or 'py:pytype' attributes.</td> <td align="right" valign="top"> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="lxml.objectify-module.html#deannotate" class="summary-sig-name">deannotate</a>(<span class="summary-sig-arg">element_or_tree</span>, <span class="summary-sig-arg">pytype</span>=<span class="summary-sig-default">True</span>, <span class="summary-sig-arg">xsi</span>=<span class="summary-sig-default">True</span>)</span><br /> Recursively de-annotate the elements of an XML tree by removing 'pytype' and/or 'type' attributes.</td> <td align="right" valign="top"> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="lxml.objectify-module.html#dump" class="summary-sig-name">dump</a>(<span class="summary-sig-arg">...</span>)</span><br /> dump(_Element element not None)</td> <td align="right" valign="top"> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="enableRecursiveStr"></a><span class="summary-sig-name">enableRecursiveStr</span>(<span class="summary-sig-arg">on</span>=<span class="summary-sig-default">True</span>)</span><br /> Enable a recursively generated tree representation for str(element), based on objectify.dump(element).</td> <td align="right" valign="top"> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="lxml.objectify-module.html#fromstring" class="summary-sig-name">fromstring</a>(<span class="summary-sig-arg">xml</span>, <span class="summary-sig-arg">parser</span>=<span class="summary-sig-default">None</span>)</span><br /> Objectify specific version of the lxml.etree fromstring() function that uses the objectify parser.</td> <td align="right" valign="top"> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="lxml.objectify-module.html#getRegisteredTypes" class="summary-sig-name">getRegisteredTypes</a>()</span><br /> Returns a list of the currently registered PyType objects.</td> <td align="right" valign="top"> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="lxml.objectify-module.html#makeparser" class="summary-sig-name">makeparser</a>(<span class="summary-sig-arg">remove_blank_text</span>=<span class="summary-sig-default">True</span>, <span class="summary-sig-arg">**kw</span>)</span><br /> Create a new XML parser for objectify trees.</td> <td align="right" valign="top"> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="lxml.objectify-module.html#parse" class="summary-sig-name">parse</a>(<span class="summary-sig-arg">f</span>, <span class="summary-sig-arg">parser</span>=<span class="summary-sig-default">None</span>)</span><br /> Parse a file or file-like object with the objectify parser.</td> <td align="right" valign="top"> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="lxml.objectify-module.html#pyannotate" class="summary-sig-name">pyannotate</a>(<span class="summary-sig-arg">element_or_tree</span>, <span class="summary-sig-arg">ignore_old</span>=<span class="summary-sig-default">False</span>, <span class="summary-sig-arg">ignore_xsi</span>=<span class="summary-sig-default">False</span>, <span class="summary-sig-arg">empty_pytype</span>=<span class="summary-sig-default">None</span>)</span><br /> Recursively annotates the elements of an XML tree with 'pytype' attributes.</td> <td align="right" valign="top"> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="pytypename"></a><span class="summary-sig-name">pytypename</span>(<span class="summary-sig-arg">obj</span>)</span><br /> Find the name of the corresponding PyType for a Python object.</td> <td align="right" valign="top"> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="lxml.objectify-module.html#setDefaultParser" class="summary-sig-name">setDefaultParser</a>(<span class="summary-sig-arg">...</span>)</span></td> <td align="right" valign="top"> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="lxml.objectify-module.html#setPytypeAttributeTag" class="summary-sig-name">setPytypeAttributeTag</a>(<span class="summary-sig-arg">...</span>)</span></td> <td align="right" valign="top"> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="lxml.objectify-module.html#set_default_parser" class="summary-sig-name">set_default_parser</a>(<span class="summary-sig-arg">new_parser</span>=<span class="summary-sig-default"> None</span>)</span><br /> Replace the default parser used by objectify's Element() and fromstring() functions.</td> <td align="right" valign="top"> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="lxml.objectify-module.html#set_pytype_attribute_tag" class="summary-sig-name">set_pytype_attribute_tag</a>(<span class="summary-sig-arg">attribute_tag</span>=<span class="summary-sig-default">None</span>)</span><br /> Change name and namespace of the XML attribute that holds Python type information.</td> <td align="right" valign="top"> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="lxml.objectify-module.html#xsiannotate" class="summary-sig-name">xsiannotate</a>(<span class="summary-sig-arg">element_or_tree</span>, <span class="summary-sig-arg">ignore_old</span>=<span class="summary-sig-default">False</span>, <span class="summary-sig-arg">ignore_pytype</span>=<span class="summary-sig-default">False</span>, <span class="summary-sig-arg">empty_type</span>=<span class="summary-sig-default">None</span>)</span><br /> Recursively annotates the elements of an XML tree with 'xsi:type' attributes.</td> <td align="right" valign="top"> </td> </tr> </table> </td> </tr> </table> <!-- ==================== VARIABLES ==================== --> <a name="section-Variables"></a> <table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr bgcolor="#70b0f0" class="table-header"> <td align="left" colspan="2" class="table-header"> <span class="table-header">Variables</span></td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a name="E"></a><span class="summary-name">E</span> = <code title="<lxml.objectify.ElementMaker object at 0x87d9a54>"><lxml.objectify.ElementMaker object at 0x87d9a54></code> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="lxml.objectify-module.html#PYTYPE_ATTRIBUTE" class="summary-name">PYTYPE_ATTRIBUTE</a> = <code title="'{http://codespeak.net/lxml/objectify/pytype}pytype'"><code class="variable-quote">'</code><code class="variable-string">{http://codespeak.net/lxml/objectify/pytyp</code><code class="variable-ellipsis">...</code></code> </td> </tr> </table> <!-- ==================== FUNCTION DETAILS ==================== --> <a name="section-FunctionDetails"></a> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr bgcolor="#70b0f0" class="table-header"> <td align="left" colspan="2" class="table-header"> <span class="table-header">Function Details</span></td> </tr> </table> <a name="DataElement"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">DataElement</span>(<span class="sig-arg">_value</span>, <span class="sig-arg">attrib</span>=<span class="sig-default">None</span>, <span class="sig-arg">nsmap</span>=<span class="sig-default">None</span>, <span class="sig-arg">_pytype</span>=<span class="sig-default">None</span>, <span class="sig-arg">_xsi</span>=<span class="sig-default">None</span>, <span class="sig-arg">**_attributes</span>)</span> </h3> </td><td align="right" valign="top" > </td> </tr></table> <p>Create a new element from a Python value and XML attributes taken from keyword arguments or a dictionary passed as second argument.</p> <p>Automatically adds a 'pytype' attribute for the Python type of the value, if the type can be identified. If '_pytype' or '_xsi' are among the keyword arguments, they will be used instead.</p> <p>If the _value argument is an ObjectifiedDataElement instance, its py:pytype, xsi:type and other attributes and nsmap are reused unless they are redefined in attrib and/or keyword arguments.</p> <dl class="fields"> </dl> </td></tr></table> </div> <a name="Element"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">Element</span>(<span class="sig-arg">_tag</span>, <span class="sig-arg">attrib</span>=<span class="sig-default">None</span>, <span class="sig-arg">nsmap</span>=<span class="sig-default">None</span>, <span class="sig-arg">_pytype</span>=<span class="sig-default">None</span>, <span class="sig-arg">**_attributes</span>)</span> </h3> </td><td align="right" valign="top" > </td> </tr></table> <p>Objectify specific version of the lxml.etree Element() factory that always creates a structural (tree) element.</p> <p>NOTE: requires parser based element class lookup activated in lxml.etree!</p> <dl class="fields"> </dl> </td></tr></table> </div> <a name="XML"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">XML</span>(<span class="sig-arg">xml</span>, <span class="sig-arg">parser</span>=<span class="sig-default">None</span>)</span> </h3> </td><td align="right" valign="top" > </td> </tr></table> <p>Objectify specific version of the lxml.etree fromstring() function that uses the objectify parser.</p> <p>You can pass a different parser as second argument.</p> <dl class="fields"> </dl> </td></tr></table> </div> <a name="annotate"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">annotate</span>(<span class="sig-arg">element_or_tree</span>, <span class="sig-arg">ignore_old</span>=<span class="sig-default">True</span>, <span class="sig-arg">ignore_xsi</span>=<span class="sig-default">False</span>, <span class="sig-arg">empty_pytype</span>=<span class="sig-default">None</span>, <span class="sig-arg">empty_type</span>=<span class="sig-default">None</span>, <span class="sig-arg">annotate_xsi</span>=<span class="sig-default">0</span>, <span class="sig-arg">annotate_pytype</span>=<span class="sig-default">1</span>)</span> </h3> </td><td align="right" valign="top" > </td> </tr></table> <p>Recursively annotates the elements of an XML tree with 'xsi:type' and/or 'py:pytype' attributes.</p> <p>If the 'ignore_old' keyword argument is True (the default), current 'py:pytype' attributes will be ignored for the type annotation. Set to False if you want reuse existing 'py:pytype' information (iff appropriate for the element text value).</p> <p>If the 'ignore_xsi' keyword argument is False (the default), existing 'xsi:type' attributes will be used for the type annotation, if they fit the element text values.</p> <p>Note that the mapping from Python types to XSI types is usually ambiguous. Currently, only the first XSI type name in the corresponding PyType definition will be used for annotation. Thus, you should consider naming the widest type first if you define additional types.</p> <p>The default 'py:pytype' annotation of empty elements can be set with the <tt class="rst-docutils literal"><span class="pre">empty_pytype</span></tt> keyword argument. Pass 'str', for example, to make string values the default.</p> <p>The default 'xsi:type' annotation of empty elements can be set with the <tt class="rst-docutils literal"><span class="pre">empty_type</span></tt> keyword argument. The default is not to annotate empty elements. Pass 'string', for example, to make string values the default.</p> <p>The keyword arguments 'annotate_xsi' (default: 0) and 'annotate_pytype' (default: 1) control which kind(s) of annotation to use.</p> <dl class="fields"> </dl> </td></tr></table> </div> <a name="deannotate"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">deannotate</span>(<span class="sig-arg">element_or_tree</span>, <span class="sig-arg">pytype</span>=<span class="sig-default">True</span>, <span class="sig-arg">xsi</span>=<span class="sig-default">True</span>)</span> </h3> </td><td align="right" valign="top" > </td> </tr></table> <p>Recursively de-annotate the elements of an XML tree by removing 'pytype' and/or 'type' attributes.</p> <p>If the 'pytype' keyword argument is True (the default), 'pytype' attributes will be removed. If the 'xsi' keyword argument is True (the default), 'xsi:type' attributes will be removed.</p> <dl class="fields"> </dl> </td></tr></table> </div> <a name="dump"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">dump</span>(<span class="sig-arg">...</span>)</span> </h3> </td><td align="right" valign="top" > </td> </tr></table> <p>dump(_Element element not None)</p> <p>Return a recursively generated string representation of an element.</p> <dl class="fields"> </dl> </td></tr></table> </div> <a name="fromstring"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">fromstring</span>(<span class="sig-arg">xml</span>, <span class="sig-arg">parser</span>=<span class="sig-default">None</span>)</span> </h3> </td><td align="right" valign="top" > </td> </tr></table> <p>Objectify specific version of the lxml.etree fromstring() function that uses the objectify parser.</p> <p>You can pass a different parser as second argument.</p> <dl class="fields"> </dl> </td></tr></table> </div> <a name="getRegisteredTypes"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">getRegisteredTypes</span>()</span> </h3> </td><td align="right" valign="top" > </td> </tr></table> <p>Returns a list of the currently registered PyType objects.</p> <p>To add a new type, retrieve this list and call unregister() for all entries. Then add the new type at a suitable position (possibly replacing an existing one) and call register() for all entries.</p> <p>This is necessary if the new type interferes with the type check functions of existing ones (normally only int/float/bool) and must the tried before other types. To add a type that is not yet parsable by the current type check functions, you can simply register() it, which will append it to the end of the type list.</p> <dl class="fields"> </dl> </td></tr></table> </div> <a name="makeparser"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">makeparser</span>(<span class="sig-arg">remove_blank_text</span>=<span class="sig-default">True</span>, <span class="sig-arg">**kw</span>)</span> </h3> </td><td align="right" valign="top" > </td> </tr></table> <p>Create a new XML parser for objectify trees.</p> <p>You can pass all keyword arguments that are supported by <tt class="rst-docutils literal"><span class="pre">etree.XMLParser()</span></tt>. Note that this parser defaults to removing blank text. You can disable this by passing the <tt class="rst-docutils literal"><span class="pre">remove_blank_text</span></tt> boolean keyword option yourself.</p> <dl class="fields"> </dl> </td></tr></table> </div> <a name="parse"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">parse</span>(<span class="sig-arg">f</span>, <span class="sig-arg">parser</span>=<span class="sig-default">None</span>)</span> </h3> </td><td align="right" valign="top" > </td> </tr></table> <p>Parse a file or file-like object with the objectify parser.</p> <p>You can pass a different parser as second argument.</p> <dl class="fields"> </dl> </td></tr></table> </div> <a name="pyannotate"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">pyannotate</span>(<span class="sig-arg">element_or_tree</span>, <span class="sig-arg">ignore_old</span>=<span class="sig-default">False</span>, <span class="sig-arg">ignore_xsi</span>=<span class="sig-default">False</span>, <span class="sig-arg">empty_pytype</span>=<span class="sig-default">None</span>)</span> </h3> </td><td align="right" valign="top" > </td> </tr></table> <p>Recursively annotates the elements of an XML tree with 'pytype' attributes.</p> <p>If the 'ignore_old' keyword argument is True (the default), current 'pytype' attributes will be ignored and replaced. Otherwise, they will be checked and only replaced if they no longer fit the current text value.</p> <p>Setting the keyword argument <tt class="rst-docutils literal"><span class="pre">ignore_xsi</span></tt> to True makes the function additionally ignore existing <tt class="rst-docutils literal"><span class="pre">xsi:type</span></tt> annotations. The default is to use them as a type hint.</p> <p>The default annotation of empty elements can be set with the <tt class="rst-docutils literal"><span class="pre">empty_pytype</span></tt> keyword argument. The default is not to annotate empty elements. Pass 'str', for example, to make string values the default.</p> <dl class="fields"> </dl> </td></tr></table> </div> <a name="setDefaultParser"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">setDefaultParser</span>(<span class="sig-arg">...</span>)</span> </h3> </td><td align="right" valign="top" > </td> </tr></table> <dl class="fields"> </dl> <div class="fields"> <p><strong>Deprecated:</strong> use <tt class="rst-rst-docutils literal rst-docutils literal"><span class="pre">set_default_parser()</span></tt> instead. </p> </div></td></tr></table> </div> <a name="setPytypeAttributeTag"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">setPytypeAttributeTag</span>(<span class="sig-arg">...</span>)</span> </h3> </td><td align="right" valign="top" > </td> </tr></table> <dl class="fields"> </dl> <div class="fields"> <p><strong>Deprecated:</strong> use <tt class="rst-rst-docutils literal rst-docutils literal"><span class="pre">set_pytype_attribute_tag()</span></tt> instead. </p> </div></td></tr></table> </div> <a name="set_default_parser"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">set_default_parser</span>(<span class="sig-arg">new_parser</span>=<span class="sig-default"> None</span>)</span> </h3> </td><td align="right" valign="top" > </td> </tr></table> <p>Replace the default parser used by objectify's Element() and fromstring() functions.</p> <p>The new parser must be an etree.XMLParser.</p> <p>Call without arguments to reset to the original parser.</p> <dl class="fields"> </dl> </td></tr></table> </div> <a name="set_pytype_attribute_tag"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">set_pytype_attribute_tag</span>(<span class="sig-arg">attribute_tag</span>=<span class="sig-default">None</span>)</span> </h3> </td><td align="right" valign="top" > </td> </tr></table> <p>Change name and namespace of the XML attribute that holds Python type information.</p> <p>Do not use this unless you know what you are doing.</p> <p>Reset by calling without argument.</p> <p>Default: "{<a class="rst-reference" href="http://codespeak.net/lxml/objectify/pytype" target="_top">http://codespeak.net/lxml/objectify/pytype</a>}pytype"</p> <dl class="fields"> </dl> </td></tr></table> </div> <a name="xsiannotate"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">xsiannotate</span>(<span class="sig-arg">element_or_tree</span>, <span class="sig-arg">ignore_old</span>=<span class="sig-default">False</span>, <span class="sig-arg">ignore_pytype</span>=<span class="sig-default">False</span>, <span class="sig-arg">empty_type</span>=<span class="sig-default">None</span>)</span> </h3> </td><td align="right" valign="top" > </td> </tr></table> <p>Recursively annotates the elements of an XML tree with 'xsi:type' attributes.</p> <p>If the 'ignore_old' keyword argument is True (the default), current 'xsi:type' attributes will be ignored and replaced. Otherwise, they will be checked and only replaced if they no longer fit the current text value.</p> <p>Note that the mapping from Python types to XSI types is usually ambiguous. Currently, only the first XSI type name in the corresponding PyType definition will be used for annotation. Thus, you should consider naming the widest type first if you define additional types.</p> <p>Setting the keyword argument <tt class="rst-docutils literal"><span class="pre">ignore_pytype</span></tt> to True makes the function additionally ignore existing <tt class="rst-docutils literal"><span class="pre">pytype</span></tt> annotations. The default is to use them as a type hint.</p> <p>The default annotation of empty elements can be set with the <tt class="rst-docutils literal"><span class="pre">empty_type</span></tt> keyword argument. The default is not to annotate empty elements. Pass 'string', for example, to make string values the default.</p> <dl class="fields"> </dl> </td></tr></table> </div> <br /> <!-- ==================== VARIABLES DETAILS ==================== --> <a name="section-VariablesDetails"></a> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr bgcolor="#70b0f0" class="table-header"> <td align="left" colspan="2" class="table-header"> <span class="table-header">Variables Details</span></td> </tr> </table> <a name="PYTYPE_ATTRIBUTE"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <h3 class="epydoc">PYTYPE_ATTRIBUTE</h3> <dl class="fields"> </dl> <dl class="fields"> <dt>Value:</dt> <dd><table><tr><td><pre class="variable"> <code class="variable-quote">'</code><code class="variable-string">{http://codespeak.net/lxml/objectify/pytype}pytype</code><code class="variable-quote">'</code> </pre></td></tr></table> </dd> </dl> </td></tr></table> </div> <br /> <!-- ==================== NAVIGATION BAR ==================== --> <table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0"> <tr valign="middle"> <!-- Home link --> <th> <a href="lxml-module.html">Home</a> </th> <!-- Tree link --> <th> <a href="module-tree.html">Trees</a> </th> <!-- Index link --> <th> <a href="identifier-index.html">Indices</a> </th> <!-- Help link --> <th> <a href="help.html">Help</a> </th> <!-- Project homepage --> <th class="navbar" align="right" width="100%"> <table border="0" cellpadding="0" cellspacing="0"> <tr><th class="navbar" align="center" ><a class="navbar" target="_top" href="http://codespeak.net/lxml/">lxml API</a></th> </tr></table></th> </tr> </table> <table border="0" cellpadding="0" cellspacing="0" width="100%%"> <tr> <td align="left" class="footer"> Generated by Epydoc 3.0 on Fri Dec 12 22:40:29 2008 </td> <td align="right" class="footer"> <a target="mainFrame" href="http://epydoc.sourceforge.net" >http://epydoc.sourceforge.net</a> </td> </tr> </table> <script type="text/javascript"> <!-- // Private objects are initially displayed (because if // javascript is turned off then we want them to be // visible); but by default, we want to hide them. So hide // them unless we have a cookie that says to show them. checkCookie(); // --> </script> </body> </html>