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-rst-rst-docutils literal rst-rst-docutils literal rst-docutils literal">lxml.objectify</tt> module implements a Python object API for
65 XML. 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 <td width="15%" align="right" valign="top" class="summary">
193 <span class="summary-type"> </span>
194 </td><td class="summary">
195 <a href="lxml.objectify._ObjectifyElementMakerCaller-class.html" class="summary-name" onclick="show_private();">_ObjectifyElementMakerCaller</a>
199 <!-- ==================== FUNCTIONS ==================== -->
200 <a name="section-Functions"></a>
201 <table class="summary" border="1" cellpadding="3"
202 cellspacing="0" width="100%" bgcolor="white">
203 <tr bgcolor="#70b0f0" class="table-header">
204 <td colspan="2" class="table-header">
205 <table border="0" cellpadding="0" cellspacing="0" width="100%">
207 <td align="left"><span class="table-header">Functions</span></td>
208 <td align="right" valign="top"
209 ><span class="options">[<a href="#section-Functions"
210 class="privatelink" onclick="toggle_private();"
211 >hide private</a>]</span></td>
217 <td width="15%" align="right" valign="top" class="summary">
218 <span class="summary-type"> </span>
219 </td><td class="summary">
220 <table width="100%" cellpadding="0" cellspacing="0" border="0">
222 <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>,
223 <span class="summary-sig-arg">attrib</span>=<span class="summary-sig-default">None</span>,
224 <span class="summary-sig-arg">nsmap</span>=<span class="summary-sig-default">None</span>,
225 <span class="summary-sig-arg">_pytype</span>=<span class="summary-sig-default">None</span>,
226 <span class="summary-sig-arg">_xsi</span>=<span class="summary-sig-default">None</span>,
227 <span class="summary-sig-arg">**_attributes</span>)</span><br />
228 Create a new element from a Python value and XML attributes taken from
229 keyword arguments or a dictionary passed as second argument.</td>
230 <td align="right" valign="top">
240 <td width="15%" align="right" valign="top" class="summary">
241 <span class="summary-type"> </span>
242 </td><td class="summary">
243 <table width="100%" cellpadding="0" cellspacing="0" border="0">
245 <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>,
246 <span class="summary-sig-arg">attrib</span>=<span class="summary-sig-default">None</span>,
247 <span class="summary-sig-arg">nsmap</span>=<span class="summary-sig-default">None</span>,
248 <span class="summary-sig-arg">_pytype</span>=<span class="summary-sig-default">None</span>,
249 <span class="summary-sig-arg">**_attributes</span>)</span><br />
250 Objectify specific version of the lxml.etree Element() factory that
251 always creates a structural (tree) element.</td>
252 <td align="right" valign="top">
262 <td width="15%" align="right" valign="top" class="summary">
263 <span class="summary-type"> </span>
264 </td><td class="summary">
265 <table width="100%" cellpadding="0" cellspacing="0" border="0">
267 <td><span class="summary-sig"><a name="SubElement"></a><span class="summary-sig-name">SubElement</span>(<span class="summary-sig-arg">_parent</span>,
268 <span class="summary-sig-arg">_tag</span>,
269 <span class="summary-sig-arg">attrib</span>=<span class="summary-sig-default">None</span>,
270 <span class="summary-sig-arg">nsmap</span>=<span class="summary-sig-default">None</span>,
271 <span class="summary-sig-arg">**_extra</span>)</span><br />
272 Subelement factory. This function creates an element instance, and
273 appends it to an existing element.</td>
274 <td align="right" valign="top">
284 <td width="15%" align="right" valign="top" class="summary">
285 <span class="summary-type"> </span>
286 </td><td class="summary">
287 <table width="100%" cellpadding="0" cellspacing="0" border="0">
289 <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>,
290 <span class="summary-sig-arg">parser</span>=<span class="summary-sig-default">None</span>,
291 <span class="summary-sig-arg">base_url</span>=<span class="summary-sig-default">None</span>)</span><br />
292 Objectify specific version of the lxml.etree XML() literal factory
293 that uses the objectify parser.</td>
294 <td align="right" valign="top">
304 <td width="15%" align="right" valign="top" class="summary">
305 <span class="summary-type"> </span>
306 </td><td class="summary">
307 <table width="100%" cellpadding="0" cellspacing="0" border="0">
309 <td><span class="summary-sig"><a name="__checkBool"></a><span class="summary-sig-name">__checkBool</span>(<span class="summary-sig-arg">...</span>)</span></td>
310 <td align="right" valign="top">
320 <td width="15%" align="right" valign="top" class="summary">
321 <span class="summary-type"> </span>
322 </td><td class="summary">
323 <table width="100%" cellpadding="0" cellspacing="0" border="0">
325 <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>
326 <td align="right" valign="top">
336 <td width="15%" align="right" valign="top" class="summary">
337 <span class="summary-type"> </span>
338 </td><td class="summary">
339 <table width="100%" cellpadding="0" cellspacing="0" border="0">
341 <td><span class="summary-sig"><a name="__parseBool"></a><span class="summary-sig-name">__parseBool</span>(<span class="summary-sig-arg">...</span>)</span></td>
342 <td align="right" valign="top">
352 <td width="15%" align="right" valign="top" class="summary">
353 <span class="summary-type"> </span>
354 </td><td class="summary">
355 <table width="100%" cellpadding="0" cellspacing="0" border="0">
357 <td><span class="summary-sig"><a name="__unpickleElementTree"></a><span class="summary-sig-name">__unpickleElementTree</span>(<span class="summary-sig-arg">...</span>)</span></td>
358 <td align="right" valign="top">
368 <td width="15%" align="right" valign="top" class="summary">
369 <span class="summary-type"> </span>
370 </td><td class="summary">
371 <table width="100%" cellpadding="0" cellspacing="0" border="0">
373 <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>,
374 <span class="summary-sig-arg">ignore_old</span>=<span class="summary-sig-default">True</span>,
375 <span class="summary-sig-arg">ignore_xsi</span>=<span class="summary-sig-default">False</span>,
376 <span class="summary-sig-arg">empty_pytype</span>=<span class="summary-sig-default">None</span>,
377 <span class="summary-sig-arg">empty_type</span>=<span class="summary-sig-default">None</span>,
378 <span class="summary-sig-arg">annotate_xsi</span>=<span class="summary-sig-default">0</span>,
379 <span class="summary-sig-arg">annotate_pytype</span>=<span class="summary-sig-default">1</span>)</span><br />
380 Recursively annotates the elements of an XML tree with 'xsi:type'
381 and/or 'py:pytype' attributes.</td>
382 <td align="right" valign="top">
392 <td width="15%" align="right" valign="top" class="summary">
393 <span class="summary-type"> </span>
394 </td><td class="summary">
395 <table width="100%" cellpadding="0" cellspacing="0" border="0">
397 <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>,
398 <span class="summary-sig-arg">pytype</span>=<span class="summary-sig-default">True</span>,
399 <span class="summary-sig-arg">xsi</span>=<span class="summary-sig-default">True</span>,
400 <span class="summary-sig-arg">xsi_nil</span>=<span class="summary-sig-default">False</span>,
401 <span class="summary-sig-arg">cleanup_namespaces</span>=<span class="summary-sig-default">False</span>)</span><br />
402 Recursively de-annotate the elements of an XML tree by removing 'py:pytype'
403 and/or 'xsi:type' attributes and/or 'xsi:nil' attributes.</td>
404 <td align="right" valign="top">
414 <td width="15%" align="right" valign="top" class="summary">
415 <span class="summary-type"> </span>
416 </td><td class="summary">
417 <table width="100%" cellpadding="0" cellspacing="0" border="0">
419 <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 />
420 dump(_Element element not None)</td>
421 <td align="right" valign="top">
431 <td width="15%" align="right" valign="top" class="summary">
432 <span class="summary-type"> </span>
433 </td><td class="summary">
434 <table width="100%" cellpadding="0" cellspacing="0" border="0">
436 <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 />
437 Enable a recursively generated tree representation for str(element),
438 based on objectify.dump(element).</td>
439 <td align="right" valign="top">
449 <td width="15%" align="right" valign="top" class="summary">
450 <span class="summary-type"> </span>
451 </td><td class="summary">
452 <table width="100%" cellpadding="0" cellspacing="0" border="0">
454 <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>,
455 <span class="summary-sig-arg">parser</span>=<span class="summary-sig-default">None</span>,
456 <span class="summary-sig-arg">base_url</span>=<span class="summary-sig-default">None</span>)</span><br />
457 Objectify specific version of the lxml.etree fromstring() function
458 that uses the objectify parser.</td>
459 <td align="right" valign="top">
469 <td width="15%" align="right" valign="top" class="summary">
470 <span class="summary-type"> </span>
471 </td><td class="summary">
472 <table width="100%" cellpadding="0" cellspacing="0" border="0">
474 <td><span class="summary-sig"><a href="lxml.objectify-module.html#getRegisteredTypes" class="summary-sig-name">getRegisteredTypes</a>()</span><br />
475 Returns a list of the currently registered PyType objects.</td>
476 <td align="right" valign="top">
486 <td width="15%" align="right" valign="top" class="summary">
487 <span class="summary-type"> </span>
488 </td><td class="summary">
489 <table width="100%" cellpadding="0" cellspacing="0" border="0">
491 <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>,
492 <span class="summary-sig-arg">**kw</span>)</span><br />
493 Create a new XML parser for objectify trees.</td>
494 <td align="right" valign="top">
504 <td width="15%" align="right" valign="top" class="summary">
505 <span class="summary-type"> </span>
506 </td><td class="summary">
507 <table width="100%" cellpadding="0" cellspacing="0" border="0">
509 <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>,
510 <span class="summary-sig-arg">parser</span>=<span class="summary-sig-default">None</span>,
511 <span class="summary-sig-arg">base_url</span>=<span class="summary-sig-default">None</span>)</span><br />
512 Parse a file or file-like object with the objectify parser.</td>
513 <td align="right" valign="top">
523 <td width="15%" align="right" valign="top" class="summary">
524 <span class="summary-type"> </span>
525 </td><td class="summary">
526 <table width="100%" cellpadding="0" cellspacing="0" border="0">
528 <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>,
529 <span class="summary-sig-arg">ignore_old</span>=<span class="summary-sig-default">False</span>,
530 <span class="summary-sig-arg">ignore_xsi</span>=<span class="summary-sig-default">False</span>,
531 <span class="summary-sig-arg">empty_pytype</span>=<span class="summary-sig-default">None</span>)</span><br />
532 Recursively annotates the elements of an XML tree with 'pytype'
534 <td align="right" valign="top">
544 <td width="15%" align="right" valign="top" class="summary">
545 <span class="summary-type"> </span>
546 </td><td class="summary">
547 <table width="100%" cellpadding="0" cellspacing="0" border="0">
549 <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 />
550 Find the name of the corresponding PyType for a Python object.</td>
551 <td align="right" valign="top">
561 <td width="15%" align="right" valign="top" class="summary">
562 <span class="summary-type"> </span>
563 </td><td class="summary">
564 <table width="100%" cellpadding="0" cellspacing="0" border="0">
566 <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 />
567 Replace the default parser used by objectify's Element() and
568 fromstring() functions.</td>
569 <td align="right" valign="top">
579 <td width="15%" align="right" valign="top" class="summary">
580 <span class="summary-type"> </span>
581 </td><td class="summary">
582 <table width="100%" cellpadding="0" cellspacing="0" border="0">
584 <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 />
585 Change name and namespace of the XML attribute that holds Python type
587 <td align="right" valign="top">
597 <td width="15%" align="right" valign="top" class="summary">
598 <span class="summary-type"> </span>
599 </td><td class="summary">
600 <table width="100%" cellpadding="0" cellspacing="0" border="0">
602 <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>,
603 <span class="summary-sig-arg">ignore_old</span>=<span class="summary-sig-default">False</span>,
604 <span class="summary-sig-arg">ignore_pytype</span>=<span class="summary-sig-default">False</span>,
605 <span class="summary-sig-arg">empty_type</span>=<span class="summary-sig-default">None</span>)</span><br />
606 Recursively annotates the elements of an XML tree with 'xsi:type'
608 <td align="right" valign="top">
618 <!-- ==================== VARIABLES ==================== -->
619 <a name="section-Variables"></a>
620 <table class="summary" border="1" cellpadding="3"
621 cellspacing="0" width="100%" bgcolor="white">
622 <tr bgcolor="#70b0f0" class="table-header">
623 <td colspan="2" class="table-header">
624 <table border="0" cellpadding="0" cellspacing="0" width="100%">
626 <td align="left"><span class="table-header">Variables</span></td>
627 <td align="right" valign="top"
628 ><span class="options">[<a href="#section-Variables"
629 class="privatelink" onclick="toggle_private();"
630 >hide private</a>]</span></td>
636 <td width="15%" align="right" valign="top" class="summary">
637 <span class="summary-type"> </span>
638 </td><td class="summary">
639 <a name="E"></a><span class="summary-name">E</span> = <code title="<lxml.objectify.ElementMaker object at 0x1716050>"><lxml.objectify.ElementMaker object at 0x1716050></code>
643 <td width="15%" align="right" valign="top" class="summary">
644 <span class="summary-type"> </span>
645 </td><td class="summary">
646 <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>
650 <td width="15%" align="right" valign="top" class="summary">
651 <span class="summary-type"> </span>
652 </td><td class="summary">
653 <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'lxml'"><code class="variable-quote">'</code><code class="variable-string">lxml</code><code class="variable-quote">'</code></code>
657 <td width="15%" align="right" valign="top" class="summary">
658 <span class="summary-type"> </span>
659 </td><td class="summary">
660 <a name="__test__"></a><span class="summary-name">__test__</span> = <code title="{}"><code class="variable-group">{</code><code class="variable-group">}</code></code>
664 <!-- ==================== FUNCTION DETAILS ==================== -->
665 <a name="section-FunctionDetails"></a>
666 <table class="details" border="1" cellpadding="3"
667 cellspacing="0" width="100%" bgcolor="white">
668 <tr bgcolor="#70b0f0" class="table-header">
669 <td colspan="2" class="table-header">
670 <table border="0" cellpadding="0" cellspacing="0" width="100%">
672 <td align="left"><span class="table-header">Function Details</span></td>
673 <td align="right" valign="top"
674 ><span class="options">[<a href="#section-FunctionDetails"
675 class="privatelink" onclick="toggle_private();"
676 >hide private</a>]</span></td>
682 <a name="DataElement"></a>
684 <table class="details" border="1" cellpadding="3"
685 cellspacing="0" width="100%" bgcolor="white">
687 <table width="100%" cellpadding="0" cellspacing="0" border="0">
688 <tr valign="top"><td>
689 <h3 class="epydoc"><span class="sig"><span class="sig-name">DataElement</span>(<span class="sig-arg">_value</span>,
690 <span class="sig-arg">attrib</span>=<span class="sig-default">None</span>,
691 <span class="sig-arg">nsmap</span>=<span class="sig-default">None</span>,
692 <span class="sig-arg">_pytype</span>=<span class="sig-default">None</span>,
693 <span class="sig-arg">_xsi</span>=<span class="sig-default">None</span>,
694 <span class="sig-arg">**_attributes</span>)</span>
696 </td><td align="right" valign="top"
701 <p>Create a new element from a Python value and XML attributes taken from
702 keyword arguments or a dictionary passed as second argument.</p>
703 <p>Automatically adds a 'pytype' attribute for the Python type of the value,
704 if the type can be identified. If '_pytype' or '_xsi' are among the
705 keyword arguments, they will be used instead.</p>
706 <p>If the _value argument is an ObjectifiedDataElement instance, its py:pytype,
707 xsi:type and other attributes and nsmap are reused unless they are redefined
708 in attrib and/or keyword arguments.</p>
713 <a name="Element"></a>
715 <table class="details" border="1" cellpadding="3"
716 cellspacing="0" width="100%" bgcolor="white">
718 <table width="100%" cellpadding="0" cellspacing="0" border="0">
719 <tr valign="top"><td>
720 <h3 class="epydoc"><span class="sig"><span class="sig-name">Element</span>(<span class="sig-arg">_tag</span>,
721 <span class="sig-arg">attrib</span>=<span class="sig-default">None</span>,
722 <span class="sig-arg">nsmap</span>=<span class="sig-default">None</span>,
723 <span class="sig-arg">_pytype</span>=<span class="sig-default">None</span>,
724 <span class="sig-arg">**_attributes</span>)</span>
726 </td><td align="right" valign="top"
731 <p>Objectify specific version of the lxml.etree Element() factory that
732 always creates a structural (tree) element.</p>
733 <p>NOTE: requires parser based element class lookup activated in lxml.etree!</p>
740 <table class="details" border="1" cellpadding="3"
741 cellspacing="0" width="100%" bgcolor="white">
743 <table width="100%" cellpadding="0" cellspacing="0" border="0">
744 <tr valign="top"><td>
745 <h3 class="epydoc"><span class="sig"><span class="sig-name">XML</span>(<span class="sig-arg">xml</span>,
746 <span class="sig-arg">parser</span>=<span class="sig-default">None</span>,
747 <span class="sig-arg">base_url</span>=<span class="sig-default">None</span>)</span>
749 </td><td align="right" valign="top"
754 <p>Objectify specific version of the lxml.etree XML() literal factory
755 that uses the objectify parser.</p>
756 <p>You can pass a different parser as second argument.</p>
757 <p>The <tt class="rst-docutils literal">base_url</tt> keyword argument allows to set the original base URL of
758 the document to support relative Paths when looking up external entities
759 (DTD, XInclude, ...).</p>
764 <a name="annotate"></a>
766 <table class="details" border="1" cellpadding="3"
767 cellspacing="0" width="100%" bgcolor="white">
769 <table width="100%" cellpadding="0" cellspacing="0" border="0">
770 <tr valign="top"><td>
771 <h3 class="epydoc"><span class="sig"><span class="sig-name">annotate</span>(<span class="sig-arg">element_or_tree</span>,
772 <span class="sig-arg">ignore_old</span>=<span class="sig-default">True</span>,
773 <span class="sig-arg">ignore_xsi</span>=<span class="sig-default">False</span>,
774 <span class="sig-arg">empty_pytype</span>=<span class="sig-default">None</span>,
775 <span class="sig-arg">empty_type</span>=<span class="sig-default">None</span>,
776 <span class="sig-arg">annotate_xsi</span>=<span class="sig-default">0</span>,
777 <span class="sig-arg">annotate_pytype</span>=<span class="sig-default">1</span>)</span>
779 </td><td align="right" valign="top"
784 <p>Recursively annotates the elements of an XML tree with 'xsi:type'
785 and/or 'py:pytype' attributes.</p>
786 <p>If the 'ignore_old' keyword argument is True (the default), current
787 'py:pytype' attributes will be ignored for the type annotation. Set to False
788 if you want reuse existing 'py:pytype' information (iff appropriate for the
789 element text value).</p>
790 <p>If the 'ignore_xsi' keyword argument is False (the default), existing
791 'xsi:type' attributes will be used for the type annotation, if they fit the
792 element text values.</p>
793 <p>Note that the mapping from Python types to XSI types is usually ambiguous.
794 Currently, only the first XSI type name in the corresponding PyType
795 definition will be used for annotation. Thus, you should consider naming
796 the widest type first if you define additional types.</p>
797 <p>The default 'py:pytype' annotation of empty elements can be set with the
798 <tt class="rst-docutils literal">empty_pytype</tt> keyword argument. Pass 'str', for example, to make
799 string values the default.</p>
800 <p>The default 'xsi:type' annotation of empty elements can be set with the
801 <tt class="rst-docutils literal">empty_type</tt> keyword argument. The default is not to annotate empty
802 elements. Pass 'string', for example, to make string values the default.</p>
803 <p>The keyword arguments 'annotate_xsi' (default: 0) and 'annotate_pytype'
804 (default: 1) control which kind(s) of annotation to use.</p>
809 <a name="deannotate"></a>
811 <table class="details" border="1" cellpadding="3"
812 cellspacing="0" width="100%" bgcolor="white">
814 <table width="100%" cellpadding="0" cellspacing="0" border="0">
815 <tr valign="top"><td>
816 <h3 class="epydoc"><span class="sig"><span class="sig-name">deannotate</span>(<span class="sig-arg">element_or_tree</span>,
817 <span class="sig-arg">pytype</span>=<span class="sig-default">True</span>,
818 <span class="sig-arg">xsi</span>=<span class="sig-default">True</span>,
819 <span class="sig-arg">xsi_nil</span>=<span class="sig-default">False</span>,
820 <span class="sig-arg">cleanup_namespaces</span>=<span class="sig-default">False</span>)</span>
822 </td><td align="right" valign="top"
827 <p>Recursively de-annotate the elements of an XML tree by removing 'py:pytype'
828 and/or 'xsi:type' attributes and/or 'xsi:nil' attributes.</p>
829 <p>If the 'pytype' keyword argument is True (the default), 'py:pytype'
830 attributes will be removed. If the 'xsi' keyword argument is True (the
831 default), 'xsi:type' attributes will be removed.
832 If the 'xsi_nil' keyword argument is True (default: False), 'xsi:nil'
833 attributes will be removed.</p>
834 <p>Note that this does not touch the namespace declarations by
835 default. If you want to remove unused namespace declarations from
836 the tree, pass the option <tt class="rst-docutils literal">cleanup_namespaces=True</tt>.</p>
843 <table class="details" border="1" cellpadding="3"
844 cellspacing="0" width="100%" bgcolor="white">
846 <table width="100%" cellpadding="0" cellspacing="0" border="0">
847 <tr valign="top"><td>
848 <h3 class="epydoc"><span class="sig"><span class="sig-name">dump</span>(<span class="sig-arg">...</span>)</span>
850 </td><td align="right" valign="top"
855 <p>dump(_Element element not None)</p>
856 <p>Return a recursively generated string representation of an element.</p>
861 <a name="fromstring"></a>
863 <table class="details" border="1" cellpadding="3"
864 cellspacing="0" width="100%" bgcolor="white">
866 <table width="100%" cellpadding="0" cellspacing="0" border="0">
867 <tr valign="top"><td>
868 <h3 class="epydoc"><span class="sig"><span class="sig-name">fromstring</span>(<span class="sig-arg">xml</span>,
869 <span class="sig-arg">parser</span>=<span class="sig-default">None</span>,
870 <span class="sig-arg">base_url</span>=<span class="sig-default">None</span>)</span>
872 </td><td align="right" valign="top"
877 <p>Objectify specific version of the lxml.etree fromstring() function
878 that uses the objectify parser.</p>
879 <p>You can pass a different parser as second argument.</p>
880 <p>The <tt class="rst-docutils literal">base_url</tt> keyword argument allows to set the original base URL of
881 the document to support relative Paths when looking up external entities
882 (DTD, XInclude, ...).</p>
887 <a name="getRegisteredTypes"></a>
889 <table class="details" border="1" cellpadding="3"
890 cellspacing="0" width="100%" bgcolor="white">
892 <table width="100%" cellpadding="0" cellspacing="0" border="0">
893 <tr valign="top"><td>
894 <h3 class="epydoc"><span class="sig"><span class="sig-name">getRegisteredTypes</span>()</span>
896 </td><td align="right" valign="top"
901 <p>Returns a list of the currently registered PyType objects.</p>
902 <p>To add a new type, retrieve this list and call unregister() for all
903 entries. Then add the new type at a suitable position (possibly replacing
904 an existing one) and call register() for all entries.</p>
905 <p>This is necessary if the new type interferes with the type check functions
906 of existing ones (normally only int/float/bool) and must the tried before
907 other types. To add a type that is not yet parsable by the current type
908 check functions, you can simply register() it, which will append it to the
909 end of the type list.</p>
914 <a name="makeparser"></a>
916 <table class="details" border="1" cellpadding="3"
917 cellspacing="0" width="100%" bgcolor="white">
919 <table width="100%" cellpadding="0" cellspacing="0" border="0">
920 <tr valign="top"><td>
921 <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>,
922 <span class="sig-arg">**kw</span>)</span>
924 </td><td align="right" valign="top"
929 <p>Create a new XML parser for objectify trees.</p>
930 <p>You can pass all keyword arguments that are supported by
931 <tt class="rst-docutils literal">etree.XMLParser()</tt>. Note that this parser defaults to removing
932 blank text. You can disable this by passing the
933 <tt class="rst-docutils literal">remove_blank_text</tt> boolean keyword option yourself.</p>
940 <table class="details" border="1" cellpadding="3"
941 cellspacing="0" width="100%" bgcolor="white">
943 <table width="100%" cellpadding="0" cellspacing="0" border="0">
944 <tr valign="top"><td>
945 <h3 class="epydoc"><span class="sig"><span class="sig-name">parse</span>(<span class="sig-arg">f</span>,
946 <span class="sig-arg">parser</span>=<span class="sig-default">None</span>,
947 <span class="sig-arg">base_url</span>=<span class="sig-default">None</span>)</span>
949 </td><td align="right" valign="top"
954 <p>Parse a file or file-like object with the objectify parser.</p>
955 <p>You can pass a different parser as second argument.</p>
956 <p>The <tt class="rst-docutils literal">base_url</tt> keyword allows setting a URL for the document
957 when parsing from a file-like object. This is needed when looking
958 up external entities (DTD, XInclude, ...) with relative paths.</p>
963 <a name="pyannotate"></a>
965 <table class="details" border="1" cellpadding="3"
966 cellspacing="0" width="100%" bgcolor="white">
968 <table width="100%" cellpadding="0" cellspacing="0" border="0">
969 <tr valign="top"><td>
970 <h3 class="epydoc"><span class="sig"><span class="sig-name">pyannotate</span>(<span class="sig-arg">element_or_tree</span>,
971 <span class="sig-arg">ignore_old</span>=<span class="sig-default">False</span>,
972 <span class="sig-arg">ignore_xsi</span>=<span class="sig-default">False</span>,
973 <span class="sig-arg">empty_pytype</span>=<span class="sig-default">None</span>)</span>
975 </td><td align="right" valign="top"
980 <p>Recursively annotates the elements of an XML tree with 'pytype'
982 <p>If the 'ignore_old' keyword argument is True (the default), current 'pytype'
983 attributes will be ignored and replaced. Otherwise, they will be checked
984 and only replaced if they no longer fit the current text value.</p>
985 <p>Setting the keyword argument <tt class="rst-docutils literal">ignore_xsi</tt> to True makes the function
986 additionally ignore existing <tt class="rst-docutils literal">xsi:type</tt> annotations. The default is to
987 use them as a type hint.</p>
988 <p>The default annotation of empty elements can be set with the
989 <tt class="rst-docutils literal">empty_pytype</tt> keyword argument. The default is not to annotate empty
990 elements. Pass 'str', for example, to make string values the default.</p>
995 <a name="set_default_parser"></a>
997 <table class="details" border="1" cellpadding="3"
998 cellspacing="0" width="100%" bgcolor="white">
1000 <table width="100%" cellpadding="0" cellspacing="0" border="0">
1001 <tr valign="top"><td>
1002 <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>
1004 </td><td align="right" valign="top"
1009 <p>Replace the default parser used by objectify's Element() and
1010 fromstring() functions.</p>
1011 <p>The new parser must be an etree.XMLParser.</p>
1012 <p>Call without arguments to reset to the original parser.</p>
1017 <a name="set_pytype_attribute_tag"></a>
1019 <table class="details" border="1" cellpadding="3"
1020 cellspacing="0" width="100%" bgcolor="white">
1022 <table width="100%" cellpadding="0" cellspacing="0" border="0">
1023 <tr valign="top"><td>
1024 <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>
1026 </td><td align="right" valign="top"
1031 <p>Change name and namespace of the XML attribute that holds Python type
1033 <p>Do not use this unless you know what you are doing.</p>
1034 <p>Reset by calling without argument.</p>
1035 <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>
1040 <a name="xsiannotate"></a>
1042 <table class="details" border="1" cellpadding="3"
1043 cellspacing="0" width="100%" bgcolor="white">
1045 <table width="100%" cellpadding="0" cellspacing="0" border="0">
1046 <tr valign="top"><td>
1047 <h3 class="epydoc"><span class="sig"><span class="sig-name">xsiannotate</span>(<span class="sig-arg">element_or_tree</span>,
1048 <span class="sig-arg">ignore_old</span>=<span class="sig-default">False</span>,
1049 <span class="sig-arg">ignore_pytype</span>=<span class="sig-default">False</span>,
1050 <span class="sig-arg">empty_type</span>=<span class="sig-default">None</span>)</span>
1052 </td><td align="right" valign="top"
1057 <p>Recursively annotates the elements of an XML tree with 'xsi:type'
1059 <p>If the 'ignore_old' keyword argument is True (the default), current
1060 'xsi:type' attributes will be ignored and replaced. Otherwise, they will be
1061 checked and only replaced if they no longer fit the current text value.</p>
1062 <p>Note that the mapping from Python types to XSI types is usually ambiguous.
1063 Currently, only the first XSI type name in the corresponding PyType
1064 definition will be used for annotation. Thus, you should consider naming
1065 the widest type first if you define additional types.</p>
1066 <p>Setting the keyword argument <tt class="rst-docutils literal">ignore_pytype</tt> to True makes the function
1067 additionally ignore existing <tt class="rst-docutils literal">pytype</tt> annotations. The default is to
1068 use them as a type hint.</p>
1069 <p>The default annotation of empty elements can be set with the
1070 <tt class="rst-docutils literal">empty_type</tt> keyword argument. The default is not to annotate empty
1071 elements. Pass 'string', for example, to make string values the default.</p>
1077 <!-- ==================== VARIABLES DETAILS ==================== -->
1078 <a name="section-VariablesDetails"></a>
1079 <table class="details" border="1" cellpadding="3"
1080 cellspacing="0" width="100%" bgcolor="white">
1081 <tr bgcolor="#70b0f0" class="table-header">
1082 <td colspan="2" class="table-header">
1083 <table border="0" cellpadding="0" cellspacing="0" width="100%">
1085 <td align="left"><span class="table-header">Variables Details</span></td>
1086 <td align="right" valign="top"
1087 ><span class="options">[<a href="#section-VariablesDetails"
1088 class="privatelink" onclick="toggle_private();"
1089 >hide private</a>]</span></td>
1095 <a name="PYTYPE_ATTRIBUTE"></a>
1097 <table class="details" border="1" cellpadding="3"
1098 cellspacing="0" width="100%" bgcolor="white">
1100 <h3 class="epydoc">PYTYPE_ATTRIBUTE</h3>
1106 <dd><table><tr><td><pre class="variable">
1107 <code class="variable-quote">'</code><code class="variable-string">{http://codespeak.net/lxml/objectify/pytype}pytype</code><code class="variable-quote">'</code>
1108 </pre></td></tr></table>
1114 <!-- ==================== NAVIGATION BAR ==================== -->
1115 <table class="navbar" border="0" width="100%" cellpadding="0"
1116 bgcolor="#a0c0ff" cellspacing="0">
1117 <tr valign="middle">
1119 <th> <a
1120 href="lxml-module.html">Home</a> </th>
1123 <th> <a
1124 href="module-tree.html">Trees</a> </th>
1127 <th> <a
1128 href="identifier-index.html">Indices</a> </th>
1131 <th> <a
1132 href="help.html">Help</a> </th>
1134 <!-- Project homepage -->
1135 <th class="navbar" align="right" width="100%">
1136 <table border="0" cellpadding="0" cellspacing="0">
1137 <tr><th class="navbar" align="center"
1138 ><a class="navbar" target="_top" href="/">lxml API</a></th>
1142 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
1144 <td align="left" class="footer">
1145 Generated by Epydoc 3.0.1 on Tue Jul 31 10:14:17 2012
1147 <td align="right" class="footer">
1148 <a target="mainFrame" href="http://epydoc.sourceforge.net"
1149 >http://epydoc.sourceforge.net</a>
1154 <script type="text/javascript">
1156 // Private objects are initially displayed (because if
1157 // javascript is turned off then we want them to be
1158 // visible); but by default, we want to hide them. So hide
1159 // them unless we have a cookie that says to show them.