1 <?xml version="1.0" encoding="ascii"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3 "DTD/xhtml1-transitional.dtd">
4 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6 <title>lxml.objectify</title>
7 <link rel="stylesheet" href="epydoc.css" type="text/css" />
8 <script type="text/javascript" src="epydoc.js"></script>
11 <body bgcolor="white" text="black" link="blue" vlink="#204080"
13 <!-- ==================== NAVIGATION BAR ==================== -->
14 <table class="navbar" border="0" width="100%" cellpadding="0"
15 bgcolor="#a0c0ff" cellspacing="0">
18 <th> <a
19 href="lxml-module.html">Home</a> </th>
22 <th> <a
23 href="module-tree.html">Trees</a> </th>
26 <th> <a
27 href="identifier-index.html">Indices</a> </th>
30 <th> <a
31 href="help.html">Help</a> </th>
33 <!-- Project homepage -->
34 <th class="navbar" align="right" width="100%">
35 <table border="0" cellpadding="0" cellspacing="0">
36 <tr><th class="navbar" align="center"
37 ><a class="navbar" target="_top" href="/">lxml API</a></th>
41 <table width="100%" cellpadding="0" cellspacing="0">
44 <span class="breadcrumbs">
45 <a href="lxml-module.html">Package lxml</a> ::
50 <table cellpadding="0" cellspacing="0">
51 <!-- hide/show private -->
52 <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
53 onclick="toggle_private();">hide private</a>]</span></td></tr>
54 <tr><td align="right"><span class="options"
55 >[<a href="frames.html" target="_top">frames</a
56 >] | <a href="lxml.objectify-module.html"
57 target="_top">no frames</a>]</span></td></tr>
62 <!-- ==================== MODULE DESCRIPTION ==================== -->
63 <h1 class="epydoc">Module objectify</h1><p class="nomargin-top"></p>
64 The <tt class="rst-docutils literal">lxml.objectify</tt> module implements a Python object API for XML.
65 It is based on <a href="lxml.etree-module.html" class="link">lxml.etree</a>.
68 <div class="fields"> <p><strong>Version:</strong>
71 </div><!-- ==================== CLASSES ==================== -->
72 <a name="section-Classes"></a>
73 <table class="summary" border="1" cellpadding="3"
74 cellspacing="0" width="100%" bgcolor="white">
75 <tr bgcolor="#70b0f0" class="table-header">
76 <td colspan="2" class="table-header">
77 <table border="0" cellpadding="0" cellspacing="0" width="100%">
79 <td align="left"><span class="table-header">Classes</span></td>
80 <td align="right" valign="top"
81 ><span class="options">[<a href="#section-Classes"
82 class="privatelink" onclick="toggle_private();"
83 >hide private</a>]</span></td>
89 <td width="15%" align="right" valign="top" class="summary">
90 <span class="summary-type"> </span>
91 </td><td class="summary">
92 <a href="lxml.objectify.BoolElement-class.html" class="summary-name">BoolElement</a><br />
93 Boolean type base on string values: 'true' or 'false'.
97 <td width="15%" align="right" valign="top" class="summary">
98 <span class="summary-type"> </span>
99 </td><td class="summary">
100 <a href="lxml.objectify.ElementMaker-class.html" class="summary-name">ElementMaker</a><br />
101 ElementMaker(self, namespace=None, nsmap=None, annotate=True, makeelement=None)
105 <td width="15%" align="right" valign="top" class="summary">
106 <span class="summary-type"> </span>
107 </td><td class="summary">
108 <a href="lxml.objectify.FloatElement-class.html" class="summary-name">FloatElement</a>
112 <td width="15%" align="right" valign="top" class="summary">
113 <span class="summary-type"> </span>
114 </td><td class="summary">
115 <a href="lxml.objectify.IntElement-class.html" class="summary-name">IntElement</a>
119 <td width="15%" align="right" valign="top" class="summary">
120 <span class="summary-type"> </span>
121 </td><td class="summary">
122 <a href="lxml.objectify.LongElement-class.html" class="summary-name">LongElement</a>
126 <td width="15%" align="right" valign="top" class="summary">
127 <span class="summary-type"> </span>
128 </td><td class="summary">
129 <a href="lxml.objectify.NoneElement-class.html" class="summary-name">NoneElement</a>
133 <td width="15%" align="right" valign="top" class="summary">
134 <span class="summary-type"> </span>
135 </td><td class="summary">
136 <a href="lxml.objectify.NumberElement-class.html" class="summary-name">NumberElement</a>
140 <td width="15%" align="right" valign="top" class="summary">
141 <span class="summary-type"> </span>
142 </td><td class="summary">
143 <a href="lxml.objectify.ObjectPath-class.html" class="summary-name">ObjectPath</a><br />
145 Immutable object that represents a compiled object path.
149 <td width="15%" align="right" valign="top" class="summary">
150 <span class="summary-type"> </span>
151 </td><td class="summary">
152 <a href="lxml.objectify.ObjectifiedDataElement-class.html" class="summary-name">ObjectifiedDataElement</a><br />
153 This is the base class for all data type Elements. Subclasses should
154 override the 'pyval' property and possibly the __str__ method.
158 <td width="15%" align="right" valign="top" class="summary">
159 <span class="summary-type"> </span>
160 </td><td class="summary">
161 <a href="lxml.objectify.ObjectifiedElement-class.html" class="summary-name">ObjectifiedElement</a><br />
162 Main XML Element class.
166 <td width="15%" align="right" valign="top" class="summary">
167 <span class="summary-type"> </span>
168 </td><td class="summary">
169 <a href="lxml.objectify.ObjectifyElementClassLookup-class.html" class="summary-name">ObjectifyElementClassLookup</a><br />
170 ObjectifyElementClassLookup(self, tree_class=None, empty_data_class=None)
171 Element class lookup method that uses the objectify classes.
175 <td width="15%" align="right" valign="top" class="summary">
176 <span class="summary-type"> </span>
177 </td><td class="summary">
178 <a href="lxml.objectify.PyType-class.html" class="summary-name">PyType</a><br />
179 PyType(self, name, type_check, type_class, stringify=None)
184 <td width="15%" align="right" valign="top" class="summary">
185 <span class="summary-type"> </span>
186 </td><td class="summary">
187 <a href="lxml.objectify.StringElement-class.html" class="summary-name">StringElement</a><br />
192 <!-- ==================== FUNCTIONS ==================== -->
193 <a name="section-Functions"></a>
194 <table class="summary" border="1" cellpadding="3"
195 cellspacing="0" width="100%" bgcolor="white">
196 <tr bgcolor="#70b0f0" class="table-header">
197 <td colspan="2" class="table-header">
198 <table border="0" cellpadding="0" cellspacing="0" width="100%">
200 <td align="left"><span class="table-header">Functions</span></td>
201 <td align="right" valign="top"
202 ><span class="options">[<a href="#section-Functions"
203 class="privatelink" onclick="toggle_private();"
204 >hide private</a>]</span></td>
210 <td width="15%" align="right" valign="top" class="summary">
211 <span class="summary-type"> </span>
212 </td><td class="summary">
213 <table width="100%" cellpadding="0" cellspacing="0" border="0">
215 <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>,
216 <span class="summary-sig-arg">attrib</span>=<span class="summary-sig-default">None</span>,
217 <span class="summary-sig-arg">nsmap</span>=<span class="summary-sig-default">None</span>,
218 <span class="summary-sig-arg">_pytype</span>=<span class="summary-sig-default">None</span>,
219 <span class="summary-sig-arg">_xsi</span>=<span class="summary-sig-default">None</span>,
220 <span class="summary-sig-arg">**_attributes</span>)</span><br />
221 Create a new element from a Python value and XML attributes taken from
222 keyword arguments or a dictionary passed as second argument.</td>
223 <td align="right" valign="top">
233 <td width="15%" align="right" valign="top" class="summary">
234 <span class="summary-type"> </span>
235 </td><td class="summary">
236 <table width="100%" cellpadding="0" cellspacing="0" border="0">
238 <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>,
239 <span class="summary-sig-arg">attrib</span>=<span class="summary-sig-default">None</span>,
240 <span class="summary-sig-arg">nsmap</span>=<span class="summary-sig-default">None</span>,
241 <span class="summary-sig-arg">_pytype</span>=<span class="summary-sig-default">None</span>,
242 <span class="summary-sig-arg">**_attributes</span>)</span><br />
243 Objectify specific version of the lxml.etree Element() factory that
244 always creates a structural (tree) element.</td>
245 <td align="right" valign="top">
255 <td width="15%" align="right" valign="top" class="summary">
256 <span class="summary-type"> </span>
257 </td><td class="summary">
258 <table width="100%" cellpadding="0" cellspacing="0" border="0">
260 <td><span class="summary-sig"><a name="SubElement"></a><span class="summary-sig-name">SubElement</span>(<span class="summary-sig-arg">_parent</span>,
261 <span class="summary-sig-arg">_tag</span>,
262 <span class="summary-sig-arg">attrib</span>=<span class="summary-sig-default">None</span>,
263 <span class="summary-sig-arg">nsmap</span>=<span class="summary-sig-default">None</span>,
264 <span class="summary-sig-arg">**_extra</span>)</span><br />
265 Subelement factory. This function creates an element instance, and
266 appends it to an existing element.</td>
267 <td align="right" valign="top">
277 <td width="15%" align="right" valign="top" class="summary">
278 <span class="summary-type"> </span>
279 </td><td class="summary">
280 <table width="100%" cellpadding="0" cellspacing="0" border="0">
282 <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>,
283 <span class="summary-sig-arg">parser</span>=<span class="summary-sig-default">None</span>,
284 <span class="summary-sig-arg">base_url</span>=<span class="summary-sig-default">None</span>)</span><br />
285 Objectify specific version of the lxml.etree XML() literal factory
286 that uses the objectify parser.</td>
287 <td align="right" valign="top">
297 <td width="15%" align="right" valign="top" class="summary">
298 <span class="summary-type"> </span>
299 </td><td class="summary">
300 <table width="100%" cellpadding="0" cellspacing="0" border="0">
302 <td><span class="summary-sig"><a name="__checkBool"></a><span class="summary-sig-name">__checkBool</span>(<span class="summary-sig-arg">...</span>)</span></td>
303 <td align="right" valign="top">
313 <td width="15%" align="right" valign="top" class="summary">
314 <span class="summary-type"> </span>
315 </td><td class="summary">
316 <table width="100%" cellpadding="0" cellspacing="0" border="0">
318 <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>
319 <td align="right" valign="top">
329 <td width="15%" align="right" valign="top" class="summary">
330 <span class="summary-type"> </span>
331 </td><td class="summary">
332 <table width="100%" cellpadding="0" cellspacing="0" border="0">
334 <td><span class="summary-sig"><a name="__parseBool"></a><span class="summary-sig-name">__parseBool</span>(<span class="summary-sig-arg">...</span>)</span></td>
335 <td align="right" valign="top">
345 <td width="15%" align="right" valign="top" class="summary">
346 <span class="summary-type"> </span>
347 </td><td class="summary">
348 <table width="100%" cellpadding="0" cellspacing="0" border="0">
350 <td><span class="summary-sig"><a name="__unpickleElementTree"></a><span class="summary-sig-name">__unpickleElementTree</span>(<span class="summary-sig-arg">...</span>)</span></td>
351 <td align="right" valign="top">
361 <td width="15%" align="right" valign="top" class="summary">
362 <span class="summary-type"> </span>
363 </td><td class="summary">
364 <table width="100%" cellpadding="0" cellspacing="0" border="0">
366 <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>,
367 <span class="summary-sig-arg">ignore_old</span>=<span class="summary-sig-default">True</span>,
368 <span class="summary-sig-arg">ignore_xsi</span>=<span class="summary-sig-default">False</span>,
369 <span class="summary-sig-arg">empty_pytype</span>=<span class="summary-sig-default">None</span>,
370 <span class="summary-sig-arg">empty_type</span>=<span class="summary-sig-default">None</span>,
371 <span class="summary-sig-arg">annotate_xsi</span>=<span class="summary-sig-default">0</span>,
372 <span class="summary-sig-arg">annotate_pytype</span>=<span class="summary-sig-default">1</span>)</span><br />
373 Recursively annotates the elements of an XML tree with 'xsi:type'
374 and/or 'py:pytype' attributes.</td>
375 <td align="right" valign="top">
385 <td width="15%" align="right" valign="top" class="summary">
386 <span class="summary-type"> </span>
387 </td><td class="summary">
388 <table width="100%" cellpadding="0" cellspacing="0" border="0">
390 <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>,
391 <span class="summary-sig-arg">pytype</span>=<span class="summary-sig-default">True</span>,
392 <span class="summary-sig-arg">xsi</span>=<span class="summary-sig-default">True</span>,
393 <span class="summary-sig-arg">xsi_nil</span>=<span class="summary-sig-default">False</span>,
394 <span class="summary-sig-arg">cleanup_namespaces</span>=<span class="summary-sig-default">False</span>)</span><br />
395 Recursively de-annotate the elements of an XML tree by removing 'py:pytype'
396 and/or 'xsi:type' attributes and/or 'xsi:nil' attributes.</td>
397 <td align="right" valign="top">
407 <td width="15%" align="right" valign="top" class="summary">
408 <span class="summary-type"> </span>
409 </td><td class="summary">
410 <table width="100%" cellpadding="0" cellspacing="0" border="0">
412 <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 />
413 dump(_Element element not None)</td>
414 <td align="right" valign="top">
424 <td width="15%" align="right" valign="top" class="summary">
425 <span class="summary-type"> </span>
426 </td><td class="summary">
427 <table width="100%" cellpadding="0" cellspacing="0" border="0">
429 <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 />
430 Enable a recursively generated tree representation for str(element),
431 based on objectify.dump(element).</td>
432 <td align="right" valign="top">
442 <td width="15%" align="right" valign="top" class="summary">
443 <span class="summary-type"> </span>
444 </td><td class="summary">
445 <table width="100%" cellpadding="0" cellspacing="0" border="0">
447 <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>,
448 <span class="summary-sig-arg">parser</span>=<span class="summary-sig-default">None</span>,
449 <span class="summary-sig-arg">base_url</span>=<span class="summary-sig-default">None</span>)</span><br />
450 Objectify specific version of the lxml.etree fromstring() function
451 that uses the objectify parser.</td>
452 <td align="right" valign="top">
462 <td width="15%" align="right" valign="top" class="summary">
463 <span class="summary-type"> </span>
464 </td><td class="summary">
465 <table width="100%" cellpadding="0" cellspacing="0" border="0">
467 <td><span class="summary-sig"><a href="lxml.objectify-module.html#getRegisteredTypes" class="summary-sig-name">getRegisteredTypes</a>()</span><br />
468 Returns a list of the currently registered PyType objects.</td>
469 <td align="right" valign="top">
479 <td width="15%" align="right" valign="top" class="summary">
480 <span class="summary-type"> </span>
481 </td><td class="summary">
482 <table width="100%" cellpadding="0" cellspacing="0" border="0">
484 <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>,
485 <span class="summary-sig-arg">**kw</span>)</span><br />
486 Create a new XML parser for objectify trees.</td>
487 <td align="right" valign="top">
497 <td width="15%" align="right" valign="top" class="summary">
498 <span class="summary-type"> </span>
499 </td><td class="summary">
500 <table width="100%" cellpadding="0" cellspacing="0" border="0">
502 <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>,
503 <span class="summary-sig-arg">parser</span>=<span class="summary-sig-default">None</span>,
504 <span class="summary-sig-arg">base_url</span>=<span class="summary-sig-default">None</span>)</span><br />
505 Parse a file or file-like object with the objectify parser.</td>
506 <td align="right" valign="top">
516 <td width="15%" align="right" valign="top" class="summary">
517 <span class="summary-type"> </span>
518 </td><td class="summary">
519 <table width="100%" cellpadding="0" cellspacing="0" border="0">
521 <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>,
522 <span class="summary-sig-arg">ignore_old</span>=<span class="summary-sig-default">False</span>,
523 <span class="summary-sig-arg">ignore_xsi</span>=<span class="summary-sig-default">False</span>,
524 <span class="summary-sig-arg">empty_pytype</span>=<span class="summary-sig-default">None</span>)</span><br />
525 Recursively annotates the elements of an XML tree with 'pytype'
527 <td align="right" valign="top">
537 <td width="15%" align="right" valign="top" class="summary">
538 <span class="summary-type"> </span>
539 </td><td class="summary">
540 <table width="100%" cellpadding="0" cellspacing="0" border="0">
542 <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 />
543 Find the name of the corresponding PyType for a Python object.</td>
544 <td align="right" valign="top">
554 <td width="15%" align="right" valign="top" class="summary">
555 <span class="summary-type"> </span>
556 </td><td class="summary">
557 <table width="100%" cellpadding="0" cellspacing="0" border="0">
559 <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 />
560 Replace the default parser used by objectify's Element() and
561 fromstring() functions.</td>
562 <td align="right" valign="top">
572 <td width="15%" align="right" valign="top" class="summary">
573 <span class="summary-type"> </span>
574 </td><td class="summary">
575 <table width="100%" cellpadding="0" cellspacing="0" border="0">
577 <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 />
578 Change name and namespace of the XML attribute that holds Python type
580 <td align="right" valign="top">
590 <td width="15%" align="right" valign="top" class="summary">
591 <span class="summary-type"> </span>
592 </td><td class="summary">
593 <table width="100%" cellpadding="0" cellspacing="0" border="0">
595 <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>,
596 <span class="summary-sig-arg">ignore_old</span>=<span class="summary-sig-default">False</span>,
597 <span class="summary-sig-arg">ignore_pytype</span>=<span class="summary-sig-default">False</span>,
598 <span class="summary-sig-arg">empty_type</span>=<span class="summary-sig-default">None</span>)</span><br />
599 Recursively annotates the elements of an XML tree with 'xsi:type'
601 <td align="right" valign="top">
611 <!-- ==================== VARIABLES ==================== -->
612 <a name="section-Variables"></a>
613 <table class="summary" border="1" cellpadding="3"
614 cellspacing="0" width="100%" bgcolor="white">
615 <tr bgcolor="#70b0f0" class="table-header">
616 <td colspan="2" class="table-header">
617 <table border="0" cellpadding="0" cellspacing="0" width="100%">
619 <td align="left"><span class="table-header">Variables</span></td>
620 <td align="right" valign="top"
621 ><span class="options">[<a href="#section-Variables"
622 class="privatelink" onclick="toggle_private();"
623 >hide private</a>]</span></td>
629 <td width="15%" align="right" valign="top" class="summary">
630 <span class="summary-type"> </span>
631 </td><td class="summary">
632 <a name="E"></a><span class="summary-name">E</span> = <code title="<lxml.objectify.ElementMaker object>"><lxml.objectify.ElementMaker object></code>
636 <td width="15%" align="right" valign="top" class="summary">
637 <span class="summary-type"> </span>
638 </td><td class="summary">
639 <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>
643 <td width="15%" align="right" valign="top" class="summary">
644 <span class="summary-type"> </span>
645 </td><td class="summary">
646 <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="None">None</code><br />
651 <td width="15%" align="right" valign="top" class="summary">
652 <span class="summary-type"> </span>
653 </td><td class="summary">
654 <a name="__test__"></a><span class="summary-name">__test__</span> = <code title="{}"><code class="variable-group">{</code><code class="variable-group">}</code></code>
658 <!-- ==================== FUNCTION DETAILS ==================== -->
659 <a name="section-FunctionDetails"></a>
660 <table class="details" border="1" cellpadding="3"
661 cellspacing="0" width="100%" bgcolor="white">
662 <tr bgcolor="#70b0f0" class="table-header">
663 <td colspan="2" class="table-header">
664 <table border="0" cellpadding="0" cellspacing="0" width="100%">
666 <td align="left"><span class="table-header">Function Details</span></td>
667 <td align="right" valign="top"
668 ><span class="options">[<a href="#section-FunctionDetails"
669 class="privatelink" onclick="toggle_private();"
670 >hide private</a>]</span></td>
676 <a name="DataElement"></a>
678 <table class="details" border="1" cellpadding="3"
679 cellspacing="0" width="100%" bgcolor="white">
681 <table width="100%" cellpadding="0" cellspacing="0" border="0">
682 <tr valign="top"><td>
683 <h3 class="epydoc"><span class="sig"><span class="sig-name">DataElement</span>(<span class="sig-arg">_value</span>,
684 <span class="sig-arg">attrib</span>=<span class="sig-default">None</span>,
685 <span class="sig-arg">nsmap</span>=<span class="sig-default">None</span>,
686 <span class="sig-arg">_pytype</span>=<span class="sig-default">None</span>,
687 <span class="sig-arg">_xsi</span>=<span class="sig-default">None</span>,
688 <span class="sig-arg">**_attributes</span>)</span>
690 </td><td align="right" valign="top"
695 <p>Create a new element from a Python value and XML attributes taken from
696 keyword arguments or a dictionary passed as second argument.</p>
697 <p>Automatically adds a 'pytype' attribute for the Python type of the value,
698 if the type can be identified. If '_pytype' or '_xsi' are among the
699 keyword arguments, they will be used instead.</p>
700 <p>If the _value argument is an ObjectifiedDataElement instance, its py:pytype,
701 xsi:type and other attributes and nsmap are reused unless they are redefined
702 in attrib and/or keyword arguments.</p>
707 <a name="Element"></a>
709 <table class="details" border="1" cellpadding="3"
710 cellspacing="0" width="100%" bgcolor="white">
712 <table width="100%" cellpadding="0" cellspacing="0" border="0">
713 <tr valign="top"><td>
714 <h3 class="epydoc"><span class="sig"><span class="sig-name">Element</span>(<span class="sig-arg">_tag</span>,
715 <span class="sig-arg">attrib</span>=<span class="sig-default">None</span>,
716 <span class="sig-arg">nsmap</span>=<span class="sig-default">None</span>,
717 <span class="sig-arg">_pytype</span>=<span class="sig-default">None</span>,
718 <span class="sig-arg">**_attributes</span>)</span>
720 </td><td align="right" valign="top"
725 <p>Objectify specific version of the lxml.etree Element() factory that
726 always creates a structural (tree) element.</p>
727 <p>NOTE: requires parser based element class lookup activated in lxml.etree!</p>
734 <table class="details" border="1" cellpadding="3"
735 cellspacing="0" width="100%" bgcolor="white">
737 <table width="100%" cellpadding="0" cellspacing="0" border="0">
738 <tr valign="top"><td>
739 <h3 class="epydoc"><span class="sig"><span class="sig-name">XML</span>(<span class="sig-arg">xml</span>,
740 <span class="sig-arg">parser</span>=<span class="sig-default">None</span>,
741 <span class="sig-arg">base_url</span>=<span class="sig-default">None</span>)</span>
743 </td><td align="right" valign="top"
748 <p>Objectify specific version of the lxml.etree XML() literal factory
749 that uses the objectify parser.</p>
750 <p>You can pass a different parser as second argument.</p>
751 <p>The <tt class="rst-docutils literal">base_url</tt> keyword argument allows to set the original base URL of
752 the document to support relative Paths when looking up external entities
753 (DTD, XInclude, ...).</p>
758 <a name="annotate"></a>
760 <table class="details" border="1" cellpadding="3"
761 cellspacing="0" width="100%" bgcolor="white">
763 <table width="100%" cellpadding="0" cellspacing="0" border="0">
764 <tr valign="top"><td>
765 <h3 class="epydoc"><span class="sig"><span class="sig-name">annotate</span>(<span class="sig-arg">element_or_tree</span>,
766 <span class="sig-arg">ignore_old</span>=<span class="sig-default">True</span>,
767 <span class="sig-arg">ignore_xsi</span>=<span class="sig-default">False</span>,
768 <span class="sig-arg">empty_pytype</span>=<span class="sig-default">None</span>,
769 <span class="sig-arg">empty_type</span>=<span class="sig-default">None</span>,
770 <span class="sig-arg">annotate_xsi</span>=<span class="sig-default">0</span>,
771 <span class="sig-arg">annotate_pytype</span>=<span class="sig-default">1</span>)</span>
773 </td><td align="right" valign="top"
778 <p>Recursively annotates the elements of an XML tree with 'xsi:type'
779 and/or 'py:pytype' attributes.</p>
780 <p>If the 'ignore_old' keyword argument is True (the default), current
781 'py:pytype' attributes will be ignored for the type annotation. Set to False
782 if you want reuse existing 'py:pytype' information (iff appropriate for the
783 element text value).</p>
784 <p>If the 'ignore_xsi' keyword argument is False (the default), existing
785 'xsi:type' attributes will be used for the type annotation, if they fit the
786 element text values.</p>
787 <p>Note that the mapping from Python types to XSI types is usually ambiguous.
788 Currently, only the first XSI type name in the corresponding PyType
789 definition will be used for annotation. Thus, you should consider naming
790 the widest type first if you define additional types.</p>
791 <p>The default 'py:pytype' annotation of empty elements can be set with the
792 <tt class="rst-docutils literal">empty_pytype</tt> keyword argument. Pass 'str', for example, to make
793 string values the default.</p>
794 <p>The default 'xsi:type' annotation of empty elements can be set with the
795 <tt class="rst-docutils literal">empty_type</tt> keyword argument. The default is not to annotate empty
796 elements. Pass 'string', for example, to make string values the default.</p>
797 <p>The keyword arguments 'annotate_xsi' (default: 0) and 'annotate_pytype'
798 (default: 1) control which kind(s) of annotation to use.</p>
803 <a name="deannotate"></a>
805 <table class="details" border="1" cellpadding="3"
806 cellspacing="0" width="100%" bgcolor="white">
808 <table width="100%" cellpadding="0" cellspacing="0" border="0">
809 <tr valign="top"><td>
810 <h3 class="epydoc"><span class="sig"><span class="sig-name">deannotate</span>(<span class="sig-arg">element_or_tree</span>,
811 <span class="sig-arg">pytype</span>=<span class="sig-default">True</span>,
812 <span class="sig-arg">xsi</span>=<span class="sig-default">True</span>,
813 <span class="sig-arg">xsi_nil</span>=<span class="sig-default">False</span>,
814 <span class="sig-arg">cleanup_namespaces</span>=<span class="sig-default">False</span>)</span>
816 </td><td align="right" valign="top"
821 <p>Recursively de-annotate the elements of an XML tree by removing 'py:pytype'
822 and/or 'xsi:type' attributes and/or 'xsi:nil' attributes.</p>
823 <p>If the 'pytype' keyword argument is True (the default), 'py:pytype'
824 attributes will be removed. If the 'xsi' keyword argument is True (the
825 default), 'xsi:type' attributes will be removed.
826 If the 'xsi_nil' keyword argument is True (default: False), 'xsi:nil'
827 attributes will be removed.</p>
828 <p>Note that this does not touch the namespace declarations by
829 default. If you want to remove unused namespace declarations from
830 the tree, pass the option <tt class="rst-docutils literal">cleanup_namespaces=True</tt>.</p>
837 <table class="details" border="1" cellpadding="3"
838 cellspacing="0" width="100%" bgcolor="white">
840 <table width="100%" cellpadding="0" cellspacing="0" border="0">
841 <tr valign="top"><td>
842 <h3 class="epydoc"><span class="sig"><span class="sig-name">dump</span>(<span class="sig-arg">...</span>)</span>
844 </td><td align="right" valign="top"
849 <p>dump(_Element element not None)</p>
850 <p>Return a recursively generated string representation of an element.</p>
855 <a name="fromstring"></a>
857 <table class="details" border="1" cellpadding="3"
858 cellspacing="0" width="100%" bgcolor="white">
860 <table width="100%" cellpadding="0" cellspacing="0" border="0">
861 <tr valign="top"><td>
862 <h3 class="epydoc"><span class="sig"><span class="sig-name">fromstring</span>(<span class="sig-arg">xml</span>,
863 <span class="sig-arg">parser</span>=<span class="sig-default">None</span>,
864 <span class="sig-arg">base_url</span>=<span class="sig-default">None</span>)</span>
866 </td><td align="right" valign="top"
871 <p>Objectify specific version of the lxml.etree fromstring() function
872 that uses the objectify parser.</p>
873 <p>You can pass a different parser as second argument.</p>
874 <p>The <tt class="rst-docutils literal">base_url</tt> keyword argument allows to set the original base URL of
875 the document to support relative Paths when looking up external entities
876 (DTD, XInclude, ...).</p>
881 <a name="getRegisteredTypes"></a>
883 <table class="details" border="1" cellpadding="3"
884 cellspacing="0" width="100%" bgcolor="white">
886 <table width="100%" cellpadding="0" cellspacing="0" border="0">
887 <tr valign="top"><td>
888 <h3 class="epydoc"><span class="sig"><span class="sig-name">getRegisteredTypes</span>()</span>
890 </td><td align="right" valign="top"
895 <p>Returns a list of the currently registered PyType objects.</p>
896 <p>To add a new type, retrieve this list and call unregister() for all
897 entries. Then add the new type at a suitable position (possibly replacing
898 an existing one) and call register() for all entries.</p>
899 <p>This is necessary if the new type interferes with the type check functions
900 of existing ones (normally only int/float/bool) and must the tried before
901 other types. To add a type that is not yet parsable by the current type
902 check functions, you can simply register() it, which will append it to the
903 end of the type list.</p>
908 <a name="makeparser"></a>
910 <table class="details" border="1" cellpadding="3"
911 cellspacing="0" width="100%" bgcolor="white">
913 <table width="100%" cellpadding="0" cellspacing="0" border="0">
914 <tr valign="top"><td>
915 <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>,
916 <span class="sig-arg">**kw</span>)</span>
918 </td><td align="right" valign="top"
923 <p>Create a new XML parser for objectify trees.</p>
924 <p>You can pass all keyword arguments that are supported by
925 <tt class="rst-docutils literal">etree.XMLParser()</tt>. Note that this parser defaults to removing
926 blank text. You can disable this by passing the
927 <tt class="rst-docutils literal">remove_blank_text</tt> boolean keyword option yourself.</p>
934 <table class="details" border="1" cellpadding="3"
935 cellspacing="0" width="100%" bgcolor="white">
937 <table width="100%" cellpadding="0" cellspacing="0" border="0">
938 <tr valign="top"><td>
939 <h3 class="epydoc"><span class="sig"><span class="sig-name">parse</span>(<span class="sig-arg">f</span>,
940 <span class="sig-arg">parser</span>=<span class="sig-default">None</span>,
941 <span class="sig-arg">base_url</span>=<span class="sig-default">None</span>)</span>
943 </td><td align="right" valign="top"
948 <p>Parse a file or file-like object with the objectify parser.</p>
949 <p>You can pass a different parser as second argument.</p>
950 <p>The <tt class="rst-docutils literal">base_url</tt> keyword allows setting a URL for the document
951 when parsing from a file-like object. This is needed when looking
952 up external entities (DTD, XInclude, ...) with relative paths.</p>
957 <a name="pyannotate"></a>
959 <table class="details" border="1" cellpadding="3"
960 cellspacing="0" width="100%" bgcolor="white">
962 <table width="100%" cellpadding="0" cellspacing="0" border="0">
963 <tr valign="top"><td>
964 <h3 class="epydoc"><span class="sig"><span class="sig-name">pyannotate</span>(<span class="sig-arg">element_or_tree</span>,
965 <span class="sig-arg">ignore_old</span>=<span class="sig-default">False</span>,
966 <span class="sig-arg">ignore_xsi</span>=<span class="sig-default">False</span>,
967 <span class="sig-arg">empty_pytype</span>=<span class="sig-default">None</span>)</span>
969 </td><td align="right" valign="top"
974 <p>Recursively annotates the elements of an XML tree with 'pytype'
976 <p>If the 'ignore_old' keyword argument is True (the default), current 'pytype'
977 attributes will be ignored and replaced. Otherwise, they will be checked
978 and only replaced if they no longer fit the current text value.</p>
979 <p>Setting the keyword argument <tt class="rst-docutils literal">ignore_xsi</tt> to True makes the function
980 additionally ignore existing <tt class="rst-docutils literal">xsi:type</tt> annotations. The default is to
981 use them as a type hint.</p>
982 <p>The default annotation of empty elements can be set with the
983 <tt class="rst-docutils literal">empty_pytype</tt> keyword argument. The default is not to annotate empty
984 elements. Pass 'str', for example, to make string values the default.</p>
989 <a name="set_default_parser"></a>
991 <table class="details" border="1" cellpadding="3"
992 cellspacing="0" width="100%" bgcolor="white">
994 <table width="100%" cellpadding="0" cellspacing="0" border="0">
995 <tr valign="top"><td>
996 <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>
998 </td><td align="right" valign="top"
1003 <p>Replace the default parser used by objectify's Element() and
1004 fromstring() functions.</p>
1005 <p>The new parser must be an etree.XMLParser.</p>
1006 <p>Call without arguments to reset to the original parser.</p>
1011 <a name="set_pytype_attribute_tag"></a>
1013 <table class="details" border="1" cellpadding="3"
1014 cellspacing="0" width="100%" bgcolor="white">
1016 <table width="100%" cellpadding="0" cellspacing="0" border="0">
1017 <tr valign="top"><td>
1018 <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>
1020 </td><td align="right" valign="top"
1025 <p>Change name and namespace of the XML attribute that holds Python type
1027 <p>Do not use this unless you know what you are doing.</p>
1028 <p>Reset by calling without argument.</p>
1029 <p>Default: "{<a class="rst-reference external" href="http://codespeak.net/lxml/objectify/pytype" target="_top">http://codespeak.net/lxml/objectify/pytype</a>}pytype"</p>
1034 <a name="xsiannotate"></a>
1036 <table class="details" border="1" cellpadding="3"
1037 cellspacing="0" width="100%" bgcolor="white">
1039 <table width="100%" cellpadding="0" cellspacing="0" border="0">
1040 <tr valign="top"><td>
1041 <h3 class="epydoc"><span class="sig"><span class="sig-name">xsiannotate</span>(<span class="sig-arg">element_or_tree</span>,
1042 <span class="sig-arg">ignore_old</span>=<span class="sig-default">False</span>,
1043 <span class="sig-arg">ignore_pytype</span>=<span class="sig-default">False</span>,
1044 <span class="sig-arg">empty_type</span>=<span class="sig-default">None</span>)</span>
1046 </td><td align="right" valign="top"
1051 <p>Recursively annotates the elements of an XML tree with 'xsi:type'
1053 <p>If the 'ignore_old' keyword argument is True (the default), current
1054 'xsi:type' attributes will be ignored and replaced. Otherwise, they will be
1055 checked and only replaced if they no longer fit the current text value.</p>
1056 <p>Note that the mapping from Python types to XSI types is usually ambiguous.
1057 Currently, only the first XSI type name in the corresponding PyType
1058 definition will be used for annotation. Thus, you should consider naming
1059 the widest type first if you define additional types.</p>
1060 <p>Setting the keyword argument <tt class="rst-docutils literal">ignore_pytype</tt> to True makes the function
1061 additionally ignore existing <tt class="rst-docutils literal">pytype</tt> annotations. The default is to
1062 use them as a type hint.</p>
1063 <p>The default annotation of empty elements can be set with the
1064 <tt class="rst-docutils literal">empty_type</tt> keyword argument. The default is not to annotate empty
1065 elements. Pass 'string', for example, to make string values the default.</p>
1071 <!-- ==================== VARIABLES DETAILS ==================== -->
1072 <a name="section-VariablesDetails"></a>
1073 <table class="details" border="1" cellpadding="3"
1074 cellspacing="0" width="100%" bgcolor="white">
1075 <tr bgcolor="#70b0f0" class="table-header">
1076 <td colspan="2" class="table-header">
1077 <table border="0" cellpadding="0" cellspacing="0" width="100%">
1079 <td align="left"><span class="table-header">Variables Details</span></td>
1080 <td align="right" valign="top"
1081 ><span class="options">[<a href="#section-VariablesDetails"
1082 class="privatelink" onclick="toggle_private();"
1083 >hide private</a>]</span></td>
1089 <a name="PYTYPE_ATTRIBUTE"></a>
1091 <table class="details" border="1" cellpadding="3"
1092 cellspacing="0" width="100%" bgcolor="white">
1094 <h3 class="epydoc">PYTYPE_ATTRIBUTE</h3>
1100 <dd><table><tr><td><pre class="variable">
1101 <code class="variable-quote">'</code><code class="variable-string">{http://codespeak.net/lxml/objectify/pytype}pytype</code><code class="variable-quote">'</code>
1102 </pre></td></tr></table>
1108 <!-- ==================== NAVIGATION BAR ==================== -->
1109 <table class="navbar" border="0" width="100%" cellpadding="0"
1110 bgcolor="#a0c0ff" cellspacing="0">
1111 <tr valign="middle">
1113 <th> <a
1114 href="lxml-module.html">Home</a> </th>
1117 <th> <a
1118 href="module-tree.html">Trees</a> </th>
1121 <th> <a
1122 href="identifier-index.html">Indices</a> </th>
1125 <th> <a
1126 href="help.html">Help</a> </th>
1128 <!-- Project homepage -->
1129 <th class="navbar" align="right" width="100%">
1130 <table border="0" cellpadding="0" cellspacing="0">
1131 <tr><th class="navbar" align="center"
1132 ><a class="navbar" target="_top" href="/">lxml API</a></th>
1136 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
1138 <td align="left" class="footer">
1139 Generated by Epydoc 3.0.1
1140 on Wed Jan 29 12:26:21 2020
1142 <td align="right" class="footer">
1143 <a target="mainFrame" href="http://epydoc.sourceforge.net"
1144 >http://epydoc.sourceforge.net</a>
1149 <script type="text/javascript">
1151 // Private objects are initially displayed (because if
1152 // javascript is turned off then we want them to be
1153 // visible); but by default, we want to hide them. So hide
1154 // them unless we have a cookie that says to show them.