Blob Blame History Raw
<?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>&nbsp;&nbsp;&nbsp;<a
        href="lxml-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</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="/">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&nbsp;lxml</a> ::
        Module&nbsp;objectify
      </span>
    </td>
    <td>
      <table cellpadding="0" cellspacing="0">
        <!-- hide/show private -->
        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
        <tr><td align="right"><span class="options"
            >[<a href="frames.html" target="_top">frames</a
            >]&nbsp;|&nbsp;<a href="lxml.objectify-module.html"
            target="_top">no&nbsp;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-docutils literal">lxml.objectify</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>
        4.2.2
      </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 colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Classes</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-Classes"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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.  Subclasses should
override the 'pyval' property and possibly the __str__ method.
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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 colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Functions</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-Functions"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</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">&nbsp;</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">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="SubElement"></a><span class="summary-sig-name">SubElement</span>(<span class="summary-sig-arg">_parent</span>,
        <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">**_extra</span>)</span><br />
      Subelement factory.  This function creates an element instance, and
appends it to an existing 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">&nbsp;</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 class="summary-sig-arg">base_url</span>=<span class="summary-sig-default">None</span>)</span><br />
      Objectify specific version of the lxml.etree XML() literal factory
that uses the objectify parser.</td>
          <td align="right" valign="top">
            
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr class="private">
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="__checkBool"></a><span class="summary-sig-name">__checkBool</span>(<span class="summary-sig-arg">...</span>)</span></td>
          <td align="right" valign="top">
            
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr class="private">
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="__lower_bool"></a><span class="summary-sig-name">__lower_bool</span>(<span class="summary-sig-arg">...</span>)</span></td>
          <td align="right" valign="top">
            
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr class="private">
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="__parseBool"></a><span class="summary-sig-name">__parseBool</span>(<span class="summary-sig-arg">...</span>)</span></td>
          <td align="right" valign="top">
            
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr class="private">
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="__unpickleElementTree"></a><span class="summary-sig-name">__unpickleElementTree</span>(<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">&nbsp;</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">&nbsp;</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 class="summary-sig-arg">xsi_nil</span>=<span class="summary-sig-default">False</span>,
        <span class="summary-sig-arg">cleanup_namespaces</span>=<span class="summary-sig-default">False</span>)</span><br />
      Recursively de-annotate the elements of an XML tree by removing 'py:pytype'
and/or 'xsi:type' attributes and/or 'xsi:nil' 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">&nbsp;</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">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="enable_recursive_str"></a><span class="summary-sig-name">enable_recursive_str</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">&nbsp;</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 class="summary-sig-arg">base_url</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">&nbsp;</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">&nbsp;</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">&nbsp;</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 class="summary-sig-arg">base_url</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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 colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Variables</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-Variables"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a name="E"></a><span class="summary-name">E</span> = <code title="&lt;lxml.objectify.ElementMaker object&gt;">&lt;lxml.objectify.ElementMaker object&gt;</code>
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</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>
<tr class="private">
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="None">None</code><br />
      hash(x)
    </td>
  </tr>
<tr class="private">
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a name="__test__"></a><span class="summary-name">__test__</span> = <code title="{}"><code class="variable-group">{</code><code class="variable-group">}</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 colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Function Details</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-FunctionDetails"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </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"
    >&nbsp;
    </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"
    >&nbsp;
    </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 class="sig-arg">base_url</span>=<span class="sig-default">None</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    >&nbsp;
    </td>
  </tr></table>
  
  <p>Objectify specific version of the lxml.etree XML() literal factory
that uses the objectify parser.</p>
<p>You can pass a different parser as second argument.</p>
<p>The <tt class="rst-docutils literal">base_url</tt> keyword argument allows to set the original base URL of
the document to support relative Paths when looking up external entities
(DTD, XInclude, ...).</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"
    >&nbsp;
    </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">empty_pytype</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">empty_type</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 class="sig-arg">xsi_nil</span>=<span class="sig-default">False</span>,
        <span class="sig-arg">cleanup_namespaces</span>=<span class="sig-default">False</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    >&nbsp;
    </td>
  </tr></table>
  
  <p>Recursively de-annotate the elements of an XML tree by removing 'py:pytype'
and/or 'xsi:type' attributes and/or 'xsi:nil' attributes.</p>
<p>If the 'pytype' keyword argument is True (the default), 'py:pytype'
attributes will be removed. If the 'xsi' keyword argument is True (the
default), 'xsi:type' attributes will be removed.
If the 'xsi_nil' keyword argument is True (default: False), 'xsi:nil'
attributes will be removed.</p>
<p>Note that this does not touch the namespace declarations by
default.  If you want to remove unused namespace declarations from
the tree, pass the option <tt class="rst-docutils literal">cleanup_namespaces=True</tt>.</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"
    >&nbsp;
    </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 class="sig-arg">base_url</span>=<span class="sig-default">None</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    >&nbsp;
    </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>
<p>The <tt class="rst-docutils literal">base_url</tt> keyword argument allows to set the original base URL of
the document to support relative Paths when looking up external entities
(DTD, XInclude, ...).</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"
    >&nbsp;
    </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"
    >&nbsp;
    </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">etree.XMLParser()</tt>.  Note that this parser defaults to removing
blank text.  You can disable this by passing the
<tt class="rst-docutils literal">remove_blank_text</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 class="sig-arg">base_url</span>=<span class="sig-default">None</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    >&nbsp;
    </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>
<p>The <tt class="rst-docutils literal">base_url</tt> keyword allows setting a URL for the document
when parsing from a file-like object.  This is needed when looking
up external entities (DTD, XInclude, ...) with relative paths.</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"
    >&nbsp;
    </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">ignore_xsi</tt> to True makes the function
additionally ignore existing <tt class="rst-docutils literal">xsi:type</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">empty_pytype</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="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"
    >&nbsp;
    </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"
    >&nbsp;
    </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: &quot;{<a class="rst-reference external" href="http://codespeak.net/lxml/objectify/pytype" target="_top">http://codespeak.net/lxml/objectify/pytype</a>}pytype&quot;</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"
    >&nbsp;
    </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">ignore_pytype</tt> to True makes the function
additionally ignore existing <tt class="rst-docutils literal">pytype</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">empty_type</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 colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Variables Details</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-VariablesDetails"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </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>&nbsp;&nbsp;&nbsp;<a
        href="lxml-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</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="/">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.1
    on Wed Jun 27 16:05:05 2018
    </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>