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="http://codespeak.net/lxml/">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"><span class="pre">lxml.objectify</span></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.
157 <td width="15%" align="right" valign="top" class="summary">
158 <span class="summary-type"> </span>
159 </td><td class="summary">
160 <a href="lxml.objectify.ObjectifiedElement-class.html" class="summary-name">ObjectifiedElement</a><br />
161 Main XML Element class.
165 <td width="15%" align="right" valign="top" class="summary">
166 <span class="summary-type"> </span>
167 </td><td class="summary">
168 <a href="lxml.objectify.ObjectifyElementClassLookup-class.html" class="summary-name">ObjectifyElementClassLookup</a><br />
169 ObjectifyElementClassLookup(self, tree_class=None, empty_data_class=None)
170 Element class lookup method that uses the objectify classes.
174 <td width="15%" align="right" valign="top" class="summary">
175 <span class="summary-type"> </span>
176 </td><td class="summary">
177 <a href="lxml.objectify.PyType-class.html" class="summary-name">PyType</a><br />
178 PyType(self, name, type_check, type_class, stringify=None)
183 <td width="15%" align="right" valign="top" class="summary">
184 <span class="summary-type"> </span>
185 </td><td class="summary">
186 <a href="lxml.objectify.StringElement-class.html" class="summary-name">StringElement</a><br />
191 <td width="15%" align="right" valign="top" class="summary">
192 <span class="summary-type"> </span>
193 </td><td class="summary">
194 <a href="lxml.objectify._ObjectifyElementMakerCaller-class.html" class="summary-name" onclick="show_private();">_ObjectifyElementMakerCaller</a>
198 <!-- ==================== FUNCTIONS ==================== -->
199 <a name="section-Functions"></a>
200 <table class="summary" border="1" cellpadding="3"
201 cellspacing="0" width="100%" bgcolor="white">
202 <tr bgcolor="#70b0f0" class="table-header">
203 <td colspan="2" class="table-header">
204 <table border="0" cellpadding="0" cellspacing="0" width="100%">
206 <td align="left"><span class="table-header">Functions</span></td>
207 <td align="right" valign="top"
208 ><span class="options">[<a href="#section-Functions"
209 class="privatelink" onclick="toggle_private();"
210 >hide private</a>]</span></td>
216 <td width="15%" align="right" valign="top" class="summary">
217 <span class="summary-type"> </span>
218 </td><td class="summary">
219 <table width="100%" cellpadding="0" cellspacing="0" border="0">
221 <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>,
222 <span class="summary-sig-arg">attrib</span>=<span class="summary-sig-default">None</span>,
223 <span class="summary-sig-arg">nsmap</span>=<span class="summary-sig-default">None</span>,
224 <span class="summary-sig-arg">_pytype</span>=<span class="summary-sig-default">None</span>,
225 <span class="summary-sig-arg">_xsi</span>=<span class="summary-sig-default">None</span>,
226 <span class="summary-sig-arg">**_attributes</span>)</span><br />
227 Create a new element from a Python value and XML attributes taken from
228 keyword arguments or a dictionary passed as second argument.</td>
229 <td align="right" valign="top">
239 <td width="15%" align="right" valign="top" class="summary">
240 <span class="summary-type"> </span>
241 </td><td class="summary">
242 <table width="100%" cellpadding="0" cellspacing="0" border="0">
244 <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>,
245 <span class="summary-sig-arg">attrib</span>=<span class="summary-sig-default">None</span>,
246 <span class="summary-sig-arg">nsmap</span>=<span class="summary-sig-default">None</span>,
247 <span class="summary-sig-arg">_pytype</span>=<span class="summary-sig-default">None</span>,
248 <span class="summary-sig-arg">**_attributes</span>)</span><br />
249 Objectify specific version of the lxml.etree Element() factory that
250 always creates a structural (tree) element.</td>
251 <td align="right" valign="top">
261 <td width="15%" align="right" valign="top" class="summary">
262 <span class="summary-type"> </span>
263 </td><td class="summary">
264 <table width="100%" cellpadding="0" cellspacing="0" border="0">
266 <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>,
267 <span class="summary-sig-arg">parser</span>=<span class="summary-sig-default">None</span>,
268 <span class="summary-sig-arg">base_url</span>=<span class="summary-sig-default">None</span>)</span><br />
269 Objectify specific version of the lxml.etree XML() literal factory
270 that uses the objectify parser.</td>
271 <td align="right" valign="top">
281 <td width="15%" align="right" valign="top" class="summary">
282 <span class="summary-type"> </span>
283 </td><td class="summary">
284 <table width="100%" cellpadding="0" cellspacing="0" border="0">
286 <td><span class="summary-sig"><a name="__checkBool"></a><span class="summary-sig-name">__checkBool</span>(<span class="summary-sig-arg">...</span>)</span></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="__lower_bool"></a><span class="summary-sig-name">__lower_bool</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="__parseBool"></a><span class="summary-sig-name">__parseBool</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="__unpickleElementTree"></a><span class="summary-sig-name">__unpickleElementTree</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 href="lxml.objectify-module.html#annotate" class="summary-sig-name">annotate</a>(<span class="summary-sig-arg">element_or_tree</span>,
351 <span class="summary-sig-arg">ignore_old</span>=<span class="summary-sig-default">True</span>,
352 <span class="summary-sig-arg">ignore_xsi</span>=<span class="summary-sig-default">False</span>,
353 <span class="summary-sig-arg">empty_pytype</span>=<span class="summary-sig-default">None</span>,
354 <span class="summary-sig-arg">empty_type</span>=<span class="summary-sig-default">None</span>,
355 <span class="summary-sig-arg">annotate_xsi</span>=<span class="summary-sig-default">0</span>,
356 <span class="summary-sig-arg">annotate_pytype</span>=<span class="summary-sig-default">1</span>)</span><br />
357 Recursively annotates the elements of an XML tree with 'xsi:type'
358 and/or 'py:pytype' attributes.</td>
359 <td align="right" valign="top">
369 <td width="15%" align="right" valign="top" class="summary">
370 <span class="summary-type"> </span>
371 </td><td class="summary">
372 <table width="100%" cellpadding="0" cellspacing="0" border="0">
374 <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>,
375 <span class="summary-sig-arg">pytype</span>=<span class="summary-sig-default">True</span>,
376 <span class="summary-sig-arg">xsi</span>=<span class="summary-sig-default">True</span>,
377 <span class="summary-sig-arg">xsi_nil</span>=<span class="summary-sig-default">False</span>)</span><br />
378 Recursively de-annotate the elements of an XML tree by removing 'py:pytype'
379 and/or 'xsi:type' attributes and/or 'xsi:nil' attributes.</td>
380 <td align="right" valign="top">
390 <td width="15%" align="right" valign="top" class="summary">
391 <span class="summary-type"> </span>
392 </td><td class="summary">
393 <table width="100%" cellpadding="0" cellspacing="0" border="0">
395 <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 />
396 dump(_Element element not None)</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 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 />
413 Enable a recursively generated tree representation for str(element),
414 based on objectify.dump(element).</td>
415 <td align="right" valign="top">
425 <td width="15%" align="right" valign="top" class="summary">
426 <span class="summary-type"> </span>
427 </td><td class="summary">
428 <table width="100%" cellpadding="0" cellspacing="0" border="0">
430 <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>,
431 <span class="summary-sig-arg">parser</span>=<span class="summary-sig-default">None</span>,
432 <span class="summary-sig-arg">base_url</span>=<span class="summary-sig-default">None</span>)</span><br />
433 Objectify specific version of the lxml.etree fromstring() function
434 that uses the objectify parser.</td>
435 <td align="right" valign="top">
445 <td width="15%" align="right" valign="top" class="summary">
446 <span class="summary-type"> </span>
447 </td><td class="summary">
448 <table width="100%" cellpadding="0" cellspacing="0" border="0">
450 <td><span class="summary-sig"><a href="lxml.objectify-module.html#getRegisteredTypes" class="summary-sig-name">getRegisteredTypes</a>()</span><br />
451 Returns a list of the currently registered PyType objects.</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#makeparser" class="summary-sig-name">makeparser</a>(<span class="summary-sig-arg">remove_blank_text</span>=<span class="summary-sig-default">True</span>,
468 <span class="summary-sig-arg">**kw</span>)</span><br />
469 Create a new XML parser for objectify trees.</td>
470 <td align="right" valign="top">
480 <td width="15%" align="right" valign="top" class="summary">
481 <span class="summary-type"> </span>
482 </td><td class="summary">
483 <table width="100%" cellpadding="0" cellspacing="0" border="0">
485 <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>,
486 <span class="summary-sig-arg">parser</span>=<span class="summary-sig-default">None</span>,
487 <span class="summary-sig-arg">base_url</span>=<span class="summary-sig-default">None</span>)</span><br />
488 Parse a file or file-like object with the objectify parser.</td>
489 <td align="right" valign="top">
499 <td width="15%" align="right" valign="top" class="summary">
500 <span class="summary-type"> </span>
501 </td><td class="summary">
502 <table width="100%" cellpadding="0" cellspacing="0" border="0">
504 <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>,
505 <span class="summary-sig-arg">ignore_old</span>=<span class="summary-sig-default">False</span>,
506 <span class="summary-sig-arg">ignore_xsi</span>=<span class="summary-sig-default">False</span>,
507 <span class="summary-sig-arg">empty_pytype</span>=<span class="summary-sig-default">None</span>)</span><br />
508 Recursively annotates the elements of an XML tree with 'pytype'
510 <td align="right" valign="top">
520 <td width="15%" align="right" valign="top" class="summary">
521 <span class="summary-type"> </span>
522 </td><td class="summary">
523 <table width="100%" cellpadding="0" cellspacing="0" border="0">
525 <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 />
526 Find the name of the corresponding PyType for a Python object.</td>
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 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 />
543 Replace the default parser used by objectify's Element() and
544 fromstring() functions.</td>
545 <td align="right" valign="top">
555 <td width="15%" align="right" valign="top" class="summary">
556 <span class="summary-type"> </span>
557 </td><td class="summary">
558 <table width="100%" cellpadding="0" cellspacing="0" border="0">
560 <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 />
561 Change name and namespace of the XML attribute that holds Python type
563 <td align="right" valign="top">
573 <td width="15%" align="right" valign="top" class="summary">
574 <span class="summary-type"> </span>
575 </td><td class="summary">
576 <table width="100%" cellpadding="0" cellspacing="0" border="0">
578 <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>,
579 <span class="summary-sig-arg">ignore_old</span>=<span class="summary-sig-default">False</span>,
580 <span class="summary-sig-arg">ignore_pytype</span>=<span class="summary-sig-default">False</span>,
581 <span class="summary-sig-arg">empty_type</span>=<span class="summary-sig-default">None</span>)</span><br />
582 Recursively annotates the elements of an XML tree with 'xsi:type'
584 <td align="right" valign="top">
594 <!-- ==================== VARIABLES ==================== -->
595 <a name="section-Variables"></a>
596 <table class="summary" border="1" cellpadding="3"
597 cellspacing="0" width="100%" bgcolor="white">
598 <tr bgcolor="#70b0f0" class="table-header">
599 <td colspan="2" class="table-header">
600 <table border="0" cellpadding="0" cellspacing="0" width="100%">
602 <td align="left"><span class="table-header">Variables</span></td>
603 <td align="right" valign="top"
604 ><span class="options">[<a href="#section-Variables"
605 class="privatelink" onclick="toggle_private();"
606 >hide private</a>]</span></td>
612 <td width="15%" align="right" valign="top" class="summary">
613 <span class="summary-type"> </span>
614 </td><td class="summary">
615 <a name="E"></a><span class="summary-name">E</span> = <code title="<lxml.objectify.ElementMaker object at 0x8f71d4c>"><lxml.objectify.ElementMaker object at 0x8f71d4c></code>
619 <td width="15%" align="right" valign="top" class="summary">
620 <span class="summary-type"> </span>
621 </td><td class="summary">
622 <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>
626 <!-- ==================== FUNCTION DETAILS ==================== -->
627 <a name="section-FunctionDetails"></a>
628 <table class="details" border="1" cellpadding="3"
629 cellspacing="0" width="100%" bgcolor="white">
630 <tr bgcolor="#70b0f0" class="table-header">
631 <td colspan="2" class="table-header">
632 <table border="0" cellpadding="0" cellspacing="0" width="100%">
634 <td align="left"><span class="table-header">Function Details</span></td>
635 <td align="right" valign="top"
636 ><span class="options">[<a href="#section-FunctionDetails"
637 class="privatelink" onclick="toggle_private();"
638 >hide private</a>]</span></td>
644 <a name="DataElement"></a>
646 <table class="details" border="1" cellpadding="3"
647 cellspacing="0" width="100%" bgcolor="white">
649 <table width="100%" cellpadding="0" cellspacing="0" border="0">
650 <tr valign="top"><td>
651 <h3 class="epydoc"><span class="sig"><span class="sig-name">DataElement</span>(<span class="sig-arg">_value</span>,
652 <span class="sig-arg">attrib</span>=<span class="sig-default">None</span>,
653 <span class="sig-arg">nsmap</span>=<span class="sig-default">None</span>,
654 <span class="sig-arg">_pytype</span>=<span class="sig-default">None</span>,
655 <span class="sig-arg">_xsi</span>=<span class="sig-default">None</span>,
656 <span class="sig-arg">**_attributes</span>)</span>
658 </td><td align="right" valign="top"
663 <p>Create a new element from a Python value and XML attributes taken from
664 keyword arguments or a dictionary passed as second argument.</p>
665 <p>Automatically adds a 'pytype' attribute for the Python type of the value,
666 if the type can be identified. If '_pytype' or '_xsi' are among the
667 keyword arguments, they will be used instead.</p>
668 <p>If the _value argument is an ObjectifiedDataElement instance, its py:pytype,
669 xsi:type and other attributes and nsmap are reused unless they are redefined
670 in attrib and/or keyword arguments.</p>
675 <a name="Element"></a>
677 <table class="details" border="1" cellpadding="3"
678 cellspacing="0" width="100%" bgcolor="white">
680 <table width="100%" cellpadding="0" cellspacing="0" border="0">
681 <tr valign="top"><td>
682 <h3 class="epydoc"><span class="sig"><span class="sig-name">Element</span>(<span class="sig-arg">_tag</span>,
683 <span class="sig-arg">attrib</span>=<span class="sig-default">None</span>,
684 <span class="sig-arg">nsmap</span>=<span class="sig-default">None</span>,
685 <span class="sig-arg">_pytype</span>=<span class="sig-default">None</span>,
686 <span class="sig-arg">**_attributes</span>)</span>
688 </td><td align="right" valign="top"
693 <p>Objectify specific version of the lxml.etree Element() factory that
694 always creates a structural (tree) element.</p>
695 <p>NOTE: requires parser based element class lookup activated in lxml.etree!</p>
702 <table class="details" border="1" cellpadding="3"
703 cellspacing="0" width="100%" bgcolor="white">
705 <table width="100%" cellpadding="0" cellspacing="0" border="0">
706 <tr valign="top"><td>
707 <h3 class="epydoc"><span class="sig"><span class="sig-name">XML</span>(<span class="sig-arg">xml</span>,
708 <span class="sig-arg">parser</span>=<span class="sig-default">None</span>,
709 <span class="sig-arg">base_url</span>=<span class="sig-default">None</span>)</span>
711 </td><td align="right" valign="top"
716 <p>Objectify specific version of the lxml.etree XML() literal factory
717 that uses the objectify parser.</p>
718 <p>You can pass a different parser as second argument.</p>
719 <p>The <tt class="rst-docutils literal"><span class="pre">base_url</span></tt> keyword argument allows to set the original base URL of
720 the document to support relative Paths when looking up external entities
721 (DTD, XInclude, ...).</p>
726 <a name="annotate"></a>
728 <table class="details" border="1" cellpadding="3"
729 cellspacing="0" width="100%" bgcolor="white">
731 <table width="100%" cellpadding="0" cellspacing="0" border="0">
732 <tr valign="top"><td>
733 <h3 class="epydoc"><span class="sig"><span class="sig-name">annotate</span>(<span class="sig-arg">element_or_tree</span>,
734 <span class="sig-arg">ignore_old</span>=<span class="sig-default">True</span>,
735 <span class="sig-arg">ignore_xsi</span>=<span class="sig-default">False</span>,
736 <span class="sig-arg">empty_pytype</span>=<span class="sig-default">None</span>,
737 <span class="sig-arg">empty_type</span>=<span class="sig-default">None</span>,
738 <span class="sig-arg">annotate_xsi</span>=<span class="sig-default">0</span>,
739 <span class="sig-arg">annotate_pytype</span>=<span class="sig-default">1</span>)</span>
741 </td><td align="right" valign="top"
746 <p>Recursively annotates the elements of an XML tree with 'xsi:type'
747 and/or 'py:pytype' attributes.</p>
748 <p>If the 'ignore_old' keyword argument is True (the default), current
749 'py:pytype' attributes will be ignored for the type annotation. Set to False
750 if you want reuse existing 'py:pytype' information (iff appropriate for the
751 element text value).</p>
752 <p>If the 'ignore_xsi' keyword argument is False (the default), existing
753 'xsi:type' attributes will be used for the type annotation, if they fit the
754 element text values.</p>
755 <p>Note that the mapping from Python types to XSI types is usually ambiguous.
756 Currently, only the first XSI type name in the corresponding PyType
757 definition will be used for annotation. Thus, you should consider naming
758 the widest type first if you define additional types.</p>
759 <p>The default 'py:pytype' annotation of empty elements can be set with the
760 <tt class="rst-docutils literal"><span class="pre">empty_pytype</span></tt> keyword argument. Pass 'str', for example, to make
761 string values the default.</p>
762 <p>The default 'xsi:type' annotation of empty elements can be set with the
763 <tt class="rst-docutils literal"><span class="pre">empty_type</span></tt> keyword argument. The default is not to annotate empty
764 elements. Pass 'string', for example, to make string values the default.</p>
765 <p>The keyword arguments 'annotate_xsi' (default: 0) and 'annotate_pytype'
766 (default: 1) control which kind(s) of annotation to use.</p>
771 <a name="deannotate"></a>
773 <table class="details" border="1" cellpadding="3"
774 cellspacing="0" width="100%" bgcolor="white">
776 <table width="100%" cellpadding="0" cellspacing="0" border="0">
777 <tr valign="top"><td>
778 <h3 class="epydoc"><span class="sig"><span class="sig-name">deannotate</span>(<span class="sig-arg">element_or_tree</span>,
779 <span class="sig-arg">pytype</span>=<span class="sig-default">True</span>,
780 <span class="sig-arg">xsi</span>=<span class="sig-default">True</span>,
781 <span class="sig-arg">xsi_nil</span>=<span class="sig-default">False</span>)</span>
783 </td><td align="right" valign="top"
788 <p>Recursively de-annotate the elements of an XML tree by removing 'py:pytype'
789 and/or 'xsi:type' attributes and/or 'xsi:nil' attributes.</p>
790 <p>If the 'pytype' keyword argument is True (the default), 'py:pytype'
791 attributes will be removed. If the 'xsi' keyword argument is True (the
792 default), 'xsi:type' attributes will be removed.
793 If the 'xsi_nil' keyword argument is True (default: False), 'xsi:nil'
794 attributes will be removed.</p>
795 <p>Note that this does not touch the namespace declarations. If you
796 want to remove unused namespace declarations from the tree, use
797 <tt class="rst-docutils literal"><span class="pre">lxml.etree.cleanup_namespaces()</span></tt>.</p>
804 <table class="details" border="1" cellpadding="3"
805 cellspacing="0" width="100%" bgcolor="white">
807 <table width="100%" cellpadding="0" cellspacing="0" border="0">
808 <tr valign="top"><td>
809 <h3 class="epydoc"><span class="sig"><span class="sig-name">dump</span>(<span class="sig-arg">...</span>)</span>
811 </td><td align="right" valign="top"
816 <p>dump(_Element element not None)</p>
817 <p>Return a recursively generated string representation of an element.</p>
822 <a name="fromstring"></a>
824 <table class="details" border="1" cellpadding="3"
825 cellspacing="0" width="100%" bgcolor="white">
827 <table width="100%" cellpadding="0" cellspacing="0" border="0">
828 <tr valign="top"><td>
829 <h3 class="epydoc"><span class="sig"><span class="sig-name">fromstring</span>(<span class="sig-arg">xml</span>,
830 <span class="sig-arg">parser</span>=<span class="sig-default">None</span>,
831 <span class="sig-arg">base_url</span>=<span class="sig-default">None</span>)</span>
833 </td><td align="right" valign="top"
838 <p>Objectify specific version of the lxml.etree fromstring() function
839 that uses the objectify parser.</p>
840 <p>You can pass a different parser as second argument.</p>
841 <p>The <tt class="rst-docutils literal"><span class="pre">base_url</span></tt> keyword argument allows to set the original base URL of
842 the document to support relative Paths when looking up external entities
843 (DTD, XInclude, ...).</p>
848 <a name="getRegisteredTypes"></a>
850 <table class="details" border="1" cellpadding="3"
851 cellspacing="0" width="100%" bgcolor="white">
853 <table width="100%" cellpadding="0" cellspacing="0" border="0">
854 <tr valign="top"><td>
855 <h3 class="epydoc"><span class="sig"><span class="sig-name">getRegisteredTypes</span>()</span>
857 </td><td align="right" valign="top"
862 <p>Returns a list of the currently registered PyType objects.</p>
863 <p>To add a new type, retrieve this list and call unregister() for all
864 entries. Then add the new type at a suitable position (possibly replacing
865 an existing one) and call register() for all entries.</p>
866 <p>This is necessary if the new type interferes with the type check functions
867 of existing ones (normally only int/float/bool) and must the tried before
868 other types. To add a type that is not yet parsable by the current type
869 check functions, you can simply register() it, which will append it to the
870 end of the type list.</p>
875 <a name="makeparser"></a>
877 <table class="details" border="1" cellpadding="3"
878 cellspacing="0" width="100%" bgcolor="white">
880 <table width="100%" cellpadding="0" cellspacing="0" border="0">
881 <tr valign="top"><td>
882 <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>,
883 <span class="sig-arg">**kw</span>)</span>
885 </td><td align="right" valign="top"
890 <p>Create a new XML parser for objectify trees.</p>
891 <p>You can pass all keyword arguments that are supported by
892 <tt class="rst-docutils literal"><span class="pre">etree.XMLParser()</span></tt>. Note that this parser defaults to removing
893 blank text. You can disable this by passing the
894 <tt class="rst-docutils literal"><span class="pre">remove_blank_text</span></tt> boolean keyword option yourself.</p>
901 <table class="details" border="1" cellpadding="3"
902 cellspacing="0" width="100%" bgcolor="white">
904 <table width="100%" cellpadding="0" cellspacing="0" border="0">
905 <tr valign="top"><td>
906 <h3 class="epydoc"><span class="sig"><span class="sig-name">parse</span>(<span class="sig-arg">f</span>,
907 <span class="sig-arg">parser</span>=<span class="sig-default">None</span>,
908 <span class="sig-arg">base_url</span>=<span class="sig-default">None</span>)</span>
910 </td><td align="right" valign="top"
915 <p>Parse a file or file-like object with the objectify parser.</p>
916 <p>You can pass a different parser as second argument.</p>
917 <p>The <tt class="rst-docutils literal"><span class="pre">base_url</span></tt> keyword allows setting a URL for the document
918 when parsing from a file-like object. This is needed when looking
919 up external entities (DTD, XInclude, ...) with relative paths.</p>
924 <a name="pyannotate"></a>
926 <table class="details" border="1" cellpadding="3"
927 cellspacing="0" width="100%" bgcolor="white">
929 <table width="100%" cellpadding="0" cellspacing="0" border="0">
930 <tr valign="top"><td>
931 <h3 class="epydoc"><span class="sig"><span class="sig-name">pyannotate</span>(<span class="sig-arg">element_or_tree</span>,
932 <span class="sig-arg">ignore_old</span>=<span class="sig-default">False</span>,
933 <span class="sig-arg">ignore_xsi</span>=<span class="sig-default">False</span>,
934 <span class="sig-arg">empty_pytype</span>=<span class="sig-default">None</span>)</span>
936 </td><td align="right" valign="top"
941 <p>Recursively annotates the elements of an XML tree with 'pytype'
943 <p>If the 'ignore_old' keyword argument is True (the default), current 'pytype'
944 attributes will be ignored and replaced. Otherwise, they will be checked
945 and only replaced if they no longer fit the current text value.</p>
946 <p>Setting the keyword argument <tt class="rst-docutils literal"><span class="pre">ignore_xsi</span></tt> to True makes the function
947 additionally ignore existing <tt class="rst-docutils literal"><span class="pre">xsi:type</span></tt> annotations. The default is to
948 use them as a type hint.</p>
949 <p>The default annotation of empty elements can be set with the
950 <tt class="rst-docutils literal"><span class="pre">empty_pytype</span></tt> keyword argument. The default is not to annotate empty
951 elements. Pass 'str', for example, to make string values the default.</p>
956 <a name="set_default_parser"></a>
958 <table class="details" border="1" cellpadding="3"
959 cellspacing="0" width="100%" bgcolor="white">
961 <table width="100%" cellpadding="0" cellspacing="0" border="0">
962 <tr valign="top"><td>
963 <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>
965 </td><td align="right" valign="top"
970 <p>Replace the default parser used by objectify's Element() and
971 fromstring() functions.</p>
972 <p>The new parser must be an etree.XMLParser.</p>
973 <p>Call without arguments to reset to the original parser.</p>
978 <a name="set_pytype_attribute_tag"></a>
980 <table class="details" border="1" cellpadding="3"
981 cellspacing="0" width="100%" bgcolor="white">
983 <table width="100%" cellpadding="0" cellspacing="0" border="0">
984 <tr valign="top"><td>
985 <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>
987 </td><td align="right" valign="top"
992 <p>Change name and namespace of the XML attribute that holds Python type
994 <p>Do not use this unless you know what you are doing.</p>
995 <p>Reset by calling without argument.</p>
996 <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>
1001 <a name="xsiannotate"></a>
1003 <table class="details" border="1" cellpadding="3"
1004 cellspacing="0" width="100%" bgcolor="white">
1006 <table width="100%" cellpadding="0" cellspacing="0" border="0">
1007 <tr valign="top"><td>
1008 <h3 class="epydoc"><span class="sig"><span class="sig-name">xsiannotate</span>(<span class="sig-arg">element_or_tree</span>,
1009 <span class="sig-arg">ignore_old</span>=<span class="sig-default">False</span>,
1010 <span class="sig-arg">ignore_pytype</span>=<span class="sig-default">False</span>,
1011 <span class="sig-arg">empty_type</span>=<span class="sig-default">None</span>)</span>
1013 </td><td align="right" valign="top"
1018 <p>Recursively annotates the elements of an XML tree with 'xsi:type'
1020 <p>If the 'ignore_old' keyword argument is True (the default), current
1021 'xsi:type' attributes will be ignored and replaced. Otherwise, they will be
1022 checked and only replaced if they no longer fit the current text value.</p>
1023 <p>Note that the mapping from Python types to XSI types is usually ambiguous.
1024 Currently, only the first XSI type name in the corresponding PyType
1025 definition will be used for annotation. Thus, you should consider naming
1026 the widest type first if you define additional types.</p>
1027 <p>Setting the keyword argument <tt class="rst-docutils literal"><span class="pre">ignore_pytype</span></tt> to True makes the function
1028 additionally ignore existing <tt class="rst-docutils literal"><span class="pre">pytype</span></tt> annotations. The default is to
1029 use them as a type hint.</p>
1030 <p>The default annotation of empty elements can be set with the
1031 <tt class="rst-docutils literal"><span class="pre">empty_type</span></tt> keyword argument. The default is not to annotate empty
1032 elements. Pass 'string', for example, to make string values the default.</p>
1038 <!-- ==================== VARIABLES DETAILS ==================== -->
1039 <a name="section-VariablesDetails"></a>
1040 <table class="details" border="1" cellpadding="3"
1041 cellspacing="0" width="100%" bgcolor="white">
1042 <tr bgcolor="#70b0f0" class="table-header">
1043 <td colspan="2" class="table-header">
1044 <table border="0" cellpadding="0" cellspacing="0" width="100%">
1046 <td align="left"><span class="table-header">Variables Details</span></td>
1047 <td align="right" valign="top"
1048 ><span class="options">[<a href="#section-VariablesDetails"
1049 class="privatelink" onclick="toggle_private();"
1050 >hide private</a>]</span></td>
1056 <a name="PYTYPE_ATTRIBUTE"></a>
1058 <table class="details" border="1" cellpadding="3"
1059 cellspacing="0" width="100%" bgcolor="white">
1061 <h3 class="epydoc">PYTYPE_ATTRIBUTE</h3>
1067 <dd><table><tr><td><pre class="variable">
1068 <code class="variable-quote">'</code><code class="variable-string">{http://codespeak.net/lxml/objectify/pytype}pytype</code><code class="variable-quote">'</code>
1069 </pre></td></tr></table>
1075 <!-- ==================== NAVIGATION BAR ==================== -->
1076 <table class="navbar" border="0" width="100%" cellpadding="0"
1077 bgcolor="#a0c0ff" cellspacing="0">
1078 <tr valign="middle">
1080 <th> <a
1081 href="lxml-module.html">Home</a> </th>
1084 <th> <a
1085 href="module-tree.html">Trees</a> </th>
1088 <th> <a
1089 href="identifier-index.html">Indices</a> </th>
1092 <th> <a
1093 href="help.html">Help</a> </th>
1095 <!-- Project homepage -->
1096 <th class="navbar" align="right" width="100%">
1097 <table border="0" cellpadding="0" cellspacing="0">
1098 <tr><th class="navbar" align="center"
1099 ><a class="navbar" target="_top" href="http://codespeak.net/lxml/">lxml API</a></th>
1103 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
1105 <td align="left" class="footer">
1106 Generated by Epydoc 3.0 on Fri Oct 30 14:51:44 2009
1108 <td align="right" class="footer">
1109 <a target="mainFrame" href="http://epydoc.sourceforge.net"
1110 >http://epydoc.sourceforge.net</a>
1115 <script type="text/javascript">
1117 // Private objects are initially displayed (because if
1118 // javascript is turned off then we want them to be
1119 // visible); but by default, we want to hide them. So hide
1120 // them unless we have a cookie that says to show them.