9712d169522107c5e14e363596451e1549a913b1
[platform/upstream/libxml2.git] / python / libxml2.py
1 import libxml2mod
2 import types
3 import sys
4
5 # The root of all libxml2 errors.
6 class libxmlError(Exception): pass
7
8 # Type of the wrapper class for the C objects wrappers
9 def checkWrapper(obj):
10     try:
11         n = type(_obj).__name__
12         if n != 'PyCObject' and n != 'PyCapsule':
13             return 1
14     except:
15         return 0
16     return 0
17
18 #
19 # id() is sometimes negative ...
20 #
21 def pos_id(o):
22     i = id(o)
23     if (i < 0):
24         return (sys.maxsize - i)
25     return i
26
27 #
28 # Errors raised by the wrappers when some tree handling failed.
29 #
30 class treeError(libxmlError):
31     def __init__(self, msg):
32         self.msg = msg
33     def __str__(self):
34         return self.msg
35
36 class parserError(libxmlError):
37     def __init__(self, msg):
38         self.msg = msg
39     def __str__(self):
40         return self.msg
41
42 class uriError(libxmlError):
43     def __init__(self, msg):
44         self.msg = msg
45     def __str__(self):
46         return self.msg
47
48 class xpathError(libxmlError):
49     def __init__(self, msg):
50         self.msg = msg
51     def __str__(self):
52         return self.msg
53
54 class ioWrapper:
55     def __init__(self, _obj):
56         self.__io = _obj
57         self._o = None
58
59     def io_close(self):
60         if self.__io == None:
61             return(-1)
62         self.__io.close()
63         self.__io = None
64         return(0)
65
66     def io_flush(self):
67         if self.__io == None:
68             return(-1)
69         self.__io.flush()
70         return(0)
71
72     def io_read(self, len = -1):
73         if self.__io == None:
74             return(-1)
75         try:
76             if len < 0:
77                 ret = self.__io.read()
78             else:
79                 ret = self.__io.read(len)
80         except Exception:
81             import sys
82             e = sys.exc_info()[1]
83             print("failed to read from Python:", type(e))
84             print("on IO:", self.__io)
85             self.__io == None
86             return(-1)
87
88         return(ret)
89
90     def io_write(self, str, len = -1):
91         if self.__io == None:
92             return(-1)
93         if len < 0:
94             return(self.__io.write(str))
95         return(self.__io.write(str, len))
96
97 class ioReadWrapper(ioWrapper):
98     def __init__(self, _obj, enc = ""):
99         ioWrapper.__init__(self, _obj)
100         self._o = libxml2mod.xmlCreateInputBuffer(self, enc)
101
102     def __del__(self):
103         print("__del__")
104         self.io_close()
105         if self._o != None:
106             libxml2mod.xmlFreeParserInputBuffer(self._o)
107         self._o = None
108
109     def close(self):
110         self.io_close()
111         if self._o != None:
112             libxml2mod.xmlFreeParserInputBuffer(self._o)
113         self._o = None
114
115 class ioWriteWrapper(ioWrapper):
116     def __init__(self, _obj, enc = ""):
117 #        print "ioWriteWrapper.__init__", _obj
118         if type(_obj) == type(''):
119             print("write io from a string")
120             self.o = None
121         elif type(_obj).__name__ == 'PyCapsule':
122             file = libxml2mod.outputBufferGetPythonFile(_obj)
123             if file != None:
124                 ioWrapper.__init__(self, file)
125             else:
126                 ioWrapper.__init__(self, _obj)
127             self._o = _obj
128 #        elif type(_obj) == types.InstanceType:
129 #            print(("write io from instance of %s" % (_obj.__class__)))
130 #            ioWrapper.__init__(self, _obj)
131 #            self._o = libxml2mod.xmlCreateOutputBuffer(self, enc)
132         else:
133             file = libxml2mod.outputBufferGetPythonFile(_obj)
134             if file != None:
135                 ioWrapper.__init__(self, file)
136             else:
137                 ioWrapper.__init__(self, _obj)
138             self._o = _obj
139
140     def __del__(self):
141 #        print "__del__"
142         self.io_close()
143         if self._o != None:
144             libxml2mod.xmlOutputBufferClose(self._o)
145         self._o = None
146
147     def flush(self):
148         self.io_flush()
149         if self._o != None:
150             libxml2mod.xmlOutputBufferClose(self._o)
151         self._o = None
152
153     def close(self):
154         self.io_flush()
155         if self._o != None:
156             libxml2mod.xmlOutputBufferClose(self._o)
157         self._o = None
158
159 #
160 # Example of a class to handle SAX events
161 #
162 class SAXCallback:
163     """Base class for SAX handlers"""
164     def startDocument(self):
165         """called at the start of the document"""
166         pass
167
168     def endDocument(self):
169         """called at the end of the document"""
170         pass
171
172     def startElement(self, tag, attrs):
173         """called at the start of every element, tag is the name of
174            the element, attrs is a dictionary of the element's attributes"""
175         pass
176
177     def endElement(self, tag):
178         """called at the start of every element, tag is the name of
179            the element"""
180         pass
181
182     def characters(self, data):
183         """called when character data have been read, data is the string
184            containing the data, multiple consecutive characters() callback
185            are possible."""
186         pass
187
188     def cdataBlock(self, data):
189         """called when CDATA section have been read, data is the string
190            containing the data, multiple consecutive cdataBlock() callback
191            are possible."""
192         pass
193
194     def reference(self, name):
195         """called when an entity reference has been found"""
196         pass
197
198     def ignorableWhitespace(self, data):
199         """called when potentially ignorable white spaces have been found"""
200         pass
201
202     def processingInstruction(self, target, data):
203         """called when a PI has been found, target contains the PI name and
204            data is the associated data in the PI"""
205         pass
206
207     def comment(self, content):
208         """called when a comment has been found, content contains the comment"""
209         pass
210
211     def externalSubset(self, name, externalID, systemID):
212         """called when a DOCTYPE declaration has been found, name is the
213            DTD name and externalID, systemID are the DTD public and system
214            identifier for that DTd if available"""
215         pass
216
217     def internalSubset(self, name, externalID, systemID):
218         """called when a DOCTYPE declaration has been found, name is the
219            DTD name and externalID, systemID are the DTD public and system
220            identifier for that DTD if available"""
221         pass
222
223     def entityDecl(self, name, type, externalID, systemID, content):
224         """called when an ENTITY declaration has been found, name is the
225            entity name and externalID, systemID are the entity public and
226            system identifier for that entity if available, type indicates
227            the entity type, and content reports it's string content"""
228         pass
229
230     def notationDecl(self, name, externalID, systemID):
231         """called when an NOTATION declaration has been found, name is the
232            notation name and externalID, systemID are the notation public and
233            system identifier for that notation if available"""
234         pass
235
236     def attributeDecl(self, elem, name, type, defi, defaultValue, nameList):
237         """called when an ATTRIBUTE definition has been found"""
238         pass
239
240     def elementDecl(self, name, type, content):
241         """called when an ELEMENT definition has been found"""
242         pass
243
244     def entityDecl(self, name, publicId, systemID, notationName):
245         """called when an unparsed ENTITY declaration has been found,
246            name is the entity name and publicId,, systemID are the entity
247            public and system identifier for that entity if available,
248            and notationName indicate the associated NOTATION"""
249         pass
250
251     def warning(self, msg):
252         #print msg
253         pass
254
255     def error(self, msg):
256         raise parserError(msg)
257
258     def fatalError(self, msg):
259         raise parserError(msg)
260
261 #
262 # This class is the ancestor of all the Node classes. It provides
263 # the basic functionalities shared by all nodes (and handle
264 # gracefylly the exception), like name, navigation in the tree,
265 # doc reference, content access and serializing to a string or URI
266 #
267 class xmlCore:
268     def __init__(self, _obj=None):
269         if _obj != None: 
270             self._o = _obj;
271             return
272         self._o = None
273
274     def __eq__(self, other):
275         if other == None:
276             return False
277         ret = libxml2mod.compareNodesEqual(self._o, other._o)
278         if ret == None:
279             return False
280         return ret == True
281     def __ne__(self, other):
282         if other == None:
283             return True
284         ret = libxml2mod.compareNodesEqual(self._o, other._o)
285         return not ret
286     def __hash__(self):
287         ret = libxml2mod.nodeHash(self._o)
288         return ret
289
290     def __str__(self):
291         return self.serialize()
292     def get_parent(self):
293         ret = libxml2mod.parent(self._o)
294         if ret == None:
295             return None
296         return nodeWrap(ret)
297     def get_children(self):
298         ret = libxml2mod.children(self._o)
299         if ret == None:
300             return None
301         return nodeWrap(ret)
302     def get_last(self):
303         ret = libxml2mod.last(self._o)
304         if ret == None:
305             return None
306         return nodeWrap(ret)
307     def get_next(self):
308         ret = libxml2mod.next(self._o)
309         if ret == None:
310             return None
311         return nodeWrap(ret)
312     def get_properties(self):
313         ret = libxml2mod.properties(self._o)
314         if ret == None:
315             return None
316         return xmlAttr(_obj=ret)
317     def get_prev(self):
318         ret = libxml2mod.prev(self._o)
319         if ret == None:
320             return None
321         return nodeWrap(ret)
322     def get_content(self):
323         return libxml2mod.xmlNodeGetContent(self._o)
324     getContent = get_content  # why is this duplicate naming needed ?
325     def get_name(self):
326         return libxml2mod.name(self._o)
327     def get_type(self):
328         return libxml2mod.type(self._o)
329     def get_doc(self):
330         ret = libxml2mod.doc(self._o)
331         if ret == None:
332             if self.type in ["document_xml", "document_html"]:
333                 return xmlDoc(_obj=self._o)
334             else:
335                 return None
336         return xmlDoc(_obj=ret)
337     #
338     # Those are common attributes to nearly all type of nodes
339     # defined as python2 properties
340     # 
341     import sys
342     if float(sys.version[0:3]) < 2.2:
343         def __getattr__(self, attr):
344             if attr == "parent":
345                 ret = libxml2mod.parent(self._o)
346                 if ret == None:
347                     return None
348                 return nodeWrap(ret)
349             elif attr == "properties":
350                 ret = libxml2mod.properties(self._o)
351                 if ret == None:
352                     return None
353                 return xmlAttr(_obj=ret)
354             elif attr == "children":
355                 ret = libxml2mod.children(self._o)
356                 if ret == None:
357                     return None
358                 return nodeWrap(ret)
359             elif attr == "last":
360                 ret = libxml2mod.last(self._o)
361                 if ret == None:
362                     return None
363                 return nodeWrap(ret)
364             elif attr == "next":
365                 ret = libxml2mod.next(self._o)
366                 if ret == None:
367                     return None
368                 return nodeWrap(ret)
369             elif attr == "prev":
370                 ret = libxml2mod.prev(self._o)
371                 if ret == None:
372                     return None
373                 return nodeWrap(ret)
374             elif attr == "content":
375                 return libxml2mod.xmlNodeGetContent(self._o)
376             elif attr == "name":
377                 return libxml2mod.name(self._o)
378             elif attr == "type":
379                 return libxml2mod.type(self._o)
380             elif attr == "doc":
381                 ret = libxml2mod.doc(self._o)
382                 if ret == None:
383                     if self.type == "document_xml" or self.type == "document_html":
384                         return xmlDoc(_obj=self._o)
385                     else:
386                         return None
387                 return xmlDoc(_obj=ret)
388             raise AttributeError(attr)
389     else:
390         parent = property(get_parent, None, None, "Parent node")
391         children = property(get_children, None, None, "First child node")
392         last = property(get_last, None, None, "Last sibling node")
393         next = property(get_next, None, None, "Next sibling node")
394         prev = property(get_prev, None, None, "Previous sibling node")
395         properties = property(get_properties, None, None, "List of properies")
396         content = property(get_content, None, None, "Content of this node")
397         name = property(get_name, None, None, "Node name")
398         type = property(get_type, None, None, "Node type")
399         doc = property(get_doc, None, None, "The document this node belongs to")
400
401     #
402     # Serialization routines, the optional arguments have the following
403     # meaning:
404     #     encoding: string to ask saving in a specific encoding
405     #     indent: if 1 the serializer is asked to indent the output
406     #
407     def serialize(self, encoding = None, format = 0):
408         return libxml2mod.serializeNode(self._o, encoding, format)
409     def saveTo(self, file, encoding = None, format = 0):
410         return libxml2mod.saveNodeTo(self._o, file, encoding, format)
411             
412     #
413     # Canonicalization routines:
414     #
415     #   nodes: the node set (tuple or list) to be included in the
416     #     canonized image or None if all document nodes should be
417     #     included.
418     #   exclusive: the exclusive flag (0 - non-exclusive
419     #     canonicalization; otherwise - exclusive canonicalization)
420     #   prefixes: the list of inclusive namespace prefixes (strings),
421     #     or None if there is no inclusive namespaces (only for
422     #     exclusive canonicalization, ignored otherwise)
423     #   with_comments: include comments in the result (!=0) or not
424     #     (==0)
425     def c14nMemory(self,
426                    nodes=None,
427                    exclusive=0,
428                    prefixes=None,
429                    with_comments=0):
430         if nodes:
431             nodes = [n._o for n in nodes]
432         return libxml2mod.xmlC14NDocDumpMemory(
433             self.get_doc()._o,
434             nodes,
435             exclusive != 0,
436             prefixes,
437             with_comments != 0)
438     def c14nSaveTo(self,
439                    file,
440                    nodes=None,
441                    exclusive=0,
442                    prefixes=None,
443                    with_comments=0):
444         if nodes:
445             nodes = [n._o for n in nodes]
446         return libxml2mod.xmlC14NDocSaveTo(
447             self.get_doc()._o,
448             nodes,
449             exclusive != 0,
450             prefixes,
451             with_comments != 0,
452             file)
453
454     #
455     # Selecting nodes using XPath, a bit slow because the context
456     # is allocated/freed every time but convenient.
457     #
458     def xpathEval(self, expr):
459         doc = self.doc
460         if doc == None:
461             return None
462         ctxt = doc.xpathNewContext()
463         ctxt.setContextNode(self)
464         res = ctxt.xpathEval(expr)
465         ctxt.xpathFreeContext()
466         return res
467
468 #    #
469 #    # Selecting nodes using XPath, faster because the context
470 #    # is allocated just once per xmlDoc.
471 #    #
472 #    # Removed: DV memleaks c.f. #126735
473 #    #
474 #    def xpathEval2(self, expr):
475 #        doc = self.doc
476 #        if doc == None:
477 #            return None
478 #        try:
479 #            doc._ctxt.setContextNode(self)
480 #        except:
481 #            doc._ctxt = doc.xpathNewContext()
482 #            doc._ctxt.setContextNode(self)
483 #        res = doc._ctxt.xpathEval(expr)
484 #        return res
485     def xpathEval2(self, expr):
486         return self.xpathEval(expr)
487
488     # Remove namespaces
489     def removeNsDef(self, href):
490         """
491         Remove a namespace definition from a node.  If href is None,
492         remove all of the ns definitions on that node.  The removed
493         namespaces are returned as a linked list.
494
495         Note: If any child nodes referred to the removed namespaces,
496         they will be left with dangling links.  You should call
497         renconciliateNs() to fix those pointers.
498
499         Note: This method does not free memory taken by the ns
500         definitions.  You will need to free it manually with the
501         freeNsList() method on the returns xmlNs object.
502         """
503
504         ret = libxml2mod.xmlNodeRemoveNsDef(self._o, href)
505         if ret is None:return None
506         __tmp = xmlNs(_obj=ret)
507         return __tmp
508
509     # support for python2 iterators
510     def walk_depth_first(self):
511         return xmlCoreDepthFirstItertor(self)
512     def walk_breadth_first(self):
513         return xmlCoreBreadthFirstItertor(self)
514     __iter__ = walk_depth_first
515
516     def free(self):
517         try:
518             self.doc._ctxt.xpathFreeContext()
519         except:
520             pass
521         libxml2mod.xmlFreeDoc(self._o)
522
523
524 #
525 # implements the depth-first iterator for libxml2 DOM tree
526 #
527 class xmlCoreDepthFirstItertor:
528     def __init__(self, node):
529         self.node = node
530         self.parents = []
531     def __iter__(self):
532         return self
533     def next(self):
534         while 1:
535             if self.node:
536                 ret = self.node
537                 self.parents.append(self.node)
538                 self.node = self.node.children
539                 return ret
540             try:
541                 parent = self.parents.pop()
542             except IndexError:
543                 raise StopIteration
544             self.node = parent.next
545
546 #
547 # implements the breadth-first iterator for libxml2 DOM tree
548 #
549 class xmlCoreBreadthFirstItertor:
550     def __init__(self, node):
551         self.node = node
552         self.parents = []
553     def __iter__(self):
554         return self
555     def next(self):
556         while 1:
557             if self.node:
558                 ret = self.node
559                 self.parents.append(self.node)
560                 self.node = self.node.next
561                 return ret
562             try:
563                 parent = self.parents.pop()
564             except IndexError:
565                 raise StopIteration
566             self.node = parent.children
567
568 #
569 # converters to present a nicer view of the XPath returns
570 #
571 def nodeWrap(o):
572     # TODO try to cast to the most appropriate node class
573     name = libxml2mod.type(o)
574     if name == "element" or name == "text":
575         return xmlNode(_obj=o)
576     if name == "attribute":
577         return xmlAttr(_obj=o)
578     if name[0:8] == "document":
579         return xmlDoc(_obj=o)
580     if name == "namespace":
581         return xmlNs(_obj=o)
582     if name == "elem_decl":
583         return xmlElement(_obj=o)
584     if name == "attribute_decl":
585         return xmlAttribute(_obj=o)
586     if name == "entity_decl":
587         return xmlEntity(_obj=o)
588     if name == "dtd":
589         return xmlDtd(_obj=o)
590     return xmlNode(_obj=o)
591
592 def xpathObjectRet(o):
593     otype = type(o)
594     if otype == type([]):
595         ret = list(map(xpathObjectRet, o))
596         return ret
597     elif otype == type(()):
598         ret = list(map(xpathObjectRet, o))
599         return tuple(ret)
600     elif otype == type('') or otype == type(0) or otype == type(0.0):
601         return o
602     else:
603         return nodeWrap(o)
604
605 #
606 # register an XPath function
607 #
608 def registerXPathFunction(ctxt, name, ns_uri, f):
609     ret = libxml2mod.xmlRegisterXPathFunction(ctxt, name, ns_uri, f)
610
611 #
612 # For the xmlTextReader parser configuration
613 #
614 PARSER_LOADDTD=1
615 PARSER_DEFAULTATTRS=2
616 PARSER_VALIDATE=3
617 PARSER_SUBST_ENTITIES=4
618
619 #
620 # For the error callback severities
621 #
622 PARSER_SEVERITY_VALIDITY_WARNING=1
623 PARSER_SEVERITY_VALIDITY_ERROR=2
624 PARSER_SEVERITY_WARNING=3
625 PARSER_SEVERITY_ERROR=4
626
627 #
628 # register the libxml2 error handler
629 #
630 def registerErrorHandler(f, ctx):
631     """Register a Python written function to for error reporting.
632        The function is called back as f(ctx, error). """
633     import sys
634     if 'libxslt' not in sys.modules:
635         # normal behaviour when libxslt is not imported
636         ret = libxml2mod.xmlRegisterErrorHandler(f,ctx)
637     else:
638         # when libxslt is already imported, one must
639         # use libxst's error handler instead
640         import libxslt
641         ret = libxslt.registerErrorHandler(f,ctx)
642     return ret
643
644 class parserCtxtCore:
645
646     def __init__(self, _obj=None):
647         if _obj != None: 
648             self._o = _obj;
649             return
650         self._o = None
651
652     def __del__(self):
653         if self._o != None:
654             libxml2mod.xmlFreeParserCtxt(self._o)
655         self._o = None
656
657     def setErrorHandler(self,f,arg):
658         """Register an error handler that will be called back as
659            f(arg,msg,severity,reserved).
660            
661            @reserved is currently always None."""
662         libxml2mod.xmlParserCtxtSetErrorHandler(self._o,f,arg)
663
664     def getErrorHandler(self):
665         """Return (f,arg) as previously registered with setErrorHandler
666            or (None,None)."""
667         return libxml2mod.xmlParserCtxtGetErrorHandler(self._o)
668
669     def addLocalCatalog(self, uri):
670         """Register a local catalog with the parser"""
671         return libxml2mod.addLocalCatalog(self._o, uri)
672     
673
674 class ValidCtxtCore:
675
676     def __init__(self, *args, **kw):
677         pass
678
679     def setValidityErrorHandler(self, err_func, warn_func, arg=None):
680         """
681         Register error and warning handlers for DTD validation.
682         These will be called back as f(msg,arg)
683         """
684         libxml2mod.xmlSetValidErrors(self._o, err_func, warn_func, arg)
685     
686
687 class SchemaValidCtxtCore:
688
689     def __init__(self, *args, **kw):
690         pass
691
692     def setValidityErrorHandler(self, err_func, warn_func, arg=None):
693         """
694         Register error and warning handlers for Schema validation.
695         These will be called back as f(msg,arg)
696         """
697         libxml2mod.xmlSchemaSetValidErrors(self._o, err_func, warn_func, arg)
698
699
700 class relaxNgValidCtxtCore:
701
702     def __init__(self, *args, **kw):
703         pass
704
705     def setValidityErrorHandler(self, err_func, warn_func, arg=None):
706         """
707         Register error and warning handlers for RelaxNG validation.
708         These will be called back as f(msg,arg)
709         """
710         libxml2mod.xmlRelaxNGSetValidErrors(self._o, err_func, warn_func, arg)
711
712     
713 def _xmlTextReaderErrorFunc(xxx_todo_changeme,msg,severity,locator):
714     """Intermediate callback to wrap the locator"""
715     (f,arg) = xxx_todo_changeme
716     return f(arg,msg,severity,xmlTextReaderLocator(locator))
717
718 class xmlTextReaderCore:
719
720     def __init__(self, _obj=None):
721         self.input = None
722         if _obj != None:self._o = _obj;return
723         self._o = None
724
725     def __del__(self):
726         if self._o != None:
727             libxml2mod.xmlFreeTextReader(self._o)
728         self._o = None
729
730     def SetErrorHandler(self,f,arg):
731         """Register an error handler that will be called back as
732            f(arg,msg,severity,locator)."""
733         if f is None:
734             libxml2mod.xmlTextReaderSetErrorHandler(\
735                 self._o,None,None)
736         else:
737             libxml2mod.xmlTextReaderSetErrorHandler(\
738                 self._o,_xmlTextReaderErrorFunc,(f,arg))
739
740     def GetErrorHandler(self):
741         """Return (f,arg) as previously registered with setErrorHandler
742            or (None,None)."""
743         f,arg = libxml2mod.xmlTextReaderGetErrorHandler(self._o)
744         if f is None:
745             return None,None
746         else:
747             # assert f is _xmlTextReaderErrorFunc
748             return arg
749
750 #
751 # The cleanup now goes though a wrapper in libxml.c
752 #
753 def cleanupParser():
754     libxml2mod.xmlPythonCleanupParser()
755
756 #
757 # The interface to xmlRegisterInputCallbacks.
758 # Since this API does not allow to pass a data object along with
759 # match/open callbacks, it is necessary to maintain a list of all
760 # Python callbacks.
761 #
762 __input_callbacks = []
763 def registerInputCallback(func):
764     def findOpenCallback(URI):
765         for cb in reversed(__input_callbacks):
766             o = cb(URI)
767             if o is not None:
768                 return o
769     libxml2mod.xmlRegisterInputCallback(findOpenCallback)
770     __input_callbacks.append(func)
771
772 def popInputCallbacks():
773     # First pop python-level callbacks, when no more available - start
774     # popping built-in ones.
775     if len(__input_callbacks) > 0:
776         __input_callbacks.pop()
777     if len(__input_callbacks) == 0:
778         libxml2mod.xmlUnregisterInputCallback()
779
780 # WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
781 #
782 # Everything before this line comes from libxml.py 
783 # Everything after this line is automatically generated
784 #
785 # WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
786
787 #
788 # Functions from module HTMLparser
789 #
790
791 def htmlCreateMemoryParserCtxt(buffer, size):
792     """Create a parser context for an HTML in-memory document. """
793     ret = libxml2mod.htmlCreateMemoryParserCtxt(buffer, size)
794     if ret is None:raise parserError('htmlCreateMemoryParserCtxt() failed')
795     return parserCtxt(_obj=ret)
796
797 def htmlHandleOmittedElem(val):
798     """Set and return the previous value for handling HTML omitted
799        tags. """
800     ret = libxml2mod.htmlHandleOmittedElem(val)
801     return ret
802
803 def htmlIsScriptAttribute(name):
804     """Check if an attribute is of content type Script """
805     ret = libxml2mod.htmlIsScriptAttribute(name)
806     return ret
807
808 def htmlNewParserCtxt():
809     """Allocate and initialize a new parser context. """
810     ret = libxml2mod.htmlNewParserCtxt()
811     if ret is None:raise parserError('htmlNewParserCtxt() failed')
812     return parserCtxt(_obj=ret)
813
814 def htmlParseDoc(cur, encoding):
815     """parse an HTML in-memory document and build a tree. """
816     ret = libxml2mod.htmlParseDoc(cur, encoding)
817     if ret is None:raise parserError('htmlParseDoc() failed')
818     return xmlDoc(_obj=ret)
819
820 def htmlParseFile(filename, encoding):
821     """parse an HTML file and build a tree. Automatic support for
822       ZLIB/Compress compressed document is provided by default if
823        found at compile-time. """
824     ret = libxml2mod.htmlParseFile(filename, encoding)
825     if ret is None:raise parserError('htmlParseFile() failed')
826     return xmlDoc(_obj=ret)
827
828 def htmlReadDoc(cur, URL, encoding, options):
829     """parse an XML in-memory document and build a tree. """
830     ret = libxml2mod.htmlReadDoc(cur, URL, encoding, options)
831     if ret is None:raise treeError('htmlReadDoc() failed')
832     return xmlDoc(_obj=ret)
833
834 def htmlReadFd(fd, URL, encoding, options):
835     """parse an XML from a file descriptor and build a tree. """
836     ret = libxml2mod.htmlReadFd(fd, URL, encoding, options)
837     if ret is None:raise treeError('htmlReadFd() failed')
838     return xmlDoc(_obj=ret)
839
840 def htmlReadFile(filename, encoding, options):
841     """parse an XML file from the filesystem or the network. """
842     ret = libxml2mod.htmlReadFile(filename, encoding, options)
843     if ret is None:raise treeError('htmlReadFile() failed')
844     return xmlDoc(_obj=ret)
845
846 def htmlReadMemory(buffer, size, URL, encoding, options):
847     """parse an XML in-memory document and build a tree. """
848     ret = libxml2mod.htmlReadMemory(buffer, size, URL, encoding, options)
849     if ret is None:raise treeError('htmlReadMemory() failed')
850     return xmlDoc(_obj=ret)
851
852 #
853 # Functions from module HTMLtree
854 #
855
856 def htmlIsBooleanAttr(name):
857     """Determine if a given attribute is a boolean attribute. """
858     ret = libxml2mod.htmlIsBooleanAttr(name)
859     return ret
860
861 def htmlNewDoc(URI, ExternalID):
862     """Creates a new HTML document """
863     ret = libxml2mod.htmlNewDoc(URI, ExternalID)
864     if ret is None:raise treeError('htmlNewDoc() failed')
865     return xmlDoc(_obj=ret)
866
867 def htmlNewDocNoDtD(URI, ExternalID):
868     """Creates a new HTML document without a DTD node if @URI and
869        @ExternalID are None """
870     ret = libxml2mod.htmlNewDocNoDtD(URI, ExternalID)
871     if ret is None:raise treeError('htmlNewDocNoDtD() failed')
872     return xmlDoc(_obj=ret)
873
874 #
875 # Functions from module SAX2
876 #
877
878 def SAXDefaultVersion(version):
879     """Set the default version of SAX used globally by the
880       library. By default, during initialization the default is
881       set to 2. Note that it is generally a better coding style
882       to use xmlSAXVersion() to set up the version explicitly for
883        a given parsing context. """
884     ret = libxml2mod.xmlSAXDefaultVersion(version)
885     return ret
886
887 def defaultSAXHandlerInit():
888     """Initialize the default SAX2 handler """
889     libxml2mod.xmlDefaultSAXHandlerInit()
890
891 def docbDefaultSAXHandlerInit():
892     """Initialize the default SAX handler """
893     libxml2mod.docbDefaultSAXHandlerInit()
894
895 def htmlDefaultSAXHandlerInit():
896     """Initialize the default SAX handler """
897     libxml2mod.htmlDefaultSAXHandlerInit()
898
899 #
900 # Functions from module catalog
901 #
902
903 def catalogAdd(type, orig, replace):
904     """Add an entry in the catalog, it may overwrite existing but
905       different entries. If called before any other catalog
906       routine, allows to override the default shared catalog put
907        in place by xmlInitializeCatalog(); """
908     ret = libxml2mod.xmlCatalogAdd(type, orig, replace)
909     return ret
910
911 def catalogCleanup():
912     """Free up all the memory associated with catalogs """
913     libxml2mod.xmlCatalogCleanup()
914
915 def catalogConvert():
916     """Convert all the SGML catalog entries as XML ones """
917     ret = libxml2mod.xmlCatalogConvert()
918     return ret
919
920 def catalogDump(out):
921     """Dump all the global catalog content to the given file. """
922     if out is not None: out.flush()
923     libxml2mod.xmlCatalogDump(out)
924
925 def catalogGetPublic(pubID):
926     """Try to lookup the catalog reference associated to a public
927        ID DEPRECATED, use xmlCatalogResolvePublic() """
928     ret = libxml2mod.xmlCatalogGetPublic(pubID)
929     return ret
930
931 def catalogGetSystem(sysID):
932     """Try to lookup the catalog reference associated to a system
933        ID DEPRECATED, use xmlCatalogResolveSystem() """
934     ret = libxml2mod.xmlCatalogGetSystem(sysID)
935     return ret
936
937 def catalogRemove(value):
938     """Remove an entry from the catalog """
939     ret = libxml2mod.xmlCatalogRemove(value)
940     return ret
941
942 def catalogResolve(pubID, sysID):
943     """Do a complete resolution lookup of an External Identifier """
944     ret = libxml2mod.xmlCatalogResolve(pubID, sysID)
945     return ret
946
947 def catalogResolvePublic(pubID):
948     """Try to lookup the catalog reference associated to a public
949        ID """
950     ret = libxml2mod.xmlCatalogResolvePublic(pubID)
951     return ret
952
953 def catalogResolveSystem(sysID):
954     """Try to lookup the catalog resource for a system ID """
955     ret = libxml2mod.xmlCatalogResolveSystem(sysID)
956     return ret
957
958 def catalogResolveURI(URI):
959     """Do a complete resolution lookup of an URI """
960     ret = libxml2mod.xmlCatalogResolveURI(URI)
961     return ret
962
963 def catalogSetDebug(level):
964     """Used to set the debug level for catalog operation, 0
965        disable debugging, 1 enable it """
966     ret = libxml2mod.xmlCatalogSetDebug(level)
967     return ret
968
969 def initializeCatalog():
970     """Do the catalog initialization. this function is not thread
971       safe, catalog initialization should preferably be done once
972        at startup """
973     libxml2mod.xmlInitializeCatalog()
974
975 def loadACatalog(filename):
976     """Load the catalog and build the associated data structures.
977       This can be either an XML Catalog or an SGML Catalog It
978       will recurse in SGML CATALOG entries. On the other hand XML
979        Catalogs are not handled recursively. """
980     ret = libxml2mod.xmlLoadACatalog(filename)
981     if ret is None:raise treeError('xmlLoadACatalog() failed')
982     return catalog(_obj=ret)
983
984 def loadCatalog(filename):
985     """Load the catalog and makes its definitions effective for
986       the default external entity loader. It will recurse in SGML
987       CATALOG entries. this function is not thread safe, catalog
988        initialization should preferably be done once at startup """
989     ret = libxml2mod.xmlLoadCatalog(filename)
990     return ret
991
992 def loadCatalogs(pathss):
993     """Load the catalogs and makes their definitions effective for
994       the default external entity loader. this function is not
995       thread safe, catalog initialization should preferably be
996        done once at startup """
997     libxml2mod.xmlLoadCatalogs(pathss)
998
999 def loadSGMLSuperCatalog(filename):
1000     """Load an SGML super catalog. It won't expand CATALOG or
1001       DELEGATE references. This is only needed for manipulating
1002       SGML Super Catalogs like adding and removing CATALOG or
1003        DELEGATE entries. """
1004     ret = libxml2mod.xmlLoadSGMLSuperCatalog(filename)
1005     if ret is None:raise treeError('xmlLoadSGMLSuperCatalog() failed')
1006     return catalog(_obj=ret)
1007
1008 def newCatalog(sgml):
1009     """create a new Catalog. """
1010     ret = libxml2mod.xmlNewCatalog(sgml)
1011     if ret is None:raise treeError('xmlNewCatalog() failed')
1012     return catalog(_obj=ret)
1013
1014 def parseCatalogFile(filename):
1015     """parse an XML file and build a tree. It's like
1016        xmlParseFile() except it bypass all catalog lookups. """
1017     ret = libxml2mod.xmlParseCatalogFile(filename)
1018     if ret is None:raise parserError('xmlParseCatalogFile() failed')
1019     return xmlDoc(_obj=ret)
1020
1021 #
1022 # Functions from module chvalid
1023 #
1024
1025 def isBaseChar(ch):
1026     """This function is DEPRECATED. Use xmlIsBaseChar_ch or
1027        xmlIsBaseCharQ instead """
1028     ret = libxml2mod.xmlIsBaseChar(ch)
1029     return ret
1030
1031 def isBlank(ch):
1032     """This function is DEPRECATED. Use xmlIsBlank_ch or
1033        xmlIsBlankQ instead """
1034     ret = libxml2mod.xmlIsBlank(ch)
1035     return ret
1036
1037 def isChar(ch):
1038     """This function is DEPRECATED. Use xmlIsChar_ch or xmlIsCharQ
1039        instead """
1040     ret = libxml2mod.xmlIsChar(ch)
1041     return ret
1042
1043 def isCombining(ch):
1044     """This function is DEPRECATED. Use xmlIsCombiningQ instead """
1045     ret = libxml2mod.xmlIsCombining(ch)
1046     return ret
1047
1048 def isDigit(ch):
1049     """This function is DEPRECATED. Use xmlIsDigit_ch or
1050        xmlIsDigitQ instead """
1051     ret = libxml2mod.xmlIsDigit(ch)
1052     return ret
1053
1054 def isExtender(ch):
1055     """This function is DEPRECATED. Use xmlIsExtender_ch or
1056        xmlIsExtenderQ instead """
1057     ret = libxml2mod.xmlIsExtender(ch)
1058     return ret
1059
1060 def isIdeographic(ch):
1061     """This function is DEPRECATED. Use xmlIsIdeographicQ instead """
1062     ret = libxml2mod.xmlIsIdeographic(ch)
1063     return ret
1064
1065 def isPubidChar(ch):
1066     """This function is DEPRECATED. Use xmlIsPubidChar_ch or
1067        xmlIsPubidCharQ instead """
1068     ret = libxml2mod.xmlIsPubidChar(ch)
1069     return ret
1070
1071 #
1072 # Functions from module debugXML
1073 #
1074
1075 def boolToText(boolval):
1076     """Convenient way to turn bool into text """
1077     ret = libxml2mod.xmlBoolToText(boolval)
1078     return ret
1079
1080 def debugDumpString(output, str):
1081     """Dumps informations about the string, shorten it if necessary """
1082     if output is not None: output.flush()
1083     libxml2mod.xmlDebugDumpString(output, str)
1084
1085 def shellPrintXPathError(errorType, arg):
1086     """Print the xpath error to libxml default error channel """
1087     libxml2mod.xmlShellPrintXPathError(errorType, arg)
1088
1089 #
1090 # Functions from module dict
1091 #
1092
1093 def dictCleanup():
1094     """Free the dictionary mutex. Do not call unless sure the
1095        library is not in use anymore ! """
1096     libxml2mod.xmlDictCleanup()
1097
1098 def initializeDict():
1099     """Do the dictionary mutex initialization. this function is
1100        deprecated """
1101     ret = libxml2mod.xmlInitializeDict()
1102     return ret
1103
1104 #
1105 # Functions from module encoding
1106 #
1107
1108 def addEncodingAlias(name, alias):
1109     """Registers an alias @alias for an encoding named @name.
1110        Existing alias will be overwritten. """
1111     ret = libxml2mod.xmlAddEncodingAlias(name, alias)
1112     return ret
1113
1114 def cleanupCharEncodingHandlers():
1115     """Cleanup the memory allocated for the char encoding support,
1116        it unregisters all the encoding handlers and the aliases. """
1117     libxml2mod.xmlCleanupCharEncodingHandlers()
1118
1119 def cleanupEncodingAliases():
1120     """Unregisters all aliases """
1121     libxml2mod.xmlCleanupEncodingAliases()
1122
1123 def delEncodingAlias(alias):
1124     """Unregisters an encoding alias @alias """
1125     ret = libxml2mod.xmlDelEncodingAlias(alias)
1126     return ret
1127
1128 def encodingAlias(alias):
1129     """Lookup an encoding name for the given alias. """
1130     ret = libxml2mod.xmlGetEncodingAlias(alias)
1131     return ret
1132
1133 def initCharEncodingHandlers():
1134     """Initialize the char encoding support, it registers the
1135       default encoding supported. NOTE: while public, this
1136       function usually doesn't need to be called in normal
1137        processing. """
1138     libxml2mod.xmlInitCharEncodingHandlers()
1139
1140 #
1141 # Functions from module entities
1142 #
1143
1144 def cleanupPredefinedEntities():
1145     """Cleanup up the predefined entities table. Deprecated call """
1146     libxml2mod.xmlCleanupPredefinedEntities()
1147
1148 def initializePredefinedEntities():
1149     """Set up the predefined entities. Deprecated call """
1150     libxml2mod.xmlInitializePredefinedEntities()
1151
1152 def predefinedEntity(name):
1153     """Check whether this name is an predefined entity. """
1154     ret = libxml2mod.xmlGetPredefinedEntity(name)
1155     if ret is None:raise treeError('xmlGetPredefinedEntity() failed')
1156     return xmlEntity(_obj=ret)
1157
1158 #
1159 # Functions from module globals
1160 #
1161
1162 def cleanupGlobals():
1163     """Additional cleanup for multi-threading """
1164     libxml2mod.xmlCleanupGlobals()
1165
1166 def initGlobals():
1167     """Additional initialisation for multi-threading """
1168     libxml2mod.xmlInitGlobals()
1169
1170 def thrDefDefaultBufferSize(v):
1171     ret = libxml2mod.xmlThrDefDefaultBufferSize(v)
1172     return ret
1173
1174 def thrDefDoValidityCheckingDefaultValue(v):
1175     ret = libxml2mod.xmlThrDefDoValidityCheckingDefaultValue(v)
1176     return ret
1177
1178 def thrDefGetWarningsDefaultValue(v):
1179     ret = libxml2mod.xmlThrDefGetWarningsDefaultValue(v)
1180     return ret
1181
1182 def thrDefIndentTreeOutput(v):
1183     ret = libxml2mod.xmlThrDefIndentTreeOutput(v)
1184     return ret
1185
1186 def thrDefKeepBlanksDefaultValue(v):
1187     ret = libxml2mod.xmlThrDefKeepBlanksDefaultValue(v)
1188     return ret
1189
1190 def thrDefLineNumbersDefaultValue(v):
1191     ret = libxml2mod.xmlThrDefLineNumbersDefaultValue(v)
1192     return ret
1193
1194 def thrDefLoadExtDtdDefaultValue(v):
1195     ret = libxml2mod.xmlThrDefLoadExtDtdDefaultValue(v)
1196     return ret
1197
1198 def thrDefParserDebugEntities(v):
1199     ret = libxml2mod.xmlThrDefParserDebugEntities(v)
1200     return ret
1201
1202 def thrDefPedanticParserDefaultValue(v):
1203     ret = libxml2mod.xmlThrDefPedanticParserDefaultValue(v)
1204     return ret
1205
1206 def thrDefSaveNoEmptyTags(v):
1207     ret = libxml2mod.xmlThrDefSaveNoEmptyTags(v)
1208     return ret
1209
1210 def thrDefSubstituteEntitiesDefaultValue(v):
1211     ret = libxml2mod.xmlThrDefSubstituteEntitiesDefaultValue(v)
1212     return ret
1213
1214 def thrDefTreeIndentString(v):
1215     ret = libxml2mod.xmlThrDefTreeIndentString(v)
1216     return ret
1217
1218 #
1219 # Functions from module nanoftp
1220 #
1221
1222 def nanoFTPCleanup():
1223     """Cleanup the FTP protocol layer. This cleanup proxy
1224        informations. """
1225     libxml2mod.xmlNanoFTPCleanup()
1226
1227 def nanoFTPInit():
1228     """Initialize the FTP protocol layer. Currently it just checks
1229        for proxy informations, and get the hostname """
1230     libxml2mod.xmlNanoFTPInit()
1231
1232 def nanoFTPProxy(host, port, user, passwd, type):
1233     """Setup the FTP proxy informations. This can also be done by
1234       using ftp_proxy ftp_proxy_user and ftp_proxy_password
1235        environment variables. """
1236     libxml2mod.xmlNanoFTPProxy(host, port, user, passwd, type)
1237
1238 def nanoFTPScanProxy(URL):
1239     """(Re)Initialize the FTP Proxy context by parsing the URL and
1240       finding the protocol host port it indicates. Should be like
1241       ftp://myproxy/ or ftp://myproxy:3128/ A None URL cleans up
1242        proxy informations. """
1243     libxml2mod.xmlNanoFTPScanProxy(URL)
1244
1245 #
1246 # Functions from module nanohttp
1247 #
1248
1249 def nanoHTTPCleanup():
1250     """Cleanup the HTTP protocol layer. """
1251     libxml2mod.xmlNanoHTTPCleanup()
1252
1253 def nanoHTTPInit():
1254     """Initialize the HTTP protocol layer. Currently it just
1255        checks for proxy informations """
1256     libxml2mod.xmlNanoHTTPInit()
1257
1258 def nanoHTTPScanProxy(URL):
1259     """(Re)Initialize the HTTP Proxy context by parsing the URL
1260       and finding the protocol host port it indicates. Should be
1261       like http://myproxy/ or http://myproxy:3128/ A None URL
1262        cleans up proxy informations. """
1263     libxml2mod.xmlNanoHTTPScanProxy(URL)
1264
1265 #
1266 # Functions from module parser
1267 #
1268
1269 def createDocParserCtxt(cur):
1270     """Creates a parser context for an XML in-memory document. """
1271     ret = libxml2mod.xmlCreateDocParserCtxt(cur)
1272     if ret is None:raise parserError('xmlCreateDocParserCtxt() failed')
1273     return parserCtxt(_obj=ret)
1274
1275 def initParser():
1276     """Initialization function for the XML parser. This is not
1277       reentrant. Call once before processing in case of use in
1278        multithreaded programs. """
1279     libxml2mod.xmlInitParser()
1280
1281 def keepBlanksDefault(val):
1282     """Set and return the previous value for default blanks text
1283       nodes support. The 1.x version of the parser used an
1284       heuristic to try to detect ignorable white spaces. As a
1285       result the SAX callback was generating
1286       xmlSAX2IgnorableWhitespace() callbacks instead of
1287       characters() one, and when using the DOM output text nodes
1288       containing those blanks were not generated. The 2.x and
1289       later version will switch to the XML standard way and
1290       ignorableWhitespace() are only generated when running the
1291       parser in validating mode and when the current element
1292       doesn't allow CDATA or mixed content. This function is
1293       provided as a way to force the standard behavior on 1.X
1294       libs and to switch back to the old mode for compatibility
1295       when running 1.X client code on 2.X . Upgrade of 1.X code
1296       should be done by using xmlIsBlankNode() commodity function
1297       to detect the "empty" nodes generated. This value also
1298       affect autogeneration of indentation when saving code if
1299        blanks sections are kept, indentation is not generated. """
1300     ret = libxml2mod.xmlKeepBlanksDefault(val)
1301     return ret
1302
1303 def lineNumbersDefault(val):
1304     """Set and return the previous value for enabling line numbers
1305       in elements contents. This may break on old application and
1306        is turned off by default. """
1307     ret = libxml2mod.xmlLineNumbersDefault(val)
1308     return ret
1309
1310 def newParserCtxt():
1311     """Allocate and initialize a new parser context. """
1312     ret = libxml2mod.xmlNewParserCtxt()
1313     if ret is None:raise parserError('xmlNewParserCtxt() failed')
1314     return parserCtxt(_obj=ret)
1315
1316 def parseDTD(ExternalID, SystemID):
1317     """Load and parse an external subset. """
1318     ret = libxml2mod.xmlParseDTD(ExternalID, SystemID)
1319     if ret is None:raise parserError('xmlParseDTD() failed')
1320     return xmlDtd(_obj=ret)
1321
1322 def parseDoc(cur):
1323     """parse an XML in-memory document and build a tree. """
1324     ret = libxml2mod.xmlParseDoc(cur)
1325     if ret is None:raise parserError('xmlParseDoc() failed')
1326     return xmlDoc(_obj=ret)
1327
1328 def parseEntity(filename):
1329     """parse an XML external entity out of context and build a
1330       tree.  [78] extParsedEnt ::= TextDecl? content  This
1331        correspond to a "Well Balanced" chunk """
1332     ret = libxml2mod.xmlParseEntity(filename)
1333     if ret is None:raise parserError('xmlParseEntity() failed')
1334     return xmlDoc(_obj=ret)
1335
1336 def parseFile(filename):
1337     """parse an XML file and build a tree. Automatic support for
1338       ZLIB/Compress compressed document is provided by default if
1339        found at compile-time. """
1340     ret = libxml2mod.xmlParseFile(filename)
1341     if ret is None:raise parserError('xmlParseFile() failed')
1342     return xmlDoc(_obj=ret)
1343
1344 def parseMemory(buffer, size):
1345     """parse an XML in-memory block and build a tree. """
1346     ret = libxml2mod.xmlParseMemory(buffer, size)
1347     if ret is None:raise parserError('xmlParseMemory() failed')
1348     return xmlDoc(_obj=ret)
1349
1350 def pedanticParserDefault(val):
1351     """Set and return the previous value for enabling pedantic
1352        warnings. """
1353     ret = libxml2mod.xmlPedanticParserDefault(val)
1354     return ret
1355
1356 def readDoc(cur, URL, encoding, options):
1357     """parse an XML in-memory document and build a tree. """
1358     ret = libxml2mod.xmlReadDoc(cur, URL, encoding, options)
1359     if ret is None:raise treeError('xmlReadDoc() failed')
1360     return xmlDoc(_obj=ret)
1361
1362 def readFd(fd, URL, encoding, options):
1363     """parse an XML from a file descriptor and build a tree. NOTE
1364       that the file descriptor will not be closed when the reader
1365        is closed or reset. """
1366     ret = libxml2mod.xmlReadFd(fd, URL, encoding, options)
1367     if ret is None:raise treeError('xmlReadFd() failed')
1368     return xmlDoc(_obj=ret)
1369
1370 def readFile(filename, encoding, options):
1371     """parse an XML file from the filesystem or the network. """
1372     ret = libxml2mod.xmlReadFile(filename, encoding, options)
1373     if ret is None:raise treeError('xmlReadFile() failed')
1374     return xmlDoc(_obj=ret)
1375
1376 def readMemory(buffer, size, URL, encoding, options):
1377     """parse an XML in-memory document and build a tree. """
1378     ret = libxml2mod.xmlReadMemory(buffer, size, URL, encoding, options)
1379     if ret is None:raise treeError('xmlReadMemory() failed')
1380     return xmlDoc(_obj=ret)
1381
1382 def recoverDoc(cur):
1383     """parse an XML in-memory document and build a tree. In the
1384       case the document is not Well Formed, a attempt to build a
1385        tree is tried anyway """
1386     ret = libxml2mod.xmlRecoverDoc(cur)
1387     if ret is None:raise treeError('xmlRecoverDoc() failed')
1388     return xmlDoc(_obj=ret)
1389
1390 def recoverFile(filename):
1391     """parse an XML file and build a tree. Automatic support for
1392       ZLIB/Compress compressed document is provided by default if
1393       found at compile-time. In the case the document is not Well
1394        Formed, it attempts to build a tree anyway """
1395     ret = libxml2mod.xmlRecoverFile(filename)
1396     if ret is None:raise treeError('xmlRecoverFile() failed')
1397     return xmlDoc(_obj=ret)
1398
1399 def recoverMemory(buffer, size):
1400     """parse an XML in-memory block and build a tree. In the case
1401       the document is not Well Formed, an attempt to build a tree
1402        is tried anyway """
1403     ret = libxml2mod.xmlRecoverMemory(buffer, size)
1404     if ret is None:raise treeError('xmlRecoverMemory() failed')
1405     return xmlDoc(_obj=ret)
1406
1407 def substituteEntitiesDefault(val):
1408     """Set and return the previous value for default entity
1409       support. Initially the parser always keep entity references
1410       instead of substituting entity values in the output. This
1411       function has to be used to change the default parser
1412       behavior SAX::substituteEntities() has to be used for
1413        changing that on a file by file basis. """
1414     ret = libxml2mod.xmlSubstituteEntitiesDefault(val)
1415     return ret
1416
1417 #
1418 # Functions from module parserInternals
1419 #
1420
1421 def checkLanguageID(lang):
1422     """Checks that the value conforms to the LanguageID
1423       production:  NOTE: this is somewhat deprecated, those
1424       productions were removed from the XML Second edition.  [33]
1425       LanguageID ::= Langcode ('-' Subcode)* [34] Langcode ::=
1426       ISO639Code |  IanaCode |  UserCode [35] ISO639Code ::=
1427       ([a-z] | [A-Z]) ([a-z] | [A-Z]) [36] IanaCode ::= ('i' |
1428       'I') '-' ([a-z] | [A-Z])+ [37] UserCode ::= ('x' | 'X') '-'
1429       ([a-z] | [A-Z])+ [38] Subcode ::= ([a-z] | [A-Z])+  The
1430       current REC reference the sucessors of RFC 1766, currently
1431       5646  http://www.rfc-editor.org/rfc/rfc5646.txt langtag    
1432       = language ["-" script] ["-" region] *("-" variant) *("-"
1433       extension) ["-" privateuse] language      = 2*3ALPHA       
1434       ; shortest ISO 639 code ["-" extlang]       ; sometimes
1435       followed by ; extended language subtags / 4ALPHA           
1436       ; or reserved for future use / 5*8ALPHA            ; or
1437       registered language subtag  extlang       = 3ALPHA         
1438       ; selected ISO 639 codes *2("-" 3ALPHA)      ; permanently
1439       reserved  script        = 4ALPHA              ; ISO 15924
1440       code  region        = 2ALPHA              ; ISO 3166-1 code
1441       / 3DIGIT              ; UN M.49 code  variant       =
1442       5*8alphanum         ; registered variants / (DIGIT
1443       3alphanum)  extension     = singleton 1*("-" (2*8alphanum))
1444       ; Single alphanumerics ; "x" reserved for private use
1445       singleton     = DIGIT               ; 0 - 9 / %x41-57      
1446       ; A - W / %x59-5A             ; Y - Z / %x61-77            
1447       ; a - w / %x79-7A             ; y - z  it sounds right to
1448       still allow Irregular i-xxx IANA and user codes too The
1449       parser below doesn't try to cope with extension or
1450       privateuse that could be added but that's not interoperable
1451        anyway """
1452     ret = libxml2mod.xmlCheckLanguageID(lang)
1453     return ret
1454
1455 def copyChar(len, out, val):
1456     """append the char value in the array """
1457     ret = libxml2mod.xmlCopyChar(len, out, val)
1458     return ret
1459
1460 def copyCharMultiByte(out, val):
1461     """append the char value in the array """
1462     ret = libxml2mod.xmlCopyCharMultiByte(out, val)
1463     return ret
1464
1465 def createEntityParserCtxt(URL, ID, base):
1466     """Create a parser context for an external entity Automatic
1467       support for ZLIB/Compress compressed document is provided
1468        by default if found at compile-time. """
1469     ret = libxml2mod.xmlCreateEntityParserCtxt(URL, ID, base)
1470     if ret is None:raise parserError('xmlCreateEntityParserCtxt() failed')
1471     return parserCtxt(_obj=ret)
1472
1473 def createFileParserCtxt(filename):
1474     """Create a parser context for a file content. Automatic
1475       support for ZLIB/Compress compressed document is provided
1476        by default if found at compile-time. """
1477     ret = libxml2mod.xmlCreateFileParserCtxt(filename)
1478     if ret is None:raise parserError('xmlCreateFileParserCtxt() failed')
1479     return parserCtxt(_obj=ret)
1480
1481 def createMemoryParserCtxt(buffer, size):
1482     """Create a parser context for an XML in-memory document. """
1483     ret = libxml2mod.xmlCreateMemoryParserCtxt(buffer, size)
1484     if ret is None:raise parserError('xmlCreateMemoryParserCtxt() failed')
1485     return parserCtxt(_obj=ret)
1486
1487 def createURLParserCtxt(filename, options):
1488     """Create a parser context for a file or URL content.
1489       Automatic support for ZLIB/Compress compressed document is
1490       provided by default if found at compile-time and for file
1491        accesses """
1492     ret = libxml2mod.xmlCreateURLParserCtxt(filename, options)
1493     if ret is None:raise parserError('xmlCreateURLParserCtxt() failed')
1494     return parserCtxt(_obj=ret)
1495
1496 def htmlCreateFileParserCtxt(filename, encoding):
1497     """Create a parser context for a file content. Automatic
1498       support for ZLIB/Compress compressed document is provided
1499        by default if found at compile-time. """
1500     ret = libxml2mod.htmlCreateFileParserCtxt(filename, encoding)
1501     if ret is None:raise parserError('htmlCreateFileParserCtxt() failed')
1502     return parserCtxt(_obj=ret)
1503
1504 def htmlInitAutoClose():
1505     """Initialize the htmlStartCloseIndex for fast lookup of
1506       closing tags names. This is not reentrant. Call
1507       xmlInitParser() once before processing in case of use in
1508        multithreaded programs. """
1509     libxml2mod.htmlInitAutoClose()
1510
1511 def isLetter(c):
1512     """Check whether the character is allowed by the production
1513        [84] Letter ::= BaseChar | Ideographic """
1514     ret = libxml2mod.xmlIsLetter(c)
1515     return ret
1516
1517 def namePop(ctxt):
1518     """Pops the top element name from the name stack """
1519     if ctxt is None: ctxt__o = None
1520     else: ctxt__o = ctxt._o
1521     ret = libxml2mod.namePop(ctxt__o)
1522     return ret
1523
1524 def namePush(ctxt, value):
1525     """Pushes a new element name on top of the name stack """
1526     if ctxt is None: ctxt__o = None
1527     else: ctxt__o = ctxt._o
1528     ret = libxml2mod.namePush(ctxt__o, value)
1529     return ret
1530
1531 def nodePop(ctxt):
1532     """Pops the top element node from the node stack """
1533     if ctxt is None: ctxt__o = None
1534     else: ctxt__o = ctxt._o
1535     ret = libxml2mod.nodePop(ctxt__o)
1536     if ret is None:raise treeError('nodePop() failed')
1537     return xmlNode(_obj=ret)
1538
1539 def nodePush(ctxt, value):
1540     """Pushes a new element node on top of the node stack """
1541     if ctxt is None: ctxt__o = None
1542     else: ctxt__o = ctxt._o
1543     if value is None: value__o = None
1544     else: value__o = value._o
1545     ret = libxml2mod.nodePush(ctxt__o, value__o)
1546     return ret
1547
1548 #
1549 # Functions from module python
1550 #
1551
1552 def SAXParseFile(SAX, URI, recover):
1553     """Interface to parse an XML file or resource pointed by an
1554        URI to build an event flow to the SAX object """
1555     libxml2mod.xmlSAXParseFile(SAX, URI, recover)
1556
1557 def createInputBuffer(file, encoding):
1558     """Create a libxml2 input buffer from a Python file """
1559     ret = libxml2mod.xmlCreateInputBuffer(file, encoding)
1560     if ret is None:raise treeError('xmlCreateInputBuffer() failed')
1561     return inputBuffer(_obj=ret)
1562
1563 def createOutputBuffer(file, encoding):
1564     """Create a libxml2 output buffer from a Python file """
1565     ret = libxml2mod.xmlCreateOutputBuffer(file, encoding)
1566     if ret is None:raise treeError('xmlCreateOutputBuffer() failed')
1567     return outputBuffer(_obj=ret)
1568
1569 def createPushParser(SAX, chunk, size, URI):
1570     """Create a progressive XML parser context to build either an
1571       event flow if the SAX object is not None, or a DOM tree
1572        otherwise. """
1573     ret = libxml2mod.xmlCreatePushParser(SAX, chunk, size, URI)
1574     if ret is None:raise parserError('xmlCreatePushParser() failed')
1575     return parserCtxt(_obj=ret)
1576
1577 def debugMemory(activate):
1578     """Switch on the generation of line number for elements nodes.
1579       Also returns the number of bytes allocated and not freed by
1580        libxml2 since memory debugging was switched on. """
1581     ret = libxml2mod.xmlDebugMemory(activate)
1582     return ret
1583
1584 def dumpMemory():
1585     """dump the memory allocated in the file .memdump """
1586     libxml2mod.xmlDumpMemory()
1587
1588 def htmlCreatePushParser(SAX, chunk, size, URI):
1589     """Create a progressive HTML parser context to build either an
1590       event flow if the SAX object is not None, or a DOM tree
1591        otherwise. """
1592     ret = libxml2mod.htmlCreatePushParser(SAX, chunk, size, URI)
1593     if ret is None:raise parserError('htmlCreatePushParser() failed')
1594     return parserCtxt(_obj=ret)
1595
1596 def htmlSAXParseFile(SAX, URI, encoding):
1597     """Interface to parse an HTML file or resource pointed by an
1598        URI to build an event flow to the SAX object """
1599     libxml2mod.htmlSAXParseFile(SAX, URI, encoding)
1600
1601 def memoryUsed():
1602     """Returns the total amount of memory allocated by libxml2 """
1603     ret = libxml2mod.xmlMemoryUsed()
1604     return ret
1605
1606 def newNode(name):
1607     """Create a new Node """
1608     ret = libxml2mod.xmlNewNode(name)
1609     if ret is None:raise treeError('xmlNewNode() failed')
1610     return xmlNode(_obj=ret)
1611
1612 def pythonCleanupParser():
1613     """Cleanup function for the XML library. It tries to reclaim
1614       all parsing related global memory allocated for the library
1615       processing. It doesn't deallocate any document related
1616       memory. Calling this function should not prevent reusing
1617       the library but one should call xmlCleanupParser() only
1618       when the process has finished using the library or XML
1619        document built with it. """
1620     libxml2mod.xmlPythonCleanupParser()
1621
1622 def setEntityLoader(resolver):
1623     """Set the entity resolver as a python function """
1624     ret = libxml2mod.xmlSetEntityLoader(resolver)
1625     return ret
1626
1627 #
1628 # Functions from module relaxng
1629 #
1630
1631 def relaxNGCleanupTypes():
1632     """Cleanup the default Schemas type library associated to
1633        RelaxNG """
1634     libxml2mod.xmlRelaxNGCleanupTypes()
1635
1636 def relaxNGInitTypes():
1637     """Initilize the default type libraries. """
1638     ret = libxml2mod.xmlRelaxNGInitTypes()
1639     return ret
1640
1641 def relaxNGNewMemParserCtxt(buffer, size):
1642     """Create an XML RelaxNGs parse context for that memory buffer
1643        expected to contain an XML RelaxNGs file. """
1644     ret = libxml2mod.xmlRelaxNGNewMemParserCtxt(buffer, size)
1645     if ret is None:raise parserError('xmlRelaxNGNewMemParserCtxt() failed')
1646     return relaxNgParserCtxt(_obj=ret)
1647
1648 def relaxNGNewParserCtxt(URL):
1649     """Create an XML RelaxNGs parse context for that file/resource
1650        expected to contain an XML RelaxNGs file. """
1651     ret = libxml2mod.xmlRelaxNGNewParserCtxt(URL)
1652     if ret is None:raise parserError('xmlRelaxNGNewParserCtxt() failed')
1653     return relaxNgParserCtxt(_obj=ret)
1654
1655 #
1656 # Functions from module tree
1657 #
1658
1659 def buildQName(ncname, prefix, memory, len):
1660     """Builds the QName @prefix:@ncname in @memory if there is
1661       enough space and prefix is not None nor empty, otherwise
1662       allocate a new string. If prefix is None or empty it
1663        returns ncname. """
1664     ret = libxml2mod.xmlBuildQName(ncname, prefix, memory, len)
1665     return ret
1666
1667 def compressMode():
1668     """get the default compression mode used, ZLIB based. """
1669     ret = libxml2mod.xmlGetCompressMode()
1670     return ret
1671
1672 def isXHTML(systemID, publicID):
1673     """Try to find if the document correspond to an XHTML DTD """
1674     ret = libxml2mod.xmlIsXHTML(systemID, publicID)
1675     return ret
1676
1677 def newComment(content):
1678     """Creation of a new node containing a comment. """
1679     ret = libxml2mod.xmlNewComment(content)
1680     if ret is None:raise treeError('xmlNewComment() failed')
1681     return xmlNode(_obj=ret)
1682
1683 def newDoc(version):
1684     """Creates a new XML document """
1685     ret = libxml2mod.xmlNewDoc(version)
1686     if ret is None:raise treeError('xmlNewDoc() failed')
1687     return xmlDoc(_obj=ret)
1688
1689 def newPI(name, content):
1690     """Creation of a processing instruction element. Use
1691        xmlDocNewPI preferably to get string interning """
1692     ret = libxml2mod.xmlNewPI(name, content)
1693     if ret is None:raise treeError('xmlNewPI() failed')
1694     return xmlNode(_obj=ret)
1695
1696 def newText(content):
1697     """Creation of a new text node. """
1698     ret = libxml2mod.xmlNewText(content)
1699     if ret is None:raise treeError('xmlNewText() failed')
1700     return xmlNode(_obj=ret)
1701
1702 def newTextLen(content, len):
1703     """Creation of a new text node with an extra parameter for the
1704        content's length """
1705     ret = libxml2mod.xmlNewTextLen(content, len)
1706     if ret is None:raise treeError('xmlNewTextLen() failed')
1707     return xmlNode(_obj=ret)
1708
1709 def setCompressMode(mode):
1710     """set the default compression mode used, ZLIB based Correct
1711        values: 0 (uncompressed) to 9 (max compression) """
1712     libxml2mod.xmlSetCompressMode(mode)
1713
1714 def validateNCName(value, space):
1715     """Check that a value conforms to the lexical space of NCName """
1716     ret = libxml2mod.xmlValidateNCName(value, space)
1717     return ret
1718
1719 def validateNMToken(value, space):
1720     """Check that a value conforms to the lexical space of NMToken """
1721     ret = libxml2mod.xmlValidateNMToken(value, space)
1722     return ret
1723
1724 def validateName(value, space):
1725     """Check that a value conforms to the lexical space of Name """
1726     ret = libxml2mod.xmlValidateName(value, space)
1727     return ret
1728
1729 def validateQName(value, space):
1730     """Check that a value conforms to the lexical space of QName """
1731     ret = libxml2mod.xmlValidateQName(value, space)
1732     return ret
1733
1734 #
1735 # Functions from module uri
1736 #
1737
1738 def URIEscape(str):
1739     """Escaping routine, does not do validity checks ! It will try
1740       to escape the chars needing this, but this is heuristic
1741        based it's impossible to be sure. """
1742     ret = libxml2mod.xmlURIEscape(str)
1743     return ret
1744
1745 def URIEscapeStr(str, list):
1746     """This routine escapes a string to hex, ignoring reserved
1747        characters (a-z) and the characters in the exception list. """
1748     ret = libxml2mod.xmlURIEscapeStr(str, list)
1749     return ret
1750
1751 def URIUnescapeString(str, len, target):
1752     """Unescaping routine, but does not check that the string is
1753       an URI. The output is a direct unsigned char translation of
1754       %XX values (no encoding) Note that the length of the result
1755        can only be smaller or same size as the input string. """
1756     ret = libxml2mod.xmlURIUnescapeString(str, len, target)
1757     return ret
1758
1759 def buildRelativeURI(URI, base):
1760     """Expresses the URI of the reference in terms relative to the
1761       base.  Some examples of this operation include: base =
1762       "http://site1.com/docs/book1.html" URI input               
1763       URI returned docs/pic1.gif                    pic1.gif
1764       docs/img/pic1.gif                img/pic1.gif img/pic1.gif 
1765       ../img/pic1.gif http://site1.com/docs/pic1.gif   pic1.gif
1766       http://site2.com/docs/pic1.gif  
1767       http://site2.com/docs/pic1.gif  base = "docs/book1.html"
1768       URI input                        URI returned docs/pic1.gif
1769       pic1.gif docs/img/pic1.gif                img/pic1.gif
1770       img/pic1.gif                     ../img/pic1.gif
1771       http://site1.com/docs/pic1.gif  
1772       http://site1.com/docs/pic1.gif   Note: if the URI reference
1773       is really wierd or complicated, it may be worthwhile to
1774       first convert it into a "nice" one by calling xmlBuildURI
1775       (using 'base') before calling this routine, since this
1776       routine (for reasonable efficiency) assumes URI has already
1777        been through some validation. """
1778     ret = libxml2mod.xmlBuildRelativeURI(URI, base)
1779     return ret
1780
1781 def buildURI(URI, base):
1782     """Computes he final URI of the reference done by checking
1783       that the given URI is valid, and building the final URI
1784       using the base URI. This is processed according to section
1785       5.2 of the RFC 2396  5.2. Resolving Relative References to
1786        Absolute Form """
1787     ret = libxml2mod.xmlBuildURI(URI, base)
1788     return ret
1789
1790 def canonicPath(path):
1791     """Constructs a canonic path from the specified path. """
1792     ret = libxml2mod.xmlCanonicPath(path)
1793     return ret
1794
1795 def createURI():
1796     """Simply creates an empty xmlURI """
1797     ret = libxml2mod.xmlCreateURI()
1798     if ret is None:raise uriError('xmlCreateURI() failed')
1799     return URI(_obj=ret)
1800
1801 def normalizeURIPath(path):
1802     """Applies the 5 normalization steps to a path string--that
1803       is, RFC 2396 Section 5.2, steps 6.c through 6.g. 
1804       Normalization occurs directly on the string, no new
1805        allocation is done """
1806     ret = libxml2mod.xmlNormalizeURIPath(path)
1807     return ret
1808
1809 def parseURI(str):
1810     """Parse an URI based on RFC 3986  URI-reference = [
1811        absoluteURI | relativeURI ] [ "#" fragment ] """
1812     ret = libxml2mod.xmlParseURI(str)
1813     if ret is None:raise uriError('xmlParseURI() failed')
1814     return URI(_obj=ret)
1815
1816 def parseURIRaw(str, raw):
1817     """Parse an URI but allows to keep intact the original
1818        fragments.  URI-reference = URI / relative-ref """
1819     ret = libxml2mod.xmlParseURIRaw(str, raw)
1820     if ret is None:raise uriError('xmlParseURIRaw() failed')
1821     return URI(_obj=ret)
1822
1823 def pathToURI(path):
1824     """Constructs an URI expressing the existing path """
1825     ret = libxml2mod.xmlPathToURI(path)
1826     return ret
1827
1828 #
1829 # Functions from module valid
1830 #
1831
1832 def newValidCtxt():
1833     """Allocate a validation context structure. """
1834     ret = libxml2mod.xmlNewValidCtxt()
1835     if ret is None:raise treeError('xmlNewValidCtxt() failed')
1836     return ValidCtxt(_obj=ret)
1837
1838 def validateNameValue(value):
1839     """Validate that the given value match Name production """
1840     ret = libxml2mod.xmlValidateNameValue(value)
1841     return ret
1842
1843 def validateNamesValue(value):
1844     """Validate that the given value match Names production """
1845     ret = libxml2mod.xmlValidateNamesValue(value)
1846     return ret
1847
1848 def validateNmtokenValue(value):
1849     """Validate that the given value match Nmtoken production  [
1850        VC: Name Token ] """
1851     ret = libxml2mod.xmlValidateNmtokenValue(value)
1852     return ret
1853
1854 def validateNmtokensValue(value):
1855     """Validate that the given value match Nmtokens production  [
1856        VC: Name Token ] """
1857     ret = libxml2mod.xmlValidateNmtokensValue(value)
1858     return ret
1859
1860 #
1861 # Functions from module xmlIO
1862 #
1863
1864 def checkFilename(path):
1865     """function checks to see if @path is a valid source (file,
1866       socket...) for XML.  if stat is not available on the target
1867        machine, """
1868     ret = libxml2mod.xmlCheckFilename(path)
1869     return ret
1870
1871 def cleanupInputCallbacks():
1872     """clears the entire input callback table. this includes the
1873        compiled-in I/O. """
1874     libxml2mod.xmlCleanupInputCallbacks()
1875
1876 def cleanupOutputCallbacks():
1877     """clears the entire output callback table. this includes the
1878        compiled-in I/O callbacks. """
1879     libxml2mod.xmlCleanupOutputCallbacks()
1880
1881 def fileMatch(filename):
1882     """input from FILE * """
1883     ret = libxml2mod.xmlFileMatch(filename)
1884     return ret
1885
1886 def iOFTPMatch(filename):
1887     """check if the URI matches an FTP one """
1888     ret = libxml2mod.xmlIOFTPMatch(filename)
1889     return ret
1890
1891 def iOHTTPMatch(filename):
1892     """check if the URI matches an HTTP one """
1893     ret = libxml2mod.xmlIOHTTPMatch(filename)
1894     return ret
1895
1896 def normalizeWindowsPath(path):
1897     """This function is obsolete. Please see xmlURIFromPath in
1898        uri.c for a better solution. """
1899     ret = libxml2mod.xmlNormalizeWindowsPath(path)
1900     return ret
1901
1902 def parserGetDirectory(filename):
1903     """lookup the directory for that file """
1904     ret = libxml2mod.xmlParserGetDirectory(filename)
1905     return ret
1906
1907 def registerDefaultInputCallbacks():
1908     """Registers the default compiled-in I/O handlers. """
1909     libxml2mod.xmlRegisterDefaultInputCallbacks()
1910
1911 def registerDefaultOutputCallbacks():
1912     """Registers the default compiled-in I/O handlers. """
1913     libxml2mod.xmlRegisterDefaultOutputCallbacks()
1914
1915 def registerHTTPPostCallbacks():
1916     """By default, libxml submits HTTP output requests using the
1917       "PUT" method. Calling this method changes the HTTP output
1918        method to use the "POST" method instead. """
1919     libxml2mod.xmlRegisterHTTPPostCallbacks()
1920
1921 #
1922 # Functions from module xmlerror
1923 #
1924
1925 def lastError():
1926     """Get the last global error registered. This is per thread if
1927        compiled with thread support. """
1928     ret = libxml2mod.xmlGetLastError()
1929     if ret is None:raise treeError('xmlGetLastError() failed')
1930     return Error(_obj=ret)
1931
1932 def resetLastError():
1933     """Cleanup the last global error registered. For parsing error
1934        this does not change the well-formedness result. """
1935     libxml2mod.xmlResetLastError()
1936
1937 #
1938 # Functions from module xmlreader
1939 #
1940
1941 def newTextReaderFilename(URI):
1942     """Create an xmlTextReader structure fed with the resource at
1943        @URI """
1944     ret = libxml2mod.xmlNewTextReaderFilename(URI)
1945     if ret is None:raise treeError('xmlNewTextReaderFilename() failed')
1946     return xmlTextReader(_obj=ret)
1947
1948 def readerForDoc(cur, URL, encoding, options):
1949     """Create an xmltextReader for an XML in-memory document. The
1950       parsing flags @options are a combination of xmlParserOption. """
1951     ret = libxml2mod.xmlReaderForDoc(cur, URL, encoding, options)
1952     if ret is None:raise treeError('xmlReaderForDoc() failed')
1953     return xmlTextReader(_obj=ret)
1954
1955 def readerForFd(fd, URL, encoding, options):
1956     """Create an xmltextReader for an XML from a file descriptor.
1957       The parsing flags @options are a combination of
1958       xmlParserOption. NOTE that the file descriptor will not be
1959        closed when the reader is closed or reset. """
1960     ret = libxml2mod.xmlReaderForFd(fd, URL, encoding, options)
1961     if ret is None:raise treeError('xmlReaderForFd() failed')
1962     return xmlTextReader(_obj=ret)
1963
1964 def readerForFile(filename, encoding, options):
1965     """parse an XML file from the filesystem or the network. The
1966       parsing flags @options are a combination of xmlParserOption. """
1967     ret = libxml2mod.xmlReaderForFile(filename, encoding, options)
1968     if ret is None:raise treeError('xmlReaderForFile() failed')
1969     return xmlTextReader(_obj=ret)
1970
1971 def readerForMemory(buffer, size, URL, encoding, options):
1972     """Create an xmltextReader for an XML in-memory document. The
1973       parsing flags @options are a combination of xmlParserOption. """
1974     ret = libxml2mod.xmlReaderForMemory(buffer, size, URL, encoding, options)
1975     if ret is None:raise treeError('xmlReaderForMemory() failed')
1976     return xmlTextReader(_obj=ret)
1977
1978 #
1979 # Functions from module xmlregexp
1980 #
1981
1982 def regexpCompile(regexp):
1983     """Parses a regular expression conforming to XML Schemas Part
1984       2 Datatype Appendix F and builds an automata suitable for
1985        testing strings against that regular expression """
1986     ret = libxml2mod.xmlRegexpCompile(regexp)
1987     if ret is None:raise treeError('xmlRegexpCompile() failed')
1988     return xmlReg(_obj=ret)
1989
1990 #
1991 # Functions from module xmlschemas
1992 #
1993
1994 def schemaNewMemParserCtxt(buffer, size):
1995     """Create an XML Schemas parse context for that memory buffer
1996        expected to contain an XML Schemas file. """
1997     ret = libxml2mod.xmlSchemaNewMemParserCtxt(buffer, size)
1998     if ret is None:raise parserError('xmlSchemaNewMemParserCtxt() failed')
1999     return SchemaParserCtxt(_obj=ret)
2000
2001 def schemaNewParserCtxt(URL):
2002     """Create an XML Schemas parse context for that file/resource
2003        expected to contain an XML Schemas file. """
2004     ret = libxml2mod.xmlSchemaNewParserCtxt(URL)
2005     if ret is None:raise parserError('xmlSchemaNewParserCtxt() failed')
2006     return SchemaParserCtxt(_obj=ret)
2007
2008 #
2009 # Functions from module xmlschemastypes
2010 #
2011
2012 def schemaCleanupTypes():
2013     """Cleanup the default XML Schemas type library """
2014     libxml2mod.xmlSchemaCleanupTypes()
2015
2016 def schemaCollapseString(value):
2017     """Removes and normalize white spaces in the string """
2018     ret = libxml2mod.xmlSchemaCollapseString(value)
2019     return ret
2020
2021 def schemaInitTypes():
2022     """Initialize the default XML Schemas type library """
2023     libxml2mod.xmlSchemaInitTypes()
2024
2025 def schemaWhiteSpaceReplace(value):
2026     """Replaces 0xd, 0x9 and 0xa with a space. """
2027     ret = libxml2mod.xmlSchemaWhiteSpaceReplace(value)
2028     return ret
2029
2030 #
2031 # Functions from module xmlstring
2032 #
2033
2034 def UTF8Charcmp(utf1, utf2):
2035     """compares the two UCS4 values """
2036     ret = libxml2mod.xmlUTF8Charcmp(utf1, utf2)
2037     return ret
2038
2039 def UTF8Size(utf):
2040     """calculates the internal size of a UTF8 character """
2041     ret = libxml2mod.xmlUTF8Size(utf)
2042     return ret
2043
2044 def UTF8Strlen(utf):
2045     """compute the length of an UTF8 string, it doesn't do a full
2046        UTF8 checking of the content of the string. """
2047     ret = libxml2mod.xmlUTF8Strlen(utf)
2048     return ret
2049
2050 def UTF8Strloc(utf, utfchar):
2051     """a function to provide the relative location of a UTF8 char """
2052     ret = libxml2mod.xmlUTF8Strloc(utf, utfchar)
2053     return ret
2054
2055 def UTF8Strndup(utf, len):
2056     """a strndup for array of UTF8's """
2057     ret = libxml2mod.xmlUTF8Strndup(utf, len)
2058     return ret
2059
2060 def UTF8Strpos(utf, pos):
2061     """a function to provide the equivalent of fetching a
2062        character from a string array """
2063     ret = libxml2mod.xmlUTF8Strpos(utf, pos)
2064     return ret
2065
2066 def UTF8Strsize(utf, len):
2067     """storage size of an UTF8 string the behaviour is not
2068        garanteed if the input string is not UTF-8 """
2069     ret = libxml2mod.xmlUTF8Strsize(utf, len)
2070     return ret
2071
2072 def UTF8Strsub(utf, start, len):
2073     """Create a substring from a given UTF-8 string Note: 
2074        positions are given in units of UTF-8 chars """
2075     ret = libxml2mod.xmlUTF8Strsub(utf, start, len)
2076     return ret
2077
2078 def checkUTF8(utf):
2079     """Checks @utf for being valid UTF-8. @utf is assumed to be
2080       null-terminated. This function is not super-strict, as it
2081       will allow longer UTF-8 sequences than necessary. Note that
2082       Java is capable of producing these sequences if provoked.
2083       Also note, this routine checks for the 4-byte maximum size,
2084        but does not check for 0x10ffff maximum value. """
2085     ret = libxml2mod.xmlCheckUTF8(utf)
2086     return ret
2087
2088 #
2089 # Functions from module xmlunicode
2090 #
2091
2092 def uCSIsAegeanNumbers(code):
2093     """Check whether the character is part of AegeanNumbers UCS
2094        Block """
2095     ret = libxml2mod.xmlUCSIsAegeanNumbers(code)
2096     return ret
2097
2098 def uCSIsAlphabeticPresentationForms(code):
2099     """Check whether the character is part of
2100        AlphabeticPresentationForms UCS Block """
2101     ret = libxml2mod.xmlUCSIsAlphabeticPresentationForms(code)
2102     return ret
2103
2104 def uCSIsArabic(code):
2105     """Check whether the character is part of Arabic UCS Block """
2106     ret = libxml2mod.xmlUCSIsArabic(code)
2107     return ret
2108
2109 def uCSIsArabicPresentationFormsA(code):
2110     """Check whether the character is part of
2111        ArabicPresentationForms-A UCS Block """
2112     ret = libxml2mod.xmlUCSIsArabicPresentationFormsA(code)
2113     return ret
2114
2115 def uCSIsArabicPresentationFormsB(code):
2116     """Check whether the character is part of
2117        ArabicPresentationForms-B UCS Block """
2118     ret = libxml2mod.xmlUCSIsArabicPresentationFormsB(code)
2119     return ret
2120
2121 def uCSIsArmenian(code):
2122     """Check whether the character is part of Armenian UCS Block """
2123     ret = libxml2mod.xmlUCSIsArmenian(code)
2124     return ret
2125
2126 def uCSIsArrows(code):
2127     """Check whether the character is part of Arrows UCS Block """
2128     ret = libxml2mod.xmlUCSIsArrows(code)
2129     return ret
2130
2131 def uCSIsBasicLatin(code):
2132     """Check whether the character is part of BasicLatin UCS Block """
2133     ret = libxml2mod.xmlUCSIsBasicLatin(code)
2134     return ret
2135
2136 def uCSIsBengali(code):
2137     """Check whether the character is part of Bengali UCS Block """
2138     ret = libxml2mod.xmlUCSIsBengali(code)
2139     return ret
2140
2141 def uCSIsBlock(code, block):
2142     """Check whether the character is part of the UCS Block """
2143     ret = libxml2mod.xmlUCSIsBlock(code, block)
2144     return ret
2145
2146 def uCSIsBlockElements(code):
2147     """Check whether the character is part of BlockElements UCS
2148        Block """
2149     ret = libxml2mod.xmlUCSIsBlockElements(code)
2150     return ret
2151
2152 def uCSIsBopomofo(code):
2153     """Check whether the character is part of Bopomofo UCS Block """
2154     ret = libxml2mod.xmlUCSIsBopomofo(code)
2155     return ret
2156
2157 def uCSIsBopomofoExtended(code):
2158     """Check whether the character is part of BopomofoExtended UCS
2159        Block """
2160     ret = libxml2mod.xmlUCSIsBopomofoExtended(code)
2161     return ret
2162
2163 def uCSIsBoxDrawing(code):
2164     """Check whether the character is part of BoxDrawing UCS Block """
2165     ret = libxml2mod.xmlUCSIsBoxDrawing(code)
2166     return ret
2167
2168 def uCSIsBraillePatterns(code):
2169     """Check whether the character is part of BraillePatterns UCS
2170        Block """
2171     ret = libxml2mod.xmlUCSIsBraillePatterns(code)
2172     return ret
2173
2174 def uCSIsBuhid(code):
2175     """Check whether the character is part of Buhid UCS Block """
2176     ret = libxml2mod.xmlUCSIsBuhid(code)
2177     return ret
2178
2179 def uCSIsByzantineMusicalSymbols(code):
2180     """Check whether the character is part of
2181        ByzantineMusicalSymbols UCS Block """
2182     ret = libxml2mod.xmlUCSIsByzantineMusicalSymbols(code)
2183     return ret
2184
2185 def uCSIsCJKCompatibility(code):
2186     """Check whether the character is part of CJKCompatibility UCS
2187        Block """
2188     ret = libxml2mod.xmlUCSIsCJKCompatibility(code)
2189     return ret
2190
2191 def uCSIsCJKCompatibilityForms(code):
2192     """Check whether the character is part of
2193        CJKCompatibilityForms UCS Block """
2194     ret = libxml2mod.xmlUCSIsCJKCompatibilityForms(code)
2195     return ret
2196
2197 def uCSIsCJKCompatibilityIdeographs(code):
2198     """Check whether the character is part of
2199        CJKCompatibilityIdeographs UCS Block """
2200     ret = libxml2mod.xmlUCSIsCJKCompatibilityIdeographs(code)
2201     return ret
2202
2203 def uCSIsCJKCompatibilityIdeographsSupplement(code):
2204     """Check whether the character is part of
2205        CJKCompatibilityIdeographsSupplement UCS Block """
2206     ret = libxml2mod.xmlUCSIsCJKCompatibilityIdeographsSupplement(code)
2207     return ret
2208
2209 def uCSIsCJKRadicalsSupplement(code):
2210     """Check whether the character is part of
2211        CJKRadicalsSupplement UCS Block """
2212     ret = libxml2mod.xmlUCSIsCJKRadicalsSupplement(code)
2213     return ret
2214
2215 def uCSIsCJKSymbolsandPunctuation(code):
2216     """Check whether the character is part of
2217        CJKSymbolsandPunctuation UCS Block """
2218     ret = libxml2mod.xmlUCSIsCJKSymbolsandPunctuation(code)
2219     return ret
2220
2221 def uCSIsCJKUnifiedIdeographs(code):
2222     """Check whether the character is part of CJKUnifiedIdeographs
2223        UCS Block """
2224     ret = libxml2mod.xmlUCSIsCJKUnifiedIdeographs(code)
2225     return ret
2226
2227 def uCSIsCJKUnifiedIdeographsExtensionA(code):
2228     """Check whether the character is part of
2229        CJKUnifiedIdeographsExtensionA UCS Block """
2230     ret = libxml2mod.xmlUCSIsCJKUnifiedIdeographsExtensionA(code)
2231     return ret
2232
2233 def uCSIsCJKUnifiedIdeographsExtensionB(code):
2234     """Check whether the character is part of
2235        CJKUnifiedIdeographsExtensionB UCS Block """
2236     ret = libxml2mod.xmlUCSIsCJKUnifiedIdeographsExtensionB(code)
2237     return ret
2238
2239 def uCSIsCat(code, cat):
2240     """Check whether the character is part of the UCS Category """
2241     ret = libxml2mod.xmlUCSIsCat(code, cat)
2242     return ret
2243
2244 def uCSIsCatC(code):
2245     """Check whether the character is part of C UCS Category """
2246     ret = libxml2mod.xmlUCSIsCatC(code)
2247     return ret
2248
2249 def uCSIsCatCc(code):
2250     """Check whether the character is part of Cc UCS Category """
2251     ret = libxml2mod.xmlUCSIsCatCc(code)
2252     return ret
2253
2254 def uCSIsCatCf(code):
2255     """Check whether the character is part of Cf UCS Category """
2256     ret = libxml2mod.xmlUCSIsCatCf(code)
2257     return ret
2258
2259 def uCSIsCatCo(code):
2260     """Check whether the character is part of Co UCS Category """
2261     ret = libxml2mod.xmlUCSIsCatCo(code)
2262     return ret
2263
2264 def uCSIsCatCs(code):
2265     """Check whether the character is part of Cs UCS Category """
2266     ret = libxml2mod.xmlUCSIsCatCs(code)
2267     return ret
2268
2269 def uCSIsCatL(code):
2270     """Check whether the character is part of L UCS Category """
2271     ret = libxml2mod.xmlUCSIsCatL(code)
2272     return ret
2273
2274 def uCSIsCatLl(code):
2275     """Check whether the character is part of Ll UCS Category """
2276     ret = libxml2mod.xmlUCSIsCatLl(code)
2277     return ret
2278
2279 def uCSIsCatLm(code):
2280     """Check whether the character is part of Lm UCS Category """
2281     ret = libxml2mod.xmlUCSIsCatLm(code)
2282     return ret
2283
2284 def uCSIsCatLo(code):
2285     """Check whether the character is part of Lo UCS Category """
2286     ret = libxml2mod.xmlUCSIsCatLo(code)
2287     return ret
2288
2289 def uCSIsCatLt(code):
2290     """Check whether the character is part of Lt UCS Category """
2291     ret = libxml2mod.xmlUCSIsCatLt(code)
2292     return ret
2293
2294 def uCSIsCatLu(code):
2295     """Check whether the character is part of Lu UCS Category """
2296     ret = libxml2mod.xmlUCSIsCatLu(code)
2297     return ret
2298
2299 def uCSIsCatM(code):
2300     """Check whether the character is part of M UCS Category """
2301     ret = libxml2mod.xmlUCSIsCatM(code)
2302     return ret
2303
2304 def uCSIsCatMc(code):
2305     """Check whether the character is part of Mc UCS Category """
2306     ret = libxml2mod.xmlUCSIsCatMc(code)
2307     return ret
2308
2309 def uCSIsCatMe(code):
2310     """Check whether the character is part of Me UCS Category """
2311     ret = libxml2mod.xmlUCSIsCatMe(code)
2312     return ret
2313
2314 def uCSIsCatMn(code):
2315     """Check whether the character is part of Mn UCS Category """
2316     ret = libxml2mod.xmlUCSIsCatMn(code)
2317     return ret
2318
2319 def uCSIsCatN(code):
2320     """Check whether the character is part of N UCS Category """
2321     ret = libxml2mod.xmlUCSIsCatN(code)
2322     return ret
2323
2324 def uCSIsCatNd(code):
2325     """Check whether the character is part of Nd UCS Category """
2326     ret = libxml2mod.xmlUCSIsCatNd(code)
2327     return ret
2328
2329 def uCSIsCatNl(code):
2330     """Check whether the character is part of Nl UCS Category """
2331     ret = libxml2mod.xmlUCSIsCatNl(code)
2332     return ret
2333
2334 def uCSIsCatNo(code):
2335     """Check whether the character is part of No UCS Category """
2336     ret = libxml2mod.xmlUCSIsCatNo(code)
2337     return ret
2338
2339 def uCSIsCatP(code):
2340     """Check whether the character is part of P UCS Category """
2341     ret = libxml2mod.xmlUCSIsCatP(code)
2342     return ret
2343
2344 def uCSIsCatPc(code):
2345     """Check whether the character is part of Pc UCS Category """
2346     ret = libxml2mod.xmlUCSIsCatPc(code)
2347     return ret
2348
2349 def uCSIsCatPd(code):
2350     """Check whether the character is part of Pd UCS Category """
2351     ret = libxml2mod.xmlUCSIsCatPd(code)
2352     return ret
2353
2354 def uCSIsCatPe(code):
2355     """Check whether the character is part of Pe UCS Category """
2356     ret = libxml2mod.xmlUCSIsCatPe(code)
2357     return ret
2358
2359 def uCSIsCatPf(code):
2360     """Check whether the character is part of Pf UCS Category """
2361     ret = libxml2mod.xmlUCSIsCatPf(code)
2362     return ret
2363
2364 def uCSIsCatPi(code):
2365     """Check whether the character is part of Pi UCS Category """
2366     ret = libxml2mod.xmlUCSIsCatPi(code)
2367     return ret
2368
2369 def uCSIsCatPo(code):
2370     """Check whether the character is part of Po UCS Category """
2371     ret = libxml2mod.xmlUCSIsCatPo(code)
2372     return ret
2373
2374 def uCSIsCatPs(code):
2375     """Check whether the character is part of Ps UCS Category """
2376     ret = libxml2mod.xmlUCSIsCatPs(code)
2377     return ret
2378
2379 def uCSIsCatS(code):
2380     """Check whether the character is part of S UCS Category """
2381     ret = libxml2mod.xmlUCSIsCatS(code)
2382     return ret
2383
2384 def uCSIsCatSc(code):
2385     """Check whether the character is part of Sc UCS Category """
2386     ret = libxml2mod.xmlUCSIsCatSc(code)
2387     return ret
2388
2389 def uCSIsCatSk(code):
2390     """Check whether the character is part of Sk UCS Category """
2391     ret = libxml2mod.xmlUCSIsCatSk(code)
2392     return ret
2393
2394 def uCSIsCatSm(code):
2395     """Check whether the character is part of Sm UCS Category """
2396     ret = libxml2mod.xmlUCSIsCatSm(code)
2397     return ret
2398
2399 def uCSIsCatSo(code):
2400     """Check whether the character is part of So UCS Category """
2401     ret = libxml2mod.xmlUCSIsCatSo(code)
2402     return ret
2403
2404 def uCSIsCatZ(code):
2405     """Check whether the character is part of Z UCS Category """
2406     ret = libxml2mod.xmlUCSIsCatZ(code)
2407     return ret
2408
2409 def uCSIsCatZl(code):
2410     """Check whether the character is part of Zl UCS Category """
2411     ret = libxml2mod.xmlUCSIsCatZl(code)
2412     return ret
2413
2414 def uCSIsCatZp(code):
2415     """Check whether the character is part of Zp UCS Category """
2416     ret = libxml2mod.xmlUCSIsCatZp(code)
2417     return ret
2418
2419 def uCSIsCatZs(code):
2420     """Check whether the character is part of Zs UCS Category """
2421     ret = libxml2mod.xmlUCSIsCatZs(code)
2422     return ret
2423
2424 def uCSIsCherokee(code):
2425     """Check whether the character is part of Cherokee UCS Block """
2426     ret = libxml2mod.xmlUCSIsCherokee(code)
2427     return ret
2428
2429 def uCSIsCombiningDiacriticalMarks(code):
2430     """Check whether the character is part of
2431        CombiningDiacriticalMarks UCS Block """
2432     ret = libxml2mod.xmlUCSIsCombiningDiacriticalMarks(code)
2433     return ret
2434
2435 def uCSIsCombiningDiacriticalMarksforSymbols(code):
2436     """Check whether the character is part of
2437        CombiningDiacriticalMarksforSymbols UCS Block """
2438     ret = libxml2mod.xmlUCSIsCombiningDiacriticalMarksforSymbols(code)
2439     return ret
2440
2441 def uCSIsCombiningHalfMarks(code):
2442     """Check whether the character is part of CombiningHalfMarks
2443        UCS Block """
2444     ret = libxml2mod.xmlUCSIsCombiningHalfMarks(code)
2445     return ret
2446
2447 def uCSIsCombiningMarksforSymbols(code):
2448     """Check whether the character is part of
2449        CombiningMarksforSymbols UCS Block """
2450     ret = libxml2mod.xmlUCSIsCombiningMarksforSymbols(code)
2451     return ret
2452
2453 def uCSIsControlPictures(code):
2454     """Check whether the character is part of ControlPictures UCS
2455        Block """
2456     ret = libxml2mod.xmlUCSIsControlPictures(code)
2457     return ret
2458
2459 def uCSIsCurrencySymbols(code):
2460     """Check whether the character is part of CurrencySymbols UCS
2461        Block """
2462     ret = libxml2mod.xmlUCSIsCurrencySymbols(code)
2463     return ret
2464
2465 def uCSIsCypriotSyllabary(code):
2466     """Check whether the character is part of CypriotSyllabary UCS
2467        Block """
2468     ret = libxml2mod.xmlUCSIsCypriotSyllabary(code)
2469     return ret
2470
2471 def uCSIsCyrillic(code):
2472     """Check whether the character is part of Cyrillic UCS Block """
2473     ret = libxml2mod.xmlUCSIsCyrillic(code)
2474     return ret
2475
2476 def uCSIsCyrillicSupplement(code):
2477     """Check whether the character is part of CyrillicSupplement
2478        UCS Block """
2479     ret = libxml2mod.xmlUCSIsCyrillicSupplement(code)
2480     return ret
2481
2482 def uCSIsDeseret(code):
2483     """Check whether the character is part of Deseret UCS Block """
2484     ret = libxml2mod.xmlUCSIsDeseret(code)
2485     return ret
2486
2487 def uCSIsDevanagari(code):
2488     """Check whether the character is part of Devanagari UCS Block """
2489     ret = libxml2mod.xmlUCSIsDevanagari(code)
2490     return ret
2491
2492 def uCSIsDingbats(code):
2493     """Check whether the character is part of Dingbats UCS Block """
2494     ret = libxml2mod.xmlUCSIsDingbats(code)
2495     return ret
2496
2497 def uCSIsEnclosedAlphanumerics(code):
2498     """Check whether the character is part of
2499        EnclosedAlphanumerics UCS Block """
2500     ret = libxml2mod.xmlUCSIsEnclosedAlphanumerics(code)
2501     return ret
2502
2503 def uCSIsEnclosedCJKLettersandMonths(code):
2504     """Check whether the character is part of
2505        EnclosedCJKLettersandMonths UCS Block """
2506     ret = libxml2mod.xmlUCSIsEnclosedCJKLettersandMonths(code)
2507     return ret
2508
2509 def uCSIsEthiopic(code):
2510     """Check whether the character is part of Ethiopic UCS Block """
2511     ret = libxml2mod.xmlUCSIsEthiopic(code)
2512     return ret
2513
2514 def uCSIsGeneralPunctuation(code):
2515     """Check whether the character is part of GeneralPunctuation
2516        UCS Block """
2517     ret = libxml2mod.xmlUCSIsGeneralPunctuation(code)
2518     return ret
2519
2520 def uCSIsGeometricShapes(code):
2521     """Check whether the character is part of GeometricShapes UCS
2522        Block """
2523     ret = libxml2mod.xmlUCSIsGeometricShapes(code)
2524     return ret
2525
2526 def uCSIsGeorgian(code):
2527     """Check whether the character is part of Georgian UCS Block """
2528     ret = libxml2mod.xmlUCSIsGeorgian(code)
2529     return ret
2530
2531 def uCSIsGothic(code):
2532     """Check whether the character is part of Gothic UCS Block """
2533     ret = libxml2mod.xmlUCSIsGothic(code)
2534     return ret
2535
2536 def uCSIsGreek(code):
2537     """Check whether the character is part of Greek UCS Block """
2538     ret = libxml2mod.xmlUCSIsGreek(code)
2539     return ret
2540
2541 def uCSIsGreekExtended(code):
2542     """Check whether the character is part of GreekExtended UCS
2543        Block """
2544     ret = libxml2mod.xmlUCSIsGreekExtended(code)
2545     return ret
2546
2547 def uCSIsGreekandCoptic(code):
2548     """Check whether the character is part of GreekandCoptic UCS
2549        Block """
2550     ret = libxml2mod.xmlUCSIsGreekandCoptic(code)
2551     return ret
2552
2553 def uCSIsGujarati(code):
2554     """Check whether the character is part of Gujarati UCS Block """
2555     ret = libxml2mod.xmlUCSIsGujarati(code)
2556     return ret
2557
2558 def uCSIsGurmukhi(code):
2559     """Check whether the character is part of Gurmukhi UCS Block """
2560     ret = libxml2mod.xmlUCSIsGurmukhi(code)
2561     return ret
2562
2563 def uCSIsHalfwidthandFullwidthForms(code):
2564     """Check whether the character is part of
2565        HalfwidthandFullwidthForms UCS Block """
2566     ret = libxml2mod.xmlUCSIsHalfwidthandFullwidthForms(code)
2567     return ret
2568
2569 def uCSIsHangulCompatibilityJamo(code):
2570     """Check whether the character is part of
2571        HangulCompatibilityJamo UCS Block """
2572     ret = libxml2mod.xmlUCSIsHangulCompatibilityJamo(code)
2573     return ret
2574
2575 def uCSIsHangulJamo(code):
2576     """Check whether the character is part of HangulJamo UCS Block """
2577     ret = libxml2mod.xmlUCSIsHangulJamo(code)
2578     return ret
2579
2580 def uCSIsHangulSyllables(code):
2581     """Check whether the character is part of HangulSyllables UCS
2582        Block """
2583     ret = libxml2mod.xmlUCSIsHangulSyllables(code)
2584     return ret
2585
2586 def uCSIsHanunoo(code):
2587     """Check whether the character is part of Hanunoo UCS Block """
2588     ret = libxml2mod.xmlUCSIsHanunoo(code)
2589     return ret
2590
2591 def uCSIsHebrew(code):
2592     """Check whether the character is part of Hebrew UCS Block """
2593     ret = libxml2mod.xmlUCSIsHebrew(code)
2594     return ret
2595
2596 def uCSIsHighPrivateUseSurrogates(code):
2597     """Check whether the character is part of
2598        HighPrivateUseSurrogates UCS Block """
2599     ret = libxml2mod.xmlUCSIsHighPrivateUseSurrogates(code)
2600     return ret
2601
2602 def uCSIsHighSurrogates(code):
2603     """Check whether the character is part of HighSurrogates UCS
2604        Block """
2605     ret = libxml2mod.xmlUCSIsHighSurrogates(code)
2606     return ret
2607
2608 def uCSIsHiragana(code):
2609     """Check whether the character is part of Hiragana UCS Block """
2610     ret = libxml2mod.xmlUCSIsHiragana(code)
2611     return ret
2612
2613 def uCSIsIPAExtensions(code):
2614     """Check whether the character is part of IPAExtensions UCS
2615        Block """
2616     ret = libxml2mod.xmlUCSIsIPAExtensions(code)
2617     return ret
2618
2619 def uCSIsIdeographicDescriptionCharacters(code):
2620     """Check whether the character is part of
2621        IdeographicDescriptionCharacters UCS Block """
2622     ret = libxml2mod.xmlUCSIsIdeographicDescriptionCharacters(code)
2623     return ret
2624
2625 def uCSIsKanbun(code):
2626     """Check whether the character is part of Kanbun UCS Block """
2627     ret = libxml2mod.xmlUCSIsKanbun(code)
2628     return ret
2629
2630 def uCSIsKangxiRadicals(code):
2631     """Check whether the character is part of KangxiRadicals UCS
2632        Block """
2633     ret = libxml2mod.xmlUCSIsKangxiRadicals(code)
2634     return ret
2635
2636 def uCSIsKannada(code):
2637     """Check whether the character is part of Kannada UCS Block """
2638     ret = libxml2mod.xmlUCSIsKannada(code)
2639     return ret
2640
2641 def uCSIsKatakana(code):
2642     """Check whether the character is part of Katakana UCS Block """
2643     ret = libxml2mod.xmlUCSIsKatakana(code)
2644     return ret
2645
2646 def uCSIsKatakanaPhoneticExtensions(code):
2647     """Check whether the character is part of
2648        KatakanaPhoneticExtensions UCS Block """
2649     ret = libxml2mod.xmlUCSIsKatakanaPhoneticExtensions(code)
2650     return ret
2651
2652 def uCSIsKhmer(code):
2653     """Check whether the character is part of Khmer UCS Block """
2654     ret = libxml2mod.xmlUCSIsKhmer(code)
2655     return ret
2656
2657 def uCSIsKhmerSymbols(code):
2658     """Check whether the character is part of KhmerSymbols UCS
2659        Block """
2660     ret = libxml2mod.xmlUCSIsKhmerSymbols(code)
2661     return ret
2662
2663 def uCSIsLao(code):
2664     """Check whether the character is part of Lao UCS Block """
2665     ret = libxml2mod.xmlUCSIsLao(code)
2666     return ret
2667
2668 def uCSIsLatin1Supplement(code):
2669     """Check whether the character is part of Latin-1Supplement
2670        UCS Block """
2671     ret = libxml2mod.xmlUCSIsLatin1Supplement(code)
2672     return ret
2673
2674 def uCSIsLatinExtendedA(code):
2675     """Check whether the character is part of LatinExtended-A UCS
2676        Block """
2677     ret = libxml2mod.xmlUCSIsLatinExtendedA(code)
2678     return ret
2679
2680 def uCSIsLatinExtendedAdditional(code):
2681     """Check whether the character is part of
2682        LatinExtendedAdditional UCS Block """
2683     ret = libxml2mod.xmlUCSIsLatinExtendedAdditional(code)
2684     return ret
2685
2686 def uCSIsLatinExtendedB(code):
2687     """Check whether the character is part of LatinExtended-B UCS
2688        Block """
2689     ret = libxml2mod.xmlUCSIsLatinExtendedB(code)
2690     return ret
2691
2692 def uCSIsLetterlikeSymbols(code):
2693     """Check whether the character is part of LetterlikeSymbols
2694        UCS Block """
2695     ret = libxml2mod.xmlUCSIsLetterlikeSymbols(code)
2696     return ret
2697
2698 def uCSIsLimbu(code):
2699     """Check whether the character is part of Limbu UCS Block """
2700     ret = libxml2mod.xmlUCSIsLimbu(code)
2701     return ret
2702
2703 def uCSIsLinearBIdeograms(code):
2704     """Check whether the character is part of LinearBIdeograms UCS
2705        Block """
2706     ret = libxml2mod.xmlUCSIsLinearBIdeograms(code)
2707     return ret
2708
2709 def uCSIsLinearBSyllabary(code):
2710     """Check whether the character is part of LinearBSyllabary UCS
2711        Block """
2712     ret = libxml2mod.xmlUCSIsLinearBSyllabary(code)
2713     return ret
2714
2715 def uCSIsLowSurrogates(code):
2716     """Check whether the character is part of LowSurrogates UCS
2717        Block """
2718     ret = libxml2mod.xmlUCSIsLowSurrogates(code)
2719     return ret
2720
2721 def uCSIsMalayalam(code):
2722     """Check whether the character is part of Malayalam UCS Block """
2723     ret = libxml2mod.xmlUCSIsMalayalam(code)
2724     return ret
2725
2726 def uCSIsMathematicalAlphanumericSymbols(code):
2727     """Check whether the character is part of
2728        MathematicalAlphanumericSymbols UCS Block """
2729     ret = libxml2mod.xmlUCSIsMathematicalAlphanumericSymbols(code)
2730     return ret
2731
2732 def uCSIsMathematicalOperators(code):
2733     """Check whether the character is part of
2734        MathematicalOperators UCS Block """
2735     ret = libxml2mod.xmlUCSIsMathematicalOperators(code)
2736     return ret
2737
2738 def uCSIsMiscellaneousMathematicalSymbolsA(code):
2739     """Check whether the character is part of
2740        MiscellaneousMathematicalSymbols-A UCS Block """
2741     ret = libxml2mod.xmlUCSIsMiscellaneousMathematicalSymbolsA(code)
2742     return ret
2743
2744 def uCSIsMiscellaneousMathematicalSymbolsB(code):
2745     """Check whether the character is part of
2746        MiscellaneousMathematicalSymbols-B UCS Block """
2747     ret = libxml2mod.xmlUCSIsMiscellaneousMathematicalSymbolsB(code)
2748     return ret
2749
2750 def uCSIsMiscellaneousSymbols(code):
2751     """Check whether the character is part of MiscellaneousSymbols
2752        UCS Block """
2753     ret = libxml2mod.xmlUCSIsMiscellaneousSymbols(code)
2754     return ret
2755
2756 def uCSIsMiscellaneousSymbolsandArrows(code):
2757     """Check whether the character is part of
2758        MiscellaneousSymbolsandArrows UCS Block """
2759     ret = libxml2mod.xmlUCSIsMiscellaneousSymbolsandArrows(code)
2760     return ret
2761
2762 def uCSIsMiscellaneousTechnical(code):
2763     """Check whether the character is part of
2764        MiscellaneousTechnical UCS Block """
2765     ret = libxml2mod.xmlUCSIsMiscellaneousTechnical(code)
2766     return ret
2767
2768 def uCSIsMongolian(code):
2769     """Check whether the character is part of Mongolian UCS Block """
2770     ret = libxml2mod.xmlUCSIsMongolian(code)
2771     return ret
2772
2773 def uCSIsMusicalSymbols(code):
2774     """Check whether the character is part of MusicalSymbols UCS
2775        Block """
2776     ret = libxml2mod.xmlUCSIsMusicalSymbols(code)
2777     return ret
2778
2779 def uCSIsMyanmar(code):
2780     """Check whether the character is part of Myanmar UCS Block """
2781     ret = libxml2mod.xmlUCSIsMyanmar(code)
2782     return ret
2783
2784 def uCSIsNumberForms(code):
2785     """Check whether the character is part of NumberForms UCS Block """
2786     ret = libxml2mod.xmlUCSIsNumberForms(code)
2787     return ret
2788
2789 def uCSIsOgham(code):
2790     """Check whether the character is part of Ogham UCS Block """
2791     ret = libxml2mod.xmlUCSIsOgham(code)
2792     return ret
2793
2794 def uCSIsOldItalic(code):
2795     """Check whether the character is part of OldItalic UCS Block """
2796     ret = libxml2mod.xmlUCSIsOldItalic(code)
2797     return ret
2798
2799 def uCSIsOpticalCharacterRecognition(code):
2800     """Check whether the character is part of
2801        OpticalCharacterRecognition UCS Block """
2802     ret = libxml2mod.xmlUCSIsOpticalCharacterRecognition(code)
2803     return ret
2804
2805 def uCSIsOriya(code):
2806     """Check whether the character is part of Oriya UCS Block """
2807     ret = libxml2mod.xmlUCSIsOriya(code)
2808     return ret
2809
2810 def uCSIsOsmanya(code):
2811     """Check whether the character is part of Osmanya UCS Block """
2812     ret = libxml2mod.xmlUCSIsOsmanya(code)
2813     return ret
2814
2815 def uCSIsPhoneticExtensions(code):
2816     """Check whether the character is part of PhoneticExtensions
2817        UCS Block """
2818     ret = libxml2mod.xmlUCSIsPhoneticExtensions(code)
2819     return ret
2820
2821 def uCSIsPrivateUse(code):
2822     """Check whether the character is part of PrivateUse UCS Block """
2823     ret = libxml2mod.xmlUCSIsPrivateUse(code)
2824     return ret
2825
2826 def uCSIsPrivateUseArea(code):
2827     """Check whether the character is part of PrivateUseArea UCS
2828        Block """
2829     ret = libxml2mod.xmlUCSIsPrivateUseArea(code)
2830     return ret
2831
2832 def uCSIsRunic(code):
2833     """Check whether the character is part of Runic UCS Block """
2834     ret = libxml2mod.xmlUCSIsRunic(code)
2835     return ret
2836
2837 def uCSIsShavian(code):
2838     """Check whether the character is part of Shavian UCS Block """
2839     ret = libxml2mod.xmlUCSIsShavian(code)
2840     return ret
2841
2842 def uCSIsSinhala(code):
2843     """Check whether the character is part of Sinhala UCS Block """
2844     ret = libxml2mod.xmlUCSIsSinhala(code)
2845     return ret
2846
2847 def uCSIsSmallFormVariants(code):
2848     """Check whether the character is part of SmallFormVariants
2849        UCS Block """
2850     ret = libxml2mod.xmlUCSIsSmallFormVariants(code)
2851     return ret
2852
2853 def uCSIsSpacingModifierLetters(code):
2854     """Check whether the character is part of
2855        SpacingModifierLetters UCS Block """
2856     ret = libxml2mod.xmlUCSIsSpacingModifierLetters(code)
2857     return ret
2858
2859 def uCSIsSpecials(code):
2860     """Check whether the character is part of Specials UCS Block """
2861     ret = libxml2mod.xmlUCSIsSpecials(code)
2862     return ret
2863
2864 def uCSIsSuperscriptsandSubscripts(code):
2865     """Check whether the character is part of
2866        SuperscriptsandSubscripts UCS Block """
2867     ret = libxml2mod.xmlUCSIsSuperscriptsandSubscripts(code)
2868     return ret
2869
2870 def uCSIsSupplementalArrowsA(code):
2871     """Check whether the character is part of SupplementalArrows-A
2872        UCS Block """
2873     ret = libxml2mod.xmlUCSIsSupplementalArrowsA(code)
2874     return ret
2875
2876 def uCSIsSupplementalArrowsB(code):
2877     """Check whether the character is part of SupplementalArrows-B
2878        UCS Block """
2879     ret = libxml2mod.xmlUCSIsSupplementalArrowsB(code)
2880     return ret
2881
2882 def uCSIsSupplementalMathematicalOperators(code):
2883     """Check whether the character is part of
2884        SupplementalMathematicalOperators UCS Block """
2885     ret = libxml2mod.xmlUCSIsSupplementalMathematicalOperators(code)
2886     return ret
2887
2888 def uCSIsSupplementaryPrivateUseAreaA(code):
2889     """Check whether the character is part of
2890        SupplementaryPrivateUseArea-A UCS Block """
2891     ret = libxml2mod.xmlUCSIsSupplementaryPrivateUseAreaA(code)
2892     return ret
2893
2894 def uCSIsSupplementaryPrivateUseAreaB(code):
2895     """Check whether the character is part of
2896        SupplementaryPrivateUseArea-B UCS Block """
2897     ret = libxml2mod.xmlUCSIsSupplementaryPrivateUseAreaB(code)
2898     return ret
2899
2900 def uCSIsSyriac(code):
2901     """Check whether the character is part of Syriac UCS Block """
2902     ret = libxml2mod.xmlUCSIsSyriac(code)
2903     return ret
2904
2905 def uCSIsTagalog(code):
2906     """Check whether the character is part of Tagalog UCS Block """
2907     ret = libxml2mod.xmlUCSIsTagalog(code)
2908     return ret
2909
2910 def uCSIsTagbanwa(code):
2911     """Check whether the character is part of Tagbanwa UCS Block """
2912     ret = libxml2mod.xmlUCSIsTagbanwa(code)
2913     return ret
2914
2915 def uCSIsTags(code):
2916     """Check whether the character is part of Tags UCS Block """
2917     ret = libxml2mod.xmlUCSIsTags(code)
2918     return ret
2919
2920 def uCSIsTaiLe(code):
2921     """Check whether the character is part of TaiLe UCS Block """
2922     ret = libxml2mod.xmlUCSIsTaiLe(code)
2923     return ret
2924
2925 def uCSIsTaiXuanJingSymbols(code):
2926     """Check whether the character is part of TaiXuanJingSymbols
2927        UCS Block """
2928     ret = libxml2mod.xmlUCSIsTaiXuanJingSymbols(code)
2929     return ret
2930
2931 def uCSIsTamil(code):
2932     """Check whether the character is part of Tamil UCS Block """
2933     ret = libxml2mod.xmlUCSIsTamil(code)
2934     return ret
2935
2936 def uCSIsTelugu(code):
2937     """Check whether the character is part of Telugu UCS Block """
2938     ret = libxml2mod.xmlUCSIsTelugu(code)
2939     return ret
2940
2941 def uCSIsThaana(code):
2942     """Check whether the character is part of Thaana UCS Block """
2943     ret = libxml2mod.xmlUCSIsThaana(code)
2944     return ret
2945
2946 def uCSIsThai(code):
2947     """Check whether the character is part of Thai UCS Block """
2948     ret = libxml2mod.xmlUCSIsThai(code)
2949     return ret
2950
2951 def uCSIsTibetan(code):
2952     """Check whether the character is part of Tibetan UCS Block """
2953     ret = libxml2mod.xmlUCSIsTibetan(code)
2954     return ret
2955
2956 def uCSIsUgaritic(code):
2957     """Check whether the character is part of Ugaritic UCS Block """
2958     ret = libxml2mod.xmlUCSIsUgaritic(code)
2959     return ret
2960
2961 def uCSIsUnifiedCanadianAboriginalSyllabics(code):
2962     """Check whether the character is part of
2963        UnifiedCanadianAboriginalSyllabics UCS Block """
2964     ret = libxml2mod.xmlUCSIsUnifiedCanadianAboriginalSyllabics(code)
2965     return ret
2966
2967 def uCSIsVariationSelectors(code):
2968     """Check whether the character is part of VariationSelectors
2969        UCS Block """
2970     ret = libxml2mod.xmlUCSIsVariationSelectors(code)
2971     return ret
2972
2973 def uCSIsVariationSelectorsSupplement(code):
2974     """Check whether the character is part of
2975        VariationSelectorsSupplement UCS Block """
2976     ret = libxml2mod.xmlUCSIsVariationSelectorsSupplement(code)
2977     return ret
2978
2979 def uCSIsYiRadicals(code):
2980     """Check whether the character is part of YiRadicals UCS Block """
2981     ret = libxml2mod.xmlUCSIsYiRadicals(code)
2982     return ret
2983
2984 def uCSIsYiSyllables(code):
2985     """Check whether the character is part of YiSyllables UCS Block """
2986     ret = libxml2mod.xmlUCSIsYiSyllables(code)
2987     return ret
2988
2989 def uCSIsYijingHexagramSymbols(code):
2990     """Check whether the character is part of
2991        YijingHexagramSymbols UCS Block """
2992     ret = libxml2mod.xmlUCSIsYijingHexagramSymbols(code)
2993     return ret
2994
2995 #
2996 # Functions from module xmlversion
2997 #
2998
2999 def checkVersion(version):
3000     """check the compiled lib version against the include one.
3001        This can warn or immediately kill the application """
3002     libxml2mod.xmlCheckVersion(version)
3003
3004 #
3005 # Functions from module xpathInternals
3006 #
3007
3008 def valuePop(ctxt):
3009     """Pops the top XPath object from the value stack """
3010     if ctxt is None: ctxt__o = None
3011     else: ctxt__o = ctxt._o
3012     ret = libxml2mod.valuePop(ctxt__o)
3013     return ret
3014
3015 class xmlNode(xmlCore):
3016     def __init__(self, _obj=None):
3017         if checkWrapper(_obj) != 0:            raise TypeError('xmlNode got a wrong wrapper object type')
3018         self._o = _obj
3019         xmlCore.__init__(self, _obj=_obj)
3020
3021     def __repr__(self):
3022         return "<xmlNode (%s) object at 0x%x>" % (self.name, int(pos_id (self)))
3023
3024     # accessors for xmlNode
3025     def ns(self):
3026         """Get the namespace of a node """
3027         ret = libxml2mod.xmlNodeGetNs(self._o)
3028         if ret is None:return None
3029         __tmp = xmlNs(_obj=ret)
3030         return __tmp
3031
3032     def nsDefs(self):
3033         """Get the namespace of a node """
3034         ret = libxml2mod.xmlNodeGetNsDefs(self._o)
3035         if ret is None:return None
3036         __tmp = xmlNs(_obj=ret)
3037         return __tmp
3038
3039     #
3040     # xmlNode functions from module debugXML
3041     #
3042
3043     def debugDumpNode(self, output, depth):
3044         """Dumps debug information for the element node, it is
3045            recursive """
3046         libxml2mod.xmlDebugDumpNode(output, self._o, depth)
3047
3048     def debugDumpNodeList(self, output, depth):
3049         """Dumps debug information for the list of element node, it is
3050            recursive """
3051         libxml2mod.xmlDebugDumpNodeList(output, self._o, depth)
3052
3053     def debugDumpOneNode(self, output, depth):
3054         """Dumps debug information for the element node, it is not
3055            recursive """
3056         libxml2mod.xmlDebugDumpOneNode(output, self._o, depth)
3057
3058     def lsCountNode(self):
3059         """Count the children of @node. """
3060         ret = libxml2mod.xmlLsCountNode(self._o)
3061         return ret
3062
3063     def lsOneNode(self, output):
3064         """Dump to @output the type and name of @node. """
3065         libxml2mod.xmlLsOneNode(output, self._o)
3066
3067     def shellPrintNode(self):
3068         """Print node to the output FILE """
3069         libxml2mod.xmlShellPrintNode(self._o)
3070
3071     #
3072     # xmlNode functions from module tree
3073     #
3074
3075     def addChild(self, cur):
3076         """Add a new node to @parent, at the end of the child (or
3077           property) list merging adjacent TEXT nodes (in which case
3078           @cur is freed) If the new node is ATTRIBUTE, it is added
3079           into properties instead of children. If there is an
3080            attribute with equal name, it is first destroyed. """
3081         if cur is None: cur__o = None
3082         else: cur__o = cur._o
3083         ret = libxml2mod.xmlAddChild(self._o, cur__o)
3084         if ret is None:raise treeError('xmlAddChild() failed')
3085         __tmp = xmlNode(_obj=ret)
3086         return __tmp
3087
3088     def addChildList(self, cur):
3089         """Add a list of node at the end of the child list of the
3090            parent merging adjacent TEXT nodes (@cur may be freed) """
3091         if cur is None: cur__o = None
3092         else: cur__o = cur._o
3093         ret = libxml2mod.xmlAddChildList(self._o, cur__o)
3094         if ret is None:raise treeError('xmlAddChildList() failed')
3095         __tmp = xmlNode(_obj=ret)
3096         return __tmp
3097
3098     def addContent(self, content):
3099         """Append the extra substring to the node content. NOTE: In
3100           contrast to xmlNodeSetContent(), @content is supposed to be
3101           raw text, so unescaped XML special chars are allowed,
3102            entity references are not supported. """
3103         libxml2mod.xmlNodeAddContent(self._o, content)
3104
3105     def addContentLen(self, content, len):
3106         """Append the extra substring to the node content. NOTE: In
3107           contrast to xmlNodeSetContentLen(), @content is supposed to
3108           be raw text, so unescaped XML special chars are allowed,
3109            entity references are not supported. """
3110         libxml2mod.xmlNodeAddContentLen(self._o, content, len)
3111
3112     def addNextSibling(self, elem):
3113         """Add a new node @elem as the next sibling of @cur If the new
3114           node was already inserted in a document it is first
3115           unlinked from its existing context. As a result of text
3116           merging @elem may be freed. If the new node is ATTRIBUTE,
3117           it is added into properties instead of children. If there
3118            is an attribute with equal name, it is first destroyed. """
3119         if elem is None: elem__o = None
3120         else: elem__o = elem._o
3121         ret = libxml2mod.xmlAddNextSibling(self._o, elem__o)
3122         if ret is None:raise treeError('xmlAddNextSibling() failed')
3123         __tmp = xmlNode(_obj=ret)
3124         return __tmp
3125
3126     def addPrevSibling(self, elem):
3127         """Add a new node @elem as the previous sibling of @cur
3128           merging adjacent TEXT nodes (@elem may be freed) If the new
3129           node was already inserted in a document it is first
3130           unlinked from its existing context. If the new node is
3131           ATTRIBUTE, it is added into properties instead of children.
3132           If there is an attribute with equal name, it is first
3133            destroyed. """
3134         if elem is None: elem__o = None
3135         else: elem__o = elem._o
3136         ret = libxml2mod.xmlAddPrevSibling(self._o, elem__o)
3137         if ret is None:raise treeError('xmlAddPrevSibling() failed')
3138         __tmp = xmlNode(_obj=ret)
3139         return __tmp
3140
3141     def addSibling(self, elem):
3142         """Add a new element @elem to the list of siblings of @cur
3143           merging adjacent TEXT nodes (@elem may be freed) If the new
3144           element was already inserted in a document it is first
3145            unlinked from its existing context. """
3146         if elem is None: elem__o = None
3147         else: elem__o = elem._o
3148         ret = libxml2mod.xmlAddSibling(self._o, elem__o)
3149         if ret is None:raise treeError('xmlAddSibling() failed')
3150         __tmp = xmlNode(_obj=ret)
3151         return __tmp
3152
3153     def copyNode(self, extended):
3154         """Do a copy of the node. """
3155         ret = libxml2mod.xmlCopyNode(self._o, extended)
3156         if ret is None:raise treeError('xmlCopyNode() failed')
3157         __tmp = xmlNode(_obj=ret)
3158         return __tmp
3159
3160     def copyNodeList(self):
3161         """Do a recursive copy of the node list. Use
3162           xmlDocCopyNodeList() if possible to ensure string interning. """
3163         ret = libxml2mod.xmlCopyNodeList(self._o)
3164         if ret is None:raise treeError('xmlCopyNodeList() failed')
3165         __tmp = xmlNode(_obj=ret)
3166         return __tmp
3167
3168     def copyProp(self, cur):
3169         """Do a copy of the attribute. """
3170         if cur is None: cur__o = None
3171         else: cur__o = cur._o
3172         ret = libxml2mod.xmlCopyProp(self._o, cur__o)
3173         if ret is None:raise treeError('xmlCopyProp() failed')
3174         __tmp = xmlAttr(_obj=ret)
3175         return __tmp
3176
3177     def copyPropList(self, cur):
3178         """Do a copy of an attribute list. """
3179         if cur is None: cur__o = None
3180         else: cur__o = cur._o
3181         ret = libxml2mod.xmlCopyPropList(self._o, cur__o)
3182         if ret is None:raise treeError('xmlCopyPropList() failed')
3183         __tmp = xmlAttr(_obj=ret)
3184         return __tmp
3185
3186     def docCopyNode(self, doc, extended):
3187         """Do a copy of the node to a given document. """
3188         if doc is None: doc__o = None
3189         else: doc__o = doc._o
3190         ret = libxml2mod.xmlDocCopyNode(self._o, doc__o, extended)
3191         if ret is None:raise treeError('xmlDocCopyNode() failed')
3192         __tmp = xmlNode(_obj=ret)
3193         return __tmp
3194
3195     def docCopyNodeList(self, doc):
3196         """Do a recursive copy of the node list. """
3197         if doc is None: doc__o = None
3198         else: doc__o = doc._o
3199         ret = libxml2mod.xmlDocCopyNodeList(doc__o, self._o)
3200         if ret is None:raise treeError('xmlDocCopyNodeList() failed')
3201         __tmp = xmlNode(_obj=ret)
3202         return __tmp
3203
3204     def docSetRootElement(self, doc):
3205         """Set the root element of the document (doc->children is a
3206            list containing possibly comments, PIs, etc ...). """
3207         if doc is None: doc__o = None
3208         else: doc__o = doc._o
3209         ret = libxml2mod.xmlDocSetRootElement(doc__o, self._o)
3210         if ret is None:return None
3211         __tmp = xmlNode(_obj=ret)
3212         return __tmp
3213
3214     def firstElementChild(self):
3215         """Finds the first child node of that element which is a
3216           Element node Note the handling of entities references is
3217           different than in the W3C DOM element traversal spec since
3218           we don't have back reference from entities content to
3219            entities references. """
3220         ret = libxml2mod.xmlFirstElementChild(self._o)
3221         if ret is None:return None
3222         __tmp = xmlNode(_obj=ret)
3223         return __tmp
3224
3225     def freeNode(self):
3226         """Free a node, this is a recursive behaviour, all the
3227           children are freed too. This doesn't unlink the child from
3228            the list, use xmlUnlinkNode() first. """
3229         libxml2mod.xmlFreeNode(self._o)
3230
3231     def freeNodeList(self):
3232         """Free a node and all its siblings, this is a recursive
3233            behaviour, all the children are freed too. """
3234         libxml2mod.xmlFreeNodeList(self._o)
3235
3236     def getBase(self, doc):
3237         """Searches for the BASE URL. The code should work on both XML
3238           and HTML document even if base mechanisms are completely
3239           different. It returns the base as defined in RFC 2396
3240           sections 5.1.1. Base URI within Document Content and 5.1.2.
3241           Base URI from the Encapsulating Entity However it does not
3242            return the document base (5.1.3), use doc->URL in this case """
3243         if doc is None: doc__o = None
3244         else: doc__o = doc._o
3245         ret = libxml2mod.xmlNodeGetBase(doc__o, self._o)
3246         return ret
3247
3248     def getContent(self):
3249         """Read the value of a node, this can be either the text
3250           carried directly by this node if it's a TEXT node or the
3251           aggregate string of the values carried by this node child's
3252            (TEXT and ENTITY_REF). Entity references are substituted. """
3253         ret = libxml2mod.xmlNodeGetContent(self._o)
3254         return ret
3255
3256     def getLang(self):
3257         """Searches the language of a node, i.e. the values of the
3258           xml:lang attribute or the one carried by the nearest
3259            ancestor. """
3260         ret = libxml2mod.xmlNodeGetLang(self._o)
3261         return ret
3262
3263     def getSpacePreserve(self):
3264         """Searches the space preserving behaviour of a node, i.e. the
3265           values of the xml:space attribute or the one carried by the
3266            nearest ancestor. """
3267         ret = libxml2mod.xmlNodeGetSpacePreserve(self._o)
3268         return ret
3269
3270     def hasNsProp(self, name, nameSpace):
3271         """Search for an attribute associated to a node This attribute
3272           has to be anchored in the namespace specified. This does
3273           the entity substitution. This function looks in DTD
3274           attribute declaration for #FIXED or default declaration
3275           values unless DTD use has been turned off. Note that a
3276            namespace of None indicates to use the default namespace. """
3277         ret = libxml2mod.xmlHasNsProp(self._o, name, nameSpace)
3278         if ret is None:return None
3279         __tmp = xmlAttr(_obj=ret)
3280         return __tmp
3281
3282     def hasProp(self, name):
3283         """Search an attribute associated to a node This function also
3284           looks in DTD attribute declaration for #FIXED or default
3285            declaration values unless DTD use has been turned off. """
3286         ret = libxml2mod.xmlHasProp(self._o, name)
3287         if ret is None:return None
3288         __tmp = xmlAttr(_obj=ret)
3289         return __tmp
3290
3291     def isBlankNode(self):
3292         """Checks whether this node is an empty or whitespace only
3293            (and possibly ignorable) text-node. """
3294         ret = libxml2mod.xmlIsBlankNode(self._o)
3295         return ret
3296
3297     def isText(self):
3298         """Is this node a Text node ? """
3299         ret = libxml2mod.xmlNodeIsText(self._o)
3300         return ret
3301
3302     def lastChild(self):
3303         """Search the last child of a node. """
3304         ret = libxml2mod.xmlGetLastChild(self._o)
3305         if ret is None:raise treeError('xmlGetLastChild() failed')
3306         __tmp = xmlNode(_obj=ret)
3307         return __tmp
3308
3309     def lastElementChild(self):
3310         """Finds the last child node of that element which is a
3311           Element node Note the handling of entities references is
3312           different than in the W3C DOM element traversal spec since
3313           we don't have back reference from entities content to
3314            entities references. """
3315         ret = libxml2mod.xmlLastElementChild(self._o)
3316         if ret is None:return None
3317         __tmp = xmlNode(_obj=ret)
3318         return __tmp
3319
3320     def lineNo(self):
3321         """Get line number of @node. Try to override the limitation of
3322           lines being store in 16 bits ints if XML_PARSE_BIG_LINES
3323            parser option was used """
3324         ret = libxml2mod.xmlGetLineNo(self._o)
3325         return ret
3326
3327     def listGetRawString(self, doc, inLine):
3328         """Builds the string equivalent to the text contained in the
3329           Node list made of TEXTs and ENTITY_REFs, contrary to
3330           xmlNodeListGetString() this function doesn't do any
3331            character encoding handling. """
3332         if doc is None: doc__o = None
3333         else: doc__o = doc._o
3334         ret = libxml2mod.xmlNodeListGetRawString(doc__o, self._o, inLine)
3335         return ret
3336
3337     def listGetString(self, doc, inLine):
3338         """Build the string equivalent to the text contained in the
3339            Node list made of TEXTs and ENTITY_REFs """
3340         if doc is None: doc__o = None
3341         else: doc__o = doc._o
3342         ret = libxml2mod.xmlNodeListGetString(doc__o, self._o, inLine)
3343         return ret
3344
3345     def newChild(self, ns, name, content):
3346         """Creation of a new child element, added at the end of
3347           @parent children list. @ns and @content parameters are
3348           optional (None). If @ns is None, the newly created element
3349           inherits the namespace of @parent. If @content is non None,
3350           a child list containing the TEXTs and ENTITY_REFs node will
3351           be created. NOTE: @content is supposed to be a piece of XML
3352           CDATA, so it allows entity references. XML special chars
3353           must be escaped first by using
3354           xmlEncodeEntitiesReentrant(), or xmlNewTextChild() should
3355            be used. """
3356         if ns is None: ns__o = None
3357         else: ns__o = ns._o
3358         ret = libxml2mod.xmlNewChild(self._o, ns__o, name, content)
3359         if ret is None:raise treeError('xmlNewChild() failed')
3360         __tmp = xmlNode(_obj=ret)
3361         return __tmp
3362
3363     def newNs(self, href, prefix):
3364         """Creation of a new Namespace. This function will refuse to
3365           create a namespace with a similar prefix than an existing
3366           one present on this node. We use href==None in the case of
3367            an element creation where the namespace was not defined. """
3368         ret = libxml2mod.xmlNewNs(self._o, href, prefix)
3369         if ret is None:raise treeError('xmlNewNs() failed')
3370         __tmp = xmlNs(_obj=ret)
3371         return __tmp
3372
3373     def newNsProp(self, ns, name, value):
3374         """Create a new property tagged with a namespace and carried
3375            by a node. """
3376         if ns is None: ns__o = None
3377         else: ns__o = ns._o
3378         ret = libxml2mod.xmlNewNsProp(self._o, ns__o, name, value)
3379         if ret is None:raise treeError('xmlNewNsProp() failed')
3380         __tmp = xmlAttr(_obj=ret)
3381         return __tmp
3382
3383     def newNsPropEatName(self, ns, name, value):
3384         """Create a new property tagged with a namespace and carried
3385            by a node. """
3386         if ns is None: ns__o = None
3387         else: ns__o = ns._o
3388         ret = libxml2mod.xmlNewNsPropEatName(self._o, ns__o, name, value)
3389         if ret is None:raise treeError('xmlNewNsPropEatName() failed')
3390         __tmp = xmlAttr(_obj=ret)
3391         return __tmp
3392
3393     def newProp(self, name, value):
3394         """Create a new property carried by a node. """
3395         ret = libxml2mod.xmlNewProp(self._o, name, value)
3396         if ret is None:raise treeError('xmlNewProp() failed')
3397         __tmp = xmlAttr(_obj=ret)
3398         return __tmp
3399
3400     def newTextChild(self, ns, name, content):
3401         """Creation of a new child element, added at the end of
3402           @parent children list. @ns and @content parameters are
3403           optional (None). If @ns is None, the newly created element
3404           inherits the namespace of @parent. If @content is non None,
3405           a child TEXT node will be created containing the string
3406           @content. NOTE: Use xmlNewChild() if @content will contain
3407           entities that need to be preserved. Use this function,
3408           xmlNewTextChild(), if you need to ensure that reserved XML
3409           chars that might appear in @content, such as the ampersand,
3410           greater-than or less-than signs, are automatically replaced
3411            by their XML escaped entity representations. """
3412         if ns is None: ns__o = None
3413         else: ns__o = ns._o
3414         ret = libxml2mod.xmlNewTextChild(self._o, ns__o, name, content)
3415         if ret is None:raise treeError('xmlNewTextChild() failed')
3416         __tmp = xmlNode(_obj=ret)
3417         return __tmp
3418
3419     def nextElementSibling(self):
3420         """Finds the first closest next sibling of the node which is
3421           an element node. Note the handling of entities references
3422           is different than in the W3C DOM element traversal spec
3423           since we don't have back reference from entities content to
3424            entities references. """
3425         ret = libxml2mod.xmlNextElementSibling(self._o)
3426         if ret is None:return None
3427         __tmp = xmlNode(_obj=ret)
3428         return __tmp
3429
3430     def noNsProp(self, name):
3431         """Search and get the value of an attribute associated to a
3432           node This does the entity substitution. This function looks
3433           in DTD attribute declaration for #FIXED or default
3434           declaration values unless DTD use has been turned off. This
3435           function is similar to xmlGetProp except it will accept
3436            only an attribute in no namespace. """
3437         ret = libxml2mod.xmlGetNoNsProp(self._o, name)
3438         return ret
3439
3440     def nodePath(self):
3441         """Build a structure based Path for the given node """
3442         ret = libxml2mod.xmlGetNodePath(self._o)
3443         return ret
3444
3445     def nsProp(self, name, nameSpace):
3446         """Search and get the value of an attribute associated to a
3447           node This attribute has to be anchored in the namespace
3448           specified. This does the entity substitution. This function
3449           looks in DTD attribute declaration for #FIXED or default
3450            declaration values unless DTD use has been turned off. """
3451         ret = libxml2mod.xmlGetNsProp(self._o, name, nameSpace)
3452         return ret
3453
3454     def previousElementSibling(self):
3455         """Finds the first closest previous sibling of the node which
3456           is an element node. Note the handling of entities
3457           references is different than in the W3C DOM element
3458           traversal spec since we don't have back reference from
3459            entities content to entities references. """
3460         ret = libxml2mod.xmlPreviousElementSibling(self._o)
3461         if ret is None:return None
3462         __tmp = xmlNode(_obj=ret)
3463         return __tmp
3464
3465     def prop(self, name):
3466         """Search and get the value of an attribute associated to a
3467           node This does the entity substitution. This function looks
3468           in DTD attribute declaration for #FIXED or default
3469           declaration values unless DTD use has been turned off.
3470           NOTE: this function acts independently of namespaces
3471           associated to the attribute. Use xmlGetNsProp() or
3472            xmlGetNoNsProp() for namespace aware processing. """
3473         ret = libxml2mod.xmlGetProp(self._o, name)
3474         return ret
3475
3476     def reconciliateNs(self, doc):
3477         """This function checks that all the namespaces declared
3478           within the given tree are properly declared. This is needed
3479           for example after Copy or Cut and then paste operations.
3480           The subtree may still hold pointers to namespace
3481           declarations outside the subtree or invalid/masked. As much
3482           as possible the function try to reuse the existing
3483           namespaces found in the new environment. If not possible
3484           the new namespaces are redeclared on @tree at the top of
3485            the given subtree. """
3486         if doc is None: doc__o = None
3487         else: doc__o = doc._o
3488         ret = libxml2mod.xmlReconciliateNs(doc__o, self._o)
3489         return ret
3490
3491     def replaceNode(self, cur):
3492         """Unlink the old node from its current context, prune the new
3493           one at the same place. If @cur was already inserted in a
3494            document it is first unlinked from its existing context. """
3495         if cur is None: cur__o = None
3496         else: cur__o = cur._o
3497         ret = libxml2mod.xmlReplaceNode(self._o, cur__o)
3498         if ret is None:raise treeError('xmlReplaceNode() failed')
3499         __tmp = xmlNode(_obj=ret)
3500         return __tmp
3501
3502     def searchNs(self, doc, nameSpace):
3503         """Search a Ns registered under a given name space for a
3504           document. recurse on the parents until it finds the defined
3505           namespace or return None otherwise. @nameSpace can be None,
3506           this is a search for the default namespace. We don't allow
3507           to cross entities boundaries. If you don't declare the
3508           namespace within those you will be in troubles !!! A
3509            warning is generated to cover this case. """
3510         if doc is None: doc__o = None
3511         else: doc__o = doc._o
3512         ret = libxml2mod.xmlSearchNs(doc__o, self._o, nameSpace)
3513         if ret is None:raise treeError('xmlSearchNs() failed')
3514         __tmp = xmlNs(_obj=ret)
3515         return __tmp
3516
3517     def searchNsByHref(self, doc, href):
3518         """Search a Ns aliasing a given URI. Recurse on the parents
3519           until it finds the defined namespace or return None
3520            otherwise. """
3521         if doc is None: doc__o = None
3522         else: doc__o = doc._o
3523         ret = libxml2mod.xmlSearchNsByHref(doc__o, self._o, href)
3524         if ret is None:raise treeError('xmlSearchNsByHref() failed')
3525         __tmp = xmlNs(_obj=ret)
3526         return __tmp
3527
3528     def setBase(self, uri):
3529         """Set (or reset) the base URI of a node, i.e. the value of
3530            the xml:base attribute. """
3531         libxml2mod.xmlNodeSetBase(self._o, uri)
3532
3533     def setContent(self, content):
3534         """Replace the content of a node. NOTE: @content is supposed
3535           to be a piece of XML CDATA, so it allows entity references,
3536           but XML special chars need to be escaped first by using
3537            xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars(). """
3538         libxml2mod.xmlNodeSetContent(self._o, content)
3539
3540     def setContentLen(self, content, len):
3541         """Replace the content of a node. NOTE: @content is supposed
3542           to be a piece of XML CDATA, so it allows entity references,
3543           but XML special chars need to be escaped first by using
3544            xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars(). """
3545         libxml2mod.xmlNodeSetContentLen(self._o, content, len)
3546
3547     def setLang(self, lang):
3548         """Set the language of a node, i.e. the values of the xml:lang
3549            attribute. """
3550         libxml2mod.xmlNodeSetLang(self._o, lang)
3551
3552     def setListDoc(self, doc):
3553         """update all nodes in the list to point to the right document """
3554         if doc is None: doc__o = None
3555         else: doc__o = doc._o
3556         libxml2mod.xmlSetListDoc(self._o, doc__o)
3557
3558     def setName(self, name):
3559         """Set (or reset) the name of a node. """
3560         libxml2mod.xmlNodeSetName(self._o, name)
3561
3562     def setNs(self, ns):
3563         """Associate a namespace to a node, a posteriori. """
3564         if ns is None: ns__o = None
3565         else: ns__o = ns._o
3566         libxml2mod.xmlSetNs(self._o, ns__o)
3567
3568     def setNsProp(self, ns, name, value):
3569         """Set (or reset) an attribute carried by a node. The ns
3570            structure must be in scope, this is not checked """
3571         if ns is None: ns__o = None
3572         else: ns__o = ns._o
3573         ret = libxml2mod.xmlSetNsProp(self._o, ns__o, name, value)
3574         if ret is None:raise treeError('xmlSetNsProp() failed')
3575         __tmp = xmlAttr(_obj=ret)
3576         return __tmp
3577
3578     def setProp(self, name, value):
3579         """Set (or reset) an attribute carried by a node. If @name has
3580           a prefix, then the corresponding namespace-binding will be
3581           used, if in scope; it is an error it there's no such
3582            ns-binding for the prefix in scope. """
3583         ret = libxml2mod.xmlSetProp(self._o, name, value)
3584         if ret is None:raise treeError('xmlSetProp() failed')
3585         __tmp = xmlAttr(_obj=ret)
3586         return __tmp
3587
3588     def setSpacePreserve(self, val):
3589         """Set (or reset) the space preserving behaviour of a node,
3590            i.e. the value of the xml:space attribute. """
3591         libxml2mod.xmlNodeSetSpacePreserve(self._o, val)
3592
3593     def setTreeDoc(self, doc):
3594         """update all nodes under the tree to point to the right
3595            document """
3596         if doc is None: doc__o = None
3597         else: doc__o = doc._o
3598         libxml2mod.xmlSetTreeDoc(self._o, doc__o)
3599
3600     def textConcat(self, content, len):
3601         """Concat the given string at the end of the existing node
3602            content """
3603         ret = libxml2mod.xmlTextConcat(self._o, content, len)
3604         return ret
3605
3606     def textMerge(self, second):
3607         """Merge two text nodes into one """
3608         if second is None: second__o = None
3609         else: second__o = second._o
3610         ret = libxml2mod.xmlTextMerge(self._o, second__o)
3611         if ret is None:raise treeError('xmlTextMerge() failed')
3612         __tmp = xmlNode(_obj=ret)
3613         return __tmp
3614
3615     def unlinkNode(self):
3616         """Unlink a node from it's current context, the node is not
3617           freed If one need to free the node, use xmlFreeNode()
3618           routine after the unlink to discard it. Note that namespace
3619           nodes can't be unlinked as they do not have pointer to
3620            their parent. """
3621         libxml2mod.xmlUnlinkNode(self._o)
3622
3623     def unsetNsProp(self, ns, name):
3624         """Remove an attribute carried by a node. """
3625         if ns is None: ns__o = None
3626         else: ns__o = ns._o
3627         ret = libxml2mod.xmlUnsetNsProp(self._o, ns__o, name)
3628         return ret
3629
3630     def unsetProp(self, name):
3631         """Remove an attribute carried by a node. This handles only
3632            attributes in no namespace. """
3633         ret = libxml2mod.xmlUnsetProp(self._o, name)
3634         return ret
3635
3636     #
3637     # xmlNode functions from module valid
3638     #
3639
3640     def isID(self, doc, attr):
3641         """Determine whether an attribute is of type ID. In case we
3642           have DTD(s) then this is done if DTD loading has been
3643           requested. In the case of HTML documents parsed with the
3644            HTML parser, then ID detection is done systematically. """
3645         if doc is None: doc__o = None
3646         else: doc__o = doc._o
3647         if attr is None: attr__o = None
3648         else: attr__o = attr._o
3649         ret = libxml2mod.xmlIsID(doc__o, self._o, attr__o)
3650         return ret
3651
3652     def isRef(self, doc, attr):
3653         """Determine whether an attribute is of type Ref. In case we
3654           have DTD(s) then this is simple, otherwise we use an
3655            heuristic: name Ref (upper or lowercase). """
3656         if doc is None: doc__o = None
3657         else: doc__o = doc._o
3658         if attr is None: attr__o = None
3659         else: attr__o = attr._o
3660         ret = libxml2mod.xmlIsRef(doc__o, self._o, attr__o)
3661         return ret
3662
3663     def validNormalizeAttributeValue(self, doc, name, value):
3664         """Does the validation related extra step of the normalization
3665           of attribute values:  If the declared value is not CDATA,
3666           then the XML processor must further process the normalized
3667           attribute value by discarding any leading and trailing
3668           space (#x20) characters, and by replacing sequences of
3669            space (#x20) characters by single space (#x20) character. """
3670         if doc is None: doc__o = None
3671         else: doc__o = doc._o
3672         ret = libxml2mod.xmlValidNormalizeAttributeValue(doc__o, self._o, name, value)
3673         return ret
3674
3675     #
3676     # xmlNode functions from module xinclude
3677     #
3678
3679     def xincludeProcessTree(self):
3680         """Implement the XInclude substitution for the given subtree """
3681         ret = libxml2mod.xmlXIncludeProcessTree(self._o)
3682         return ret
3683
3684     def xincludeProcessTreeFlags(self, flags):
3685         """Implement the XInclude substitution for the given subtree """
3686         ret = libxml2mod.xmlXIncludeProcessTreeFlags(self._o, flags)
3687         return ret
3688
3689     #
3690     # xmlNode functions from module xmlschemas
3691     #
3692
3693     def schemaValidateOneElement(self, ctxt):
3694         """Validate a branch of a tree, starting with the given @elem. """
3695         if ctxt is None: ctxt__o = None
3696         else: ctxt__o = ctxt._o
3697         ret = libxml2mod.xmlSchemaValidateOneElement(ctxt__o, self._o)
3698         return ret
3699
3700     #
3701     # xmlNode functions from module xpath
3702     #
3703
3704     def xpathCastNodeToNumber(self):
3705         """Converts a node to its number value """
3706         ret = libxml2mod.xmlXPathCastNodeToNumber(self._o)
3707         return ret
3708
3709     def xpathCastNodeToString(self):
3710         """Converts a node to its string value. """
3711         ret = libxml2mod.xmlXPathCastNodeToString(self._o)
3712         return ret
3713
3714     def xpathCmpNodes(self, node2):
3715         """Compare two nodes w.r.t document order """
3716         if node2 is None: node2__o = None
3717         else: node2__o = node2._o
3718         ret = libxml2mod.xmlXPathCmpNodes(self._o, node2__o)
3719         return ret
3720
3721     def xpathNodeEval(self, str, ctx):
3722         """Evaluate the XPath Location Path in the given context. The
3723           node 'node' is set as the context node. The context node is
3724            not restored. """
3725         if ctx is None: ctx__o = None
3726         else: ctx__o = ctx._o
3727         ret = libxml2mod.xmlXPathNodeEval(self._o, str, ctx__o)
3728         if ret is None:raise xpathError('xmlXPathNodeEval() failed')
3729         return xpathObjectRet(ret)
3730
3731     #
3732     # xmlNode functions from module xpathInternals
3733     #
3734
3735     def xpathNewNodeSet(self):
3736         """Create a new xmlXPathObjectPtr of type NodeSet and
3737            initialize it with the single Node @val """
3738         ret = libxml2mod.xmlXPathNewNodeSet(self._o)
3739         if ret is None:raise xpathError('xmlXPathNewNodeSet() failed')
3740         return xpathObjectRet(ret)
3741
3742     def xpathNewValueTree(self):
3743         """Create a new xmlXPathObjectPtr of type Value Tree (XSLT)
3744            and initialize it with the tree root @val """
3745         ret = libxml2mod.xmlXPathNewValueTree(self._o)
3746         if ret is None:raise xpathError('xmlXPathNewValueTree() failed')
3747         return xpathObjectRet(ret)
3748
3749     def xpathNextAncestor(self, ctxt):
3750         """Traversal function for the "ancestor" direction the
3751           ancestor axis contains the ancestors of the context node;
3752           the ancestors of the context node consist of the parent of
3753           context node and the parent's parent and so on; the nodes
3754           are ordered in reverse document order; thus the parent is
3755           the first node on the axis, and the parent's parent is the
3756            second node on the axis """
3757         if ctxt is None: ctxt__o = None
3758         else: ctxt__o = ctxt._o
3759         ret = libxml2mod.xmlXPathNextAncestor(ctxt__o, self._o)
3760         if ret is None:raise xpathError('xmlXPathNextAncestor() failed')
3761         __tmp = xmlNode(_obj=ret)
3762         return __tmp
3763
3764     def xpathNextAncestorOrSelf(self, ctxt):
3765         """Traversal function for the "ancestor-or-self" direction he
3766           ancestor-or-self axis contains the context node and
3767           ancestors of the context node in reverse document order;
3768           thus the context node is the first node on the axis, and
3769           the context node's parent the second; parent here is
3770            defined the same as with the parent axis. """
3771         if ctxt is None: ctxt__o = None
3772         else: ctxt__o = ctxt._o
3773         ret = libxml2mod.xmlXPathNextAncestorOrSelf(ctxt__o, self._o)
3774         if ret is None:raise xpathError('xmlXPathNextAncestorOrSelf() failed')
3775         __tmp = xmlNode(_obj=ret)
3776         return __tmp
3777
3778     def xpathNextAttribute(self, ctxt):
3779         """Traversal function for the "attribute" direction TODO:
3780            support DTD inherited default attributes """
3781         if ctxt is None: ctxt__o = None
3782         else: ctxt__o = ctxt._o
3783         ret = libxml2mod.xmlXPathNextAttribute(ctxt__o, self._o)
3784         if ret is None:raise xpathError('xmlXPathNextAttribute() failed')
3785         __tmp = xmlNode(_obj=ret)
3786         return __tmp
3787
3788     def xpathNextChild(self, ctxt):
3789         """Traversal function for the "child" direction The child axis
3790           contains the children of the context node in document order. """
3791         if ctxt is None: ctxt__o = None
3792         else: ctxt__o = ctxt._o
3793         ret = libxml2mod.xmlXPathNextChild(ctxt__o, self._o)
3794         if ret is None:raise xpathError('xmlXPathNextChild() failed')
3795         __tmp = xmlNode(_obj=ret)
3796         return __tmp
3797
3798     def xpathNextDescendant(self, ctxt):
3799         """Traversal function for the "descendant" direction the
3800           descendant axis contains the descendants of the context
3801           node in document order; a descendant is a child or a child
3802            of a child and so on. """
3803         if ctxt is None: ctxt__o = None
3804         else: ctxt__o = ctxt._o
3805         ret = libxml2mod.xmlXPathNextDescendant(ctxt__o, self._o)
3806         if ret is None:raise xpathError('xmlXPathNextDescendant() failed')
3807         __tmp = xmlNode(_obj=ret)
3808         return __tmp
3809
3810     def xpathNextDescendantOrSelf(self, ctxt):
3811         """Traversal function for the "descendant-or-self" direction
3812           the descendant-or-self axis contains the context node and
3813           the descendants of the context node in document order; thus
3814           the context node is the first node on the axis, and the
3815           first child of the context node is the second node on the
3816            axis """
3817         if ctxt is None: ctxt__o = None
3818         else: ctxt__o = ctxt._o
3819         ret = libxml2mod.xmlXPathNextDescendantOrSelf(ctxt__o, self._o)
3820         if ret is None:raise xpathError('xmlXPathNextDescendantOrSelf() failed')
3821         __tmp = xmlNode(_obj=ret)
3822         return __tmp
3823
3824     def xpathNextFollowing(self, ctxt):
3825         """Traversal function for the "following" direction The
3826           following axis contains all nodes in the same document as
3827           the context node that are after the context node in
3828           document order, excluding any descendants and excluding
3829           attribute nodes and namespace nodes; the nodes are ordered
3830            in document order """
3831         if ctxt is None: ctxt__o = None
3832         else: ctxt__o = ctxt._o
3833         ret = libxml2mod.xmlXPathNextFollowing(ctxt__o, self._o)
3834         if ret is None:raise xpathError('xmlXPathNextFollowing() failed')
3835         __tmp = xmlNode(_obj=ret)
3836         return __tmp
3837
3838     def xpathNextFollowingSibling(self, ctxt):
3839         """Traversal function for the "following-sibling" direction
3840           The following-sibling axis contains the following siblings
3841            of the context node in document order. """
3842         if ctxt is None: ctxt__o = None
3843         else: ctxt__o = ctxt._o
3844         ret = libxml2mod.xmlXPathNextFollowingSibling(ctxt__o, self._o)
3845         if ret is None:raise xpathError('xmlXPathNextFollowingSibling() failed')
3846         __tmp = xmlNode(_obj=ret)
3847         return __tmp
3848
3849     def xpathNextNamespace(self, ctxt):
3850         """Traversal function for the "namespace" direction the
3851           namespace axis contains the namespace nodes of the context
3852           node; the order of nodes on this axis is
3853           implementation-defined; the axis will be empty unless the
3854           context node is an element  We keep the XML namespace node
3855            at the end of the list. """
3856         if ctxt is None: ctxt__o = None
3857         else: ctxt__o = ctxt._o
3858         ret = libxml2mod.xmlXPathNextNamespace(ctxt__o, self._o)
3859         if ret is None:raise xpathError('xmlXPathNextNamespace() failed')
3860         __tmp = xmlNode(_obj=ret)
3861         return __tmp
3862
3863     def xpathNextParent(self, ctxt):
3864         """Traversal function for the "parent" direction The parent
3865           axis contains the parent of the context node, if there is
3866            one. """
3867         if ctxt is None: ctxt__o = None
3868         else: ctxt__o = ctxt._o
3869         ret = libxml2mod.xmlXPathNextParent(ctxt__o, self._o)
3870         if ret is None:raise xpathError('xmlXPathNextParent() failed')
3871         __tmp = xmlNode(_obj=ret)
3872         return __tmp
3873
3874     def xpathNextPreceding(self, ctxt):
3875         """Traversal function for the "preceding" direction the
3876           preceding axis contains all nodes in the same document as
3877           the context node that are before the context node in
3878           document order, excluding any ancestors and excluding
3879           attribute nodes and namespace nodes; the nodes are ordered
3880            in reverse document order """
3881         if ctxt is None: ctxt__o = None
3882         else: ctxt__o = ctxt._o
3883         ret = libxml2mod.xmlXPathNextPreceding(ctxt__o, self._o)
3884         if ret is None:raise xpathError('xmlXPathNextPreceding() failed')
3885         __tmp = xmlNode(_obj=ret)
3886         return __tmp
3887
3888     def xpathNextPrecedingSibling(self, ctxt):
3889         """Traversal function for the "preceding-sibling" direction
3890           The preceding-sibling axis contains the preceding siblings
3891           of the context node in reverse document order; the first
3892           preceding sibling is first on the axis; the sibling
3893            preceding that node is the second on the axis and so on. """
3894         if ctxt is None: ctxt__o = None
3895         else: ctxt__o = ctxt._o
3896         ret = libxml2mod.xmlXPathNextPrecedingSibling(ctxt__o, self._o)
3897         if ret is None:raise xpathError('xmlXPathNextPrecedingSibling() failed')
3898         __tmp = xmlNode(_obj=ret)
3899         return __tmp
3900
3901     def xpathNextSelf(self, ctxt):
3902         """Traversal function for the "self" direction The self axis
3903            contains just the context node itself """
3904         if ctxt is None: ctxt__o = None
3905         else: ctxt__o = ctxt._o
3906         ret = libxml2mod.xmlXPathNextSelf(ctxt__o, self._o)
3907         if ret is None:raise xpathError('xmlXPathNextSelf() failed')
3908         __tmp = xmlNode(_obj=ret)
3909         return __tmp
3910
3911     #
3912     # xmlNode functions from module xpointer
3913     #
3914
3915     def xpointerNewCollapsedRange(self):
3916         """Create a new xmlXPathObjectPtr of type range using a single
3917            nodes """
3918         ret = libxml2mod.xmlXPtrNewCollapsedRange(self._o)
3919         if ret is None:raise treeError('xmlXPtrNewCollapsedRange() failed')
3920         return xpathObjectRet(ret)
3921
3922     def xpointerNewContext(self, doc, origin):
3923         """Create a new XPointer context """
3924         if doc is None: doc__o = None
3925         else: doc__o = doc._o
3926         if origin is None: origin__o = None
3927         else: origin__o = origin._o
3928         ret = libxml2mod.xmlXPtrNewContext(doc__o, self._o, origin__o)
3929         if ret is None:raise treeError('xmlXPtrNewContext() failed')
3930         __tmp = xpathContext(_obj=ret)
3931         return __tmp
3932
3933     def xpointerNewLocationSetNodes(self, end):
3934         """Create a new xmlXPathObjectPtr of type LocationSet and
3935           initialize it with the single range made of the two nodes
3936            @start and @end """
3937         if end is None: end__o = None
3938         else: end__o = end._o
3939         ret = libxml2mod.xmlXPtrNewLocationSetNodes(self._o, end__o)
3940         if ret is None:raise treeError('xmlXPtrNewLocationSetNodes() failed')
3941         return xpathObjectRet(ret)
3942
3943     def xpointerNewRange(self, startindex, end, endindex):
3944         """Create a new xmlXPathObjectPtr of type range """
3945         if end is None: end__o = None
3946         else: end__o = end._o
3947         ret = libxml2mod.xmlXPtrNewRange(self._o, startindex, end__o, endindex)
3948         if ret is None:raise treeError('xmlXPtrNewRange() failed')
3949         return xpathObjectRet(ret)
3950
3951     def xpointerNewRangeNodes(self, end):
3952         """Create a new xmlXPathObjectPtr of type range using 2 nodes """
3953         if end is None: end__o = None
3954         else: end__o = end._o
3955         ret = libxml2mod.xmlXPtrNewRangeNodes(self._o, end__o)
3956         if ret is None:raise treeError('xmlXPtrNewRangeNodes() failed')
3957         return xpathObjectRet(ret)
3958
3959 class xmlDoc(xmlNode):
3960     def __init__(self, _obj=None):
3961         if checkWrapper(_obj) != 0:            raise TypeError('xmlDoc got a wrong wrapper object type')
3962         self._o = _obj
3963         xmlNode.__init__(self, _obj=_obj)
3964
3965     def __repr__(self):
3966         return "<xmlDoc (%s) object at 0x%x>" % (self.name, int(pos_id (self)))
3967
3968     #
3969     # xmlDoc functions from module HTMLparser
3970     #
3971
3972     def htmlAutoCloseTag(self, name, elem):
3973         """The HTML DTD allows a tag to implicitly close other tags.
3974           The list is kept in htmlStartClose array. This function
3975           checks if the element or one of it's children would
3976            autoclose the given tag. """
3977         ret = libxml2mod.htmlAutoCloseTag(self._o, name, elem)
3978         return ret
3979
3980     def htmlIsAutoClosed(self, elem):
3981         """The HTML DTD allows a tag to implicitly close other tags.
3982           The list is kept in htmlStartClose array. This function
3983            checks if a tag is autoclosed by one of it's child """
3984         ret = libxml2mod.htmlIsAutoClosed(self._o, elem)
3985         return ret
3986
3987     #
3988     # xmlDoc functions from module HTMLtree
3989     #
3990
3991     def htmlDocContentDumpFormatOutput(self, buf, encoding, format):
3992         """Dump an HTML document. """
3993         if buf is None: buf__o = None
3994         else: buf__o = buf._o
3995         libxml2mod.htmlDocContentDumpFormatOutput(buf__o, self._o, encoding, format)
3996
3997     def htmlDocContentDumpOutput(self, buf, encoding):
3998         """Dump an HTML document. Formating return/spaces are added. """
3999         if buf is None: buf__o = None
4000         else: buf__o = buf._o
4001         libxml2mod.htmlDocContentDumpOutput(buf__o, self._o, encoding)
4002
4003     def htmlDocDump(self, f):
4004         """Dump an HTML document to an open FILE. """
4005         ret = libxml2mod.htmlDocDump(f, self._o)
4006         return ret
4007
4008     def htmlGetMetaEncoding(self):
4009         """Encoding definition lookup in the Meta tags """
4010         ret = libxml2mod.htmlGetMetaEncoding(self._o)
4011         return ret
4012
4013     def htmlNodeDumpFile(self, out, cur):
4014         """Dump an HTML node, recursive behaviour,children are printed
4015            too, and formatting returns are added. """
4016         if cur is None: cur__o = None
4017         else: cur__o = cur._o
4018         libxml2mod.htmlNodeDumpFile(out, self._o, cur__o)
4019
4020     def htmlNodeDumpFileFormat(self, out, cur, encoding, format):
4021         """Dump an HTML node, recursive behaviour,children are printed
4022           too.  TODO: if encoding == None try to save in the doc
4023            encoding """
4024         if cur is None: cur__o = None
4025         else: cur__o = cur._o
4026         ret = libxml2mod.htmlNodeDumpFileFormat(out, self._o, cur__o, encoding, format)
4027         return ret
4028
4029     def htmlNodeDumpFormatOutput(self, buf, cur, encoding, format):
4030         """Dump an HTML node, recursive behaviour,children are printed
4031            too. """
4032         if buf is None: buf__o = None
4033         else: buf__o = buf._o
4034         if cur is None: cur__o = None
4035         else: cur__o = cur._o
4036         libxml2mod.htmlNodeDumpFormatOutput(buf__o, self._o, cur__o, encoding, format)
4037
4038     def htmlNodeDumpOutput(self, buf, cur, encoding):
4039         """Dump an HTML node, recursive behaviour,children are printed
4040            too, and formatting returns/spaces are added. """
4041         if buf is None: buf__o = None
4042         else: buf__o = buf._o
4043         if cur is None: cur__o = None
4044         else: cur__o = cur._o
4045         libxml2mod.htmlNodeDumpOutput(buf__o, self._o, cur__o, encoding)
4046
4047     def htmlSaveFile(self, filename):
4048         """Dump an HTML document to a file. If @filename is "-" the
4049            stdout file is used. """
4050         ret = libxml2mod.htmlSaveFile(filename, self._o)
4051         return ret
4052
4053     def htmlSaveFileEnc(self, filename, encoding):
4054         """Dump an HTML document to a file using a given encoding and
4055            formatting returns/spaces are added. """
4056         ret = libxml2mod.htmlSaveFileEnc(filename, self._o, encoding)
4057         return ret
4058
4059     def htmlSaveFileFormat(self, filename, encoding, format):
4060         """Dump an HTML document to a file using a given encoding. """
4061         ret = libxml2mod.htmlSaveFileFormat(filename, self._o, encoding, format)
4062         return ret
4063
4064     def htmlSetMetaEncoding(self, encoding):
4065         """Sets the current encoding in the Meta tags NOTE: this will
4066           not change the document content encoding, just the META
4067            flag associated. """
4068         ret = libxml2mod.htmlSetMetaEncoding(self._o, encoding)
4069         return ret
4070
4071     #
4072     # xmlDoc functions from module debugXML
4073     #
4074
4075     def debugCheckDocument(self, output):
4076         """Check the document for potential content problems, and
4077            output the errors to @output """
4078         ret = libxml2mod.xmlDebugCheckDocument(output, self._o)
4079         return ret
4080
4081     def debugDumpDocument(self, output):
4082         """Dumps debug information for the document, it's recursive """
4083         libxml2mod.xmlDebugDumpDocument(output, self._o)
4084
4085     def debugDumpDocumentHead(self, output):
4086         """Dumps debug information cncerning the document, not
4087            recursive """
4088         libxml2mod.xmlDebugDumpDocumentHead(output, self._o)
4089
4090     def debugDumpEntities(self, output):
4091         """Dumps debug information for all the entities in use by the
4092            document """
4093         libxml2mod.xmlDebugDumpEntities(output, self._o)
4094
4095     #
4096     # xmlDoc functions from module entities
4097     #
4098
4099     def addDocEntity(self, name, type, ExternalID, SystemID, content):
4100         """Register a new entity for this document. """
4101         ret = libxml2mod.xmlAddDocEntity(self._o, name, type, ExternalID, SystemID, content)
4102         if ret is None:raise treeError('xmlAddDocEntity() failed')
4103         __tmp = xmlEntity(_obj=ret)
4104         return __tmp
4105
4106     def addDtdEntity(self, name, type, ExternalID, SystemID, content):
4107         """Register a new entity for this document DTD external subset. """
4108         ret = libxml2mod.xmlAddDtdEntity(self._o, name, type, ExternalID, SystemID, content)
4109         if ret is None:raise treeError('xmlAddDtdEntity() failed')
4110         __tmp = xmlEntity(_obj=ret)
4111         return __tmp
4112
4113     def docEntity(self, name):
4114         """Do an entity lookup in the document entity hash table and """
4115         ret = libxml2mod.xmlGetDocEntity(self._o, name)
4116         if ret is None:raise treeError('xmlGetDocEntity() failed')
4117         __tmp = xmlEntity(_obj=ret)
4118         return __tmp
4119
4120     def dtdEntity(self, name):
4121         """Do an entity lookup in the DTD entity hash table and """
4122         ret = libxml2mod.xmlGetDtdEntity(self._o, name)
4123         if ret is None:raise treeError('xmlGetDtdEntity() failed')
4124         __tmp = xmlEntity(_obj=ret)
4125         return __tmp
4126
4127     def encodeEntities(self, input):
4128         """TODO: remove xmlEncodeEntities, once we are not afraid of
4129           breaking binary compatibility  People must migrate their
4130           code to xmlEncodeEntitiesReentrant ! This routine will
4131            issue a warning when encountered. """
4132         ret = libxml2mod.xmlEncodeEntities(self._o, input)
4133         return ret
4134
4135     def encodeEntitiesReentrant(self, input):
4136         """Do a global encoding of a string, replacing the predefined
4137           entities and non ASCII values with their entities and
4138           CharRef counterparts. Contrary to xmlEncodeEntities, this
4139            routine is reentrant, and result must be deallocated. """
4140         ret = libxml2mod.xmlEncodeEntitiesReentrant(self._o, input)
4141         return ret
4142
4143     def encodeSpecialChars(self, input):
4144         """Do a global encoding of a string, replacing the predefined
4145           entities this routine is reentrant, and result must be
4146            deallocated. """
4147         ret = libxml2mod.xmlEncodeSpecialChars(self._o, input)
4148         return ret
4149
4150     def newEntity(self, name, type, ExternalID, SystemID, content):
4151         """Create a new entity, this differs from xmlAddDocEntity()
4152           that if the document is None or has no internal subset
4153           defined, then an unlinked entity structure will be
4154           returned, it is then the responsability of the caller to
4155           link it to the document later or free it when not needed
4156            anymore. """
4157         ret = libxml2mod.xmlNewEntity(self._o, name, type, ExternalID, SystemID, content)
4158         if ret is None:raise treeError('xmlNewEntity() failed')
4159         __tmp = xmlEntity(_obj=ret)
4160         return __tmp
4161
4162     def parameterEntity(self, name):
4163         """Do an entity lookup in the internal and external subsets and """
4164         ret = libxml2mod.xmlGetParameterEntity(self._o, name)
4165         if ret is None:raise treeError('xmlGetParameterEntity() failed')
4166         __tmp = xmlEntity(_obj=ret)
4167         return __tmp
4168
4169     #
4170     # xmlDoc functions from module relaxng
4171     #
4172
4173     def relaxNGNewDocParserCtxt(self):
4174         """Create an XML RelaxNGs parser context for that document.
4175           Note: since the process of compiling a RelaxNG schemas
4176           modifies the document, the @doc parameter is duplicated
4177            internally. """
4178         ret = libxml2mod.xmlRelaxNGNewDocParserCtxt(self._o)
4179         if ret is None:raise parserError('xmlRelaxNGNewDocParserCtxt() failed')
4180         __tmp = relaxNgParserCtxt(_obj=ret)
4181         return __tmp
4182
4183     def relaxNGValidateDoc(self, ctxt):
4184         """Validate a document tree in memory. """
4185         if ctxt is None: ctxt__o = None
4186         else: ctxt__o = ctxt._o
4187         ret = libxml2mod.xmlRelaxNGValidateDoc(ctxt__o, self._o)
4188         return ret
4189
4190     def relaxNGValidateFullElement(self, ctxt, elem):
4191         """Validate a full subtree when
4192           xmlRelaxNGValidatePushElement() returned 0 and the content
4193            of the node has been expanded. """
4194         if ctxt is None: ctxt__o = None
4195         else: ctxt__o = ctxt._o
4196         if elem is None: elem__o = None
4197         else: elem__o = elem._o
4198         ret = libxml2mod.xmlRelaxNGValidateFullElement(ctxt__o, self._o, elem__o)
4199         return ret
4200
4201     def relaxNGValidatePopElement(self, ctxt, elem):
4202         """Pop the element end from the RelaxNG validation stack. """
4203         if ctxt is None: ctxt__o = None
4204         else: ctxt__o = ctxt._o
4205         if elem is None: elem__o = None
4206         else: elem__o = elem._o
4207         ret = libxml2mod.xmlRelaxNGValidatePopElement(ctxt__o, self._o, elem__o)
4208         return ret
4209
4210     def relaxNGValidatePushElement(self, ctxt, elem):
4211         """Push a new element start on the RelaxNG validation stack. """
4212         if ctxt is None: ctxt__o = None
4213         else: ctxt__o = ctxt._o
4214         if elem is None: elem__o = None
4215         else: elem__o = elem._o
4216         ret = libxml2mod.xmlRelaxNGValidatePushElement(ctxt__o, self._o, elem__o)
4217         return ret
4218
4219     #
4220     # xmlDoc functions from module tree
4221     #
4222
4223     def copyDoc(self, recursive):
4224         """Do a copy of the document info. If recursive, the content
4225           tree will be copied too as well as DTD, namespaces and
4226            entities. """
4227         ret = libxml2mod.xmlCopyDoc(self._o, recursive)
4228         if ret is None:raise treeError('xmlCopyDoc() failed')
4229         __tmp = xmlDoc(_obj=ret)
4230         return __tmp
4231
4232     def copyNode(self, node, extended):
4233         """Do a copy of the node to a given document. """
4234         if node is None: node__o = None
4235         else: node__o = node._o
4236         ret = libxml2mod.xmlDocCopyNode(node__o, self._o, extended)
4237         if ret is None:raise treeError('xmlDocCopyNode() failed')
4238         __tmp = xmlNode(_obj=ret)
4239         return __tmp
4240
4241     def copyNodeList(self, node):
4242         """Do a recursive copy of the node list. """
4243         if node is None: node__o = None
4244         else: node__o = node._o
4245         ret = libxml2mod.xmlDocCopyNodeList(self._o, node__o)
4246         if ret is None:raise treeError('xmlDocCopyNodeList() failed')
4247         __tmp = xmlNode(_obj=ret)
4248         return __tmp
4249
4250     def createIntSubset(self, name, ExternalID, SystemID):
4251         """Create the internal subset of a document """
4252         ret = libxml2mod.xmlCreateIntSubset(self._o, name, ExternalID, SystemID)
4253         if ret is None:raise treeError('xmlCreateIntSubset() failed')
4254         __tmp = xmlDtd(_obj=ret)
4255         return __tmp
4256
4257     def docCompressMode(self):
4258         """get the compression ratio for a document, ZLIB based """
4259         ret = libxml2mod.xmlGetDocCompressMode(self._o)
4260         return ret
4261
4262     def dump(self, f):
4263         """Dump an XML document to an open FILE. """
4264         ret = libxml2mod.xmlDocDump(f, self._o)
4265         return ret
4266
4267     def elemDump(self, f, cur):
4268         """Dump an XML/HTML node, recursive behaviour, children are
4269            printed too. """
4270         if cur is None: cur__o = None
4271         else: cur__o = cur._o
4272         libxml2mod.xmlElemDump(f, self._o, cur__o)
4273
4274     def formatDump(self, f, format):
4275         """Dump an XML document to an open FILE. """
4276         ret = libxml2mod.xmlDocFormatDump(f, self._o, format)
4277         return ret
4278
4279     def freeDoc(self):
4280         """Free up all the structures used by a document, tree
4281            included. """
4282         libxml2mod.xmlFreeDoc(self._o)
4283
4284     def getRootElement(self):
4285         """Get the root element of the document (doc->children is a
4286            list containing possibly comments, PIs, etc ...). """
4287         ret = libxml2mod.xmlDocGetRootElement(self._o)
4288         if ret is None:raise treeError('xmlDocGetRootElement() failed')
4289         __tmp = xmlNode(_obj=ret)
4290         return __tmp
4291
4292     def intSubset(self):
4293         """Get the internal subset of a document """
4294         ret = libxml2mod.xmlGetIntSubset(self._o)
4295         if ret is None:raise treeError('xmlGetIntSubset() failed')
4296         __tmp = xmlDtd(_obj=ret)
4297         return __tmp
4298
4299     def newCDataBlock(self, content, len):
4300         """Creation of a new node containing a CDATA block. """
4301         ret = libxml2mod.xmlNewCDataBlock(self._o, content, len)
4302         if ret is None:raise treeError('xmlNewCDataBlock() failed')
4303         __tmp = xmlNode(_obj=ret)
4304         return __tmp
4305
4306     def newCharRef(self, name):
4307         """Creation of a new character reference node. """
4308         ret = libxml2mod.xmlNewCharRef(self._o, name)
4309         if ret is None:raise treeError('xmlNewCharRef() failed')
4310         __tmp = xmlNode(_obj=ret)
4311         return __tmp
4312
4313     def newDocComment(self, content):
4314         """Creation of a new node containing a comment within a
4315            document. """
4316         ret = libxml2mod.xmlNewDocComment(self._o, content)
4317         if ret is None:raise treeError('xmlNewDocComment() failed')
4318         __tmp = xmlNode(_obj=ret)
4319         return __tmp
4320
4321     def newDocFragment(self):
4322         """Creation of a new Fragment node. """
4323         ret = libxml2mod.xmlNewDocFragment(self._o)
4324         if ret is None:raise treeError('xmlNewDocFragment() failed')
4325         __tmp = xmlNode(_obj=ret)
4326         return __tmp
4327
4328     def newDocNode(self, ns, name, content):
4329         """Creation of a new node element within a document. @ns and
4330           @content are optional (None). NOTE: @content is supposed to
4331           be a piece of XML CDATA, so it allow entities references,
4332           but XML special chars need to be escaped first by using
4333           xmlEncodeEntitiesReentrant(). Use xmlNewDocRawNode() if you
4334            don't need entities support. """
4335         if ns is None: ns__o = None
4336         else: ns__o = ns._o
4337         ret = libxml2mod.xmlNewDocNode(self._o, ns__o, name, content)
4338         if ret is None:raise treeError('xmlNewDocNode() failed')
4339         __tmp = xmlNode(_obj=ret)
4340         return __tmp
4341
4342     def newDocNodeEatName(self, ns, name, content):
4343         """Creation of a new node element within a document. @ns and
4344           @content are optional (None). NOTE: @content is supposed to
4345           be a piece of XML CDATA, so it allow entities references,
4346           but XML special chars need to be escaped first by using
4347           xmlEncodeEntitiesReentrant(). Use xmlNewDocRawNode() if you
4348            don't need entities support. """
4349         if ns is None: ns__o = None
4350         else: ns__o = ns._o
4351         ret = libxml2mod.xmlNewDocNodeEatName(self._o, ns__o, name, content)
4352         if ret is None:raise treeError('xmlNewDocNodeEatName() failed')
4353         __tmp = xmlNode(_obj=ret)
4354         return __tmp
4355
4356     def newDocPI(self, name, content):
4357         """Creation of a processing instruction element. """
4358         ret = libxml2mod.xmlNewDocPI(self._o, name, content)
4359         if ret is None:raise treeError('xmlNewDocPI() failed')
4360         __tmp = xmlNode(_obj=ret)
4361         return __tmp
4362
4363     def newDocProp(self, name, value):
4364         """Create a new property carried by a document. """
4365         ret = libxml2mod.xmlNewDocProp(self._o, name, value)
4366         if ret is None:raise treeError('xmlNewDocProp() failed')
4367         __tmp = xmlAttr(_obj=ret)
4368         return __tmp
4369
4370     def newDocRawNode(self, ns, name, content):
4371         """Creation of a new node element within a document. @ns and
4372            @content are optional (None). """
4373         if ns is None: ns__o = None
4374         else: ns__o = ns._o
4375         ret = libxml2mod.xmlNewDocRawNode(self._o, ns__o, name, content)
4376         if ret is None:raise treeError('xmlNewDocRawNode() failed')
4377         __tmp = xmlNode(_obj=ret)
4378         return __tmp
4379
4380     def newDocText(self, content):
4381         """Creation of a new text node within a document. """
4382         ret = libxml2mod.xmlNewDocText(self._o, content)
4383         if ret is None:raise treeError('xmlNewDocText() failed')
4384         __tmp = xmlNode(_obj=ret)
4385         return __tmp
4386
4387     def newDocTextLen(self, content, len):
4388         """Creation of a new text node with an extra content length
4389            parameter. The text node pertain to a given document. """
4390         ret = libxml2mod.xmlNewDocTextLen(self._o, content, len)
4391         if ret is None:raise treeError('xmlNewDocTextLen() failed')
4392         __tmp = xmlNode(_obj=ret)
4393         return __tmp
4394
4395     def newDtd(self, name, ExternalID, SystemID):
4396         """Creation of a new DTD for the external subset. To create an
4397            internal subset, use xmlCreateIntSubset(). """
4398         ret = libxml2mod.xmlNewDtd(self._o, name, ExternalID, SystemID)
4399         if ret is None:raise treeError('xmlNewDtd() failed')
4400         __tmp = xmlDtd(_obj=ret)
4401         return __tmp
4402
4403     def newGlobalNs(self, href, prefix):
4404         """Creation of a Namespace, the old way using PI and without
4405            scoping DEPRECATED !!! """
4406         ret = libxml2mod.xmlNewGlobalNs(self._o, href, prefix)
4407         if ret is None:raise treeError('xmlNewGlobalNs() failed')
4408         __tmp = xmlNs(_obj=ret)
4409         return __tmp
4410
4411     def newReference(self, name):
4412         """Creation of a new reference node. """
4413         ret = libxml2mod.xmlNewReference(self._o, name)
4414         if ret is None:raise treeError('xmlNewReference() failed')
4415         __tmp = xmlNode(_obj=ret)
4416         return __tmp
4417
4418     def nodeDumpOutput(self, buf, cur, level, format, encoding):
4419         """Dump an XML node, recursive behaviour, children are printed
4420           too. Note that @format = 1 provide node indenting only if
4421           xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was
4422            called """
4423         if buf is None: buf__o = None
4424         else: buf__o = buf._o
4425         if cur is None: cur__o = None
4426         else: cur__o = cur._o
4427         libxml2mod.xmlNodeDumpOutput(buf__o, self._o, cur__o, level, format, encoding)
4428
4429     def nodeGetBase(self, cur):
4430         """Searches for the BASE URL. The code should work on both XML
4431           and HTML document even if base mechanisms are completely
4432           different. It returns the base as defined in RFC 2396
4433           sections 5.1.1. Base URI within Document Content and 5.1.2.
4434           Base URI from the Encapsulating Entity However it does not
4435            return the document base (5.1.3), use doc->URL in this case """
4436         if cur is None: cur__o = None
4437         else: cur__o = cur._o
4438         ret = libxml2mod.xmlNodeGetBase(self._o, cur__o)
4439         return ret
4440
4441     def nodeListGetRawString(self, list, inLine):
4442         """Builds the string equivalent to the text contained in the
4443           Node list made of TEXTs and ENTITY_REFs, contrary to
4444           xmlNodeListGetString() this function doesn't do any
4445            character encoding handling. """
4446         if list is None: list__o = None
4447         else: list__o = list._o
4448         ret = libxml2mod.xmlNodeListGetRawString(self._o, list__o, inLine)
4449         return ret
4450
4451     def nodeListGetString(self, list, inLine):
4452         """Build the string equivalent to the text contained in the
4453            Node list made of TEXTs and ENTITY_REFs """
4454         if list is None: list__o = None
4455         else: list__o = list._o
4456         ret = libxml2mod.xmlNodeListGetString(self._o, list__o, inLine)
4457         return ret
4458
4459     def reconciliateNs(self, tree):
4460         """This function checks that all the namespaces declared
4461           within the given tree are properly declared. This is needed
4462           for example after Copy or Cut and then paste operations.
4463           The subtree may still hold pointers to namespace
4464           declarations outside the subtree or invalid/masked. As much
4465           as possible the function try to reuse the existing
4466           namespaces found in the new environment. If not possible
4467           the new namespaces are redeclared on @tree at the top of
4468            the given subtree. """
4469         if tree is None: tree__o = None
4470         else: tree__o = tree._o
4471         ret = libxml2mod.xmlReconciliateNs(self._o, tree__o)
4472         return ret
4473
4474     def saveFile(self, filename):
4475         """Dump an XML document to a file. Will use compression if
4476           compiled in and enabled. If @filename is "-" the stdout
4477            file is used. """
4478         ret = libxml2mod.xmlSaveFile(filename, self._o)
4479         return ret
4480
4481     def saveFileEnc(self, filename, encoding):
4482         """Dump an XML document, converting it to the given encoding """
4483         ret = libxml2mod.xmlSaveFileEnc(filename, self._o, encoding)
4484         return ret
4485
4486     def saveFileTo(self, buf, encoding):
4487         """Dump an XML document to an I/O buffer. Warning ! This call
4488           xmlOutputBufferClose() on buf which is not available after
4489            this call. """
4490         if buf is None: buf__o = None
4491         else: buf__o = buf._o
4492         ret = libxml2mod.xmlSaveFileTo(buf__o, self._o, encoding)
4493         return ret
4494
4495     def saveFormatFile(self, filename, format):
4496         """Dump an XML document to a file. Will use compression if
4497           compiled in and enabled. If @filename is "-" the stdout
4498           file is used. If @format is set then the document will be
4499           indented on output. Note that @format = 1 provide node
4500           indenting only if xmlIndentTreeOutput = 1 or
4501            xmlKeepBlanksDefault(0) was called """
4502         ret = libxml2mod.xmlSaveFormatFile(filename, self._o, format)
4503         return ret
4504
4505     def saveFormatFileEnc(self, filename, encoding, format):
4506         """Dump an XML document to a file or an URL. """
4507         ret = libxml2mod.xmlSaveFormatFileEnc(filename, self._o, encoding, format)
4508         return ret
4509
4510     def saveFormatFileTo(self, buf, encoding, format):
4511         """Dump an XML document to an I/O buffer. Warning ! This call
4512           xmlOutputBufferClose() on buf which is not available after
4513            this call. """
4514         if buf is None: buf__o = None
4515         else: buf__o = buf._o
4516         ret = libxml2mod.xmlSaveFormatFileTo(buf__o, self._o, encoding, format)
4517         return ret
4518
4519     def searchNs(self, node, nameSpace):
4520         """Search a Ns registered under a given name space for a
4521           document. recurse on the parents until it finds the defined
4522           namespace or return None otherwise. @nameSpace can be None,
4523           this is a search for the default namespace. We don't allow
4524           to cross entities boundaries. If you don't declare the
4525           namespace within those you will be in troubles !!! A
4526            warning is generated to cover this case. """
4527         if node is None: node__o = None
4528         else: node__o = node._o
4529         ret = libxml2mod.xmlSearchNs(self._o, node__o, nameSpace)
4530         if ret is None:raise treeError('xmlSearchNs() failed')
4531         __tmp = xmlNs(_obj=ret)
4532         return __tmp
4533
4534     def searchNsByHref(self, node, href):
4535         """Search a Ns aliasing a given URI. Recurse on the parents
4536           until it finds the defined namespace or return None
4537            otherwise. """
4538         if node is None: node__o = None
4539         else: node__o = node._o
4540         ret = libxml2mod.xmlSearchNsByHref(self._o, node__o, href)
4541         if ret is None:raise treeError('xmlSearchNsByHref() failed')
4542         __tmp = xmlNs(_obj=ret)
4543         return __tmp
4544
4545     def setDocCompressMode(self, mode):
4546         """set the compression ratio for a document, ZLIB based
4547            Correct values: 0 (uncompressed) to 9 (max compression) """
4548         libxml2mod.xmlSetDocCompressMode(self._o, mode)
4549
4550     def setListDoc(self, list):
4551         """update all nodes in the list to point to the right document """
4552         if list is None: list__o = None
4553         else: list__o = list._o
4554         libxml2mod.xmlSetListDoc(list__o, self._o)
4555
4556     def setRootElement(self, root):
4557         """Set the root element of the document (doc->children is a
4558            list containing possibly comments, PIs, etc ...). """
4559         if root is None: root__o = None
4560         else: root__o = root._o
4561         ret = libxml2mod.xmlDocSetRootElement(self._o, root__o)
4562         if ret is None:return None
4563         __tmp = xmlNode(_obj=ret)
4564         return __tmp
4565
4566     def setTreeDoc(self, tree):
4567         """update all nodes under the tree to point to the right
4568            document """
4569         if tree is None: tree__o = None
4570         else: tree__o = tree._o
4571         libxml2mod.xmlSetTreeDoc(tree__o, self._o)
4572
4573     def stringGetNodeList(self, value):
4574         """Parse the value string and build the node list associated.
4575            Should produce a flat tree with only TEXTs and ENTITY_REFs. """
4576         ret = libxml2mod.xmlStringGetNodeList(self._o, value)
4577         if ret is None:raise treeError('xmlStringGetNodeList() failed')
4578         __tmp = xmlNode(_obj=ret)
4579         return __tmp
4580
4581     def stringLenGetNodeList(self, value, len):
4582         """Parse the value string and build the node list associated.
4583            Should produce a flat tree with only TEXTs and ENTITY_REFs. """
4584         ret = libxml2mod.xmlStringLenGetNodeList(self._o, value, len)
4585         if ret is None:raise treeError('xmlStringLenGetNodeList() failed')
4586         __tmp = xmlNode(_obj=ret)
4587         return __tmp
4588
4589     #
4590     # xmlDoc functions from module valid
4591     #
4592
4593     def ID(self, ID):
4594         """Search the attribute declaring the given ID """
4595         ret = libxml2mod.xmlGetID(self._o, ID)
4596         if ret is None:raise treeError('xmlGetID() failed')
4597         __tmp = xmlAttr(_obj=ret)
4598         return __tmp
4599
4600     def isID(self, elem, attr):
4601         """Determine whether an attribute is of type ID. In case we
4602           have DTD(s) then this is done if DTD loading has been
4603           requested. In the case of HTML documents parsed with the
4604            HTML parser, then ID detection is done systematically. """
4605         if elem is None: elem__o = None
4606         else: elem__o = elem._o
4607         if attr is None: attr__o = None
4608         else: attr__o = attr._o
4609         ret = libxml2mod.xmlIsID(self._o, elem__o, attr__o)
4610         return ret
4611
4612     def isMixedElement(self, name):
4613         """Search in the DtDs whether an element accept Mixed content
4614            (or ANY) basically if it is supposed to accept text childs """
4615         ret = libxml2mod.xmlIsMixedElement(self._o, name)
4616         return ret
4617
4618     def isRef(self, elem, attr):
4619         """Determine whether an attribute is of type Ref. In case we
4620           have DTD(s) then this is simple, otherwise we use an
4621            heuristic: name Ref (upper or lowercase). """
4622         if elem is None: elem__o = None
4623         else: elem__o = elem._o
4624         if attr is None: attr__o = None
4625         else: attr__o = attr._o
4626         ret = libxml2mod.xmlIsRef(self._o, elem__o, attr__o)
4627         return ret
4628
4629     def removeID(self, attr):
4630         """Remove the given attribute from the ID table maintained
4631            internally. """
4632         if attr is None: attr__o = None
4633         else: attr__o = attr._o
4634         ret = libxml2mod.xmlRemoveID(self._o, attr__o)
4635         return ret
4636
4637     def removeRef(self, attr):
4638         """Remove the given attribute from the Ref table maintained
4639            internally. """
4640         if attr is None: attr__o = None
4641         else: attr__o = attr._o
4642         ret = libxml2mod.xmlRemoveRef(self._o, attr__o)
4643         return ret
4644
4645     def validCtxtNormalizeAttributeValue(self, ctxt, elem, name, value):
4646         """Does the validation related extra step of the normalization
4647           of attribute values:  If the declared value is not CDATA,
4648           then the XML processor must further process the normalized
4649           attribute value by discarding any leading and trailing
4650           space (#x20) characters, and by replacing sequences of
4651           space (#x20) characters by single space (#x20) character. 
4652           Also  check VC: Standalone Document Declaration in P32, and
4653            update ctxt->valid accordingly """
4654         if ctxt is None: ctxt__o = None
4655         else: ctxt__o = ctxt._o
4656         if elem is None: elem__o = None
4657         else: elem__o = elem._o
4658         ret = libxml2mod.xmlValidCtxtNormalizeAttributeValue(ctxt__o, self._o, elem__o, name, value)
4659         return ret
4660
4661     def validNormalizeAttributeValue(self, elem, name, value):
4662         """Does the validation related extra step of the normalization
4663           of attribute values:  If the declared value is not CDATA,
4664           then the XML processor must further process the normalized
4665           attribute value by discarding any leading and trailing
4666           space (#x20) characters, and by replacing sequences of
4667            space (#x20) characters by single space (#x20) character. """
4668         if elem is None: elem__o = None
4669         else: elem__o = elem._o
4670         ret = libxml2mod.xmlValidNormalizeAttributeValue(self._o, elem__o, name, value)
4671         return ret
4672
4673     def validateDocument(self, ctxt):
4674         """Try to validate the document instance  basically it does
4675           the all the checks described by the XML Rec i.e. validates
4676           the internal and external subset (if present) and validate
4677            the document tree. """
4678         if ctxt is None: ctxt__o = None
4679         else: ctxt__o = ctxt._o
4680         ret = libxml2mod.xmlValidateDocument(ctxt__o, self._o)
4681         return ret
4682
4683     def validateDocumentFinal(self, ctxt):
4684         """Does the final step for the document validation once all
4685           the incremental validation steps have been completed 
4686           basically it does the following checks described by the XML
4687           Rec  Check all the IDREF/IDREFS attributes definition for
4688            validity """
4689         if ctxt is None: ctxt__o = None
4690         else: ctxt__o = ctxt._o
4691         ret = libxml2mod.xmlValidateDocumentFinal(ctxt__o, self._o)
4692         return ret
4693
4694     def validateDtd(self, ctxt, dtd):
4695         """Try to validate the document against the dtd instance 
4696           Basically it does check all the definitions in the DtD.
4697           Note the the internal subset (if present) is de-coupled
4698           (i.e. not used), which could give problems if ID or IDREF
4699            is present. """
4700         if ctxt is None: ctxt__o = None
4701         else: ctxt__o = ctxt._o
4702         if dtd is None: dtd__o = None
4703         else: dtd__o = dtd._o
4704         ret = libxml2mod.xmlValidateDtd(ctxt__o, self._o, dtd__o)
4705         return ret
4706
4707     def validateDtdFinal(self, ctxt):
4708         """Does the final step for the dtds validation once all the
4709           subsets have been parsed  basically it does the following
4710           checks described by the XML Rec - check that ENTITY and
4711           ENTITIES type attributes default or possible values matches
4712           one of the defined entities. - check that NOTATION type
4713           attributes default or possible values matches one of the
4714            defined notations. """
4715         if ctxt is None: ctxt__o = None
4716         else: ctxt__o = ctxt._o
4717         ret = libxml2mod.xmlValidateDtdFinal(ctxt__o, self._o)
4718         return ret
4719
4720     def validateElement(self, ctxt, elem):
4721         """Try to validate the subtree under an element """
4722         if ctxt is None: ctxt__o = None
4723         else: ctxt__o = ctxt._o
4724         if elem is None: elem__o = None
4725         else: elem__o = elem._o
4726         ret = libxml2mod.xmlValidateElement(ctxt__o, self._o, elem__o)
4727         return ret
4728
4729     def validateNotationUse(self, ctxt, notationName):
4730         """Validate that the given name match a notation declaration.
4731            - [ VC: Notation Declared ] """
4732         if ctxt is None: ctxt__o = None
4733         else: ctxt__o = ctxt._o
4734         ret = libxml2mod.xmlValidateNotationUse(ctxt__o, self._o, notationName)
4735         return ret
4736
4737     def validateOneAttribute(self, ctxt, elem, attr, value):
4738         """Try to validate a single attribute for an element basically
4739           it does the following checks as described by the XML-1.0
4740           recommendation: - [ VC: Attribute Value Type ] - [ VC:
4741           Fixed Attribute Default ] - [ VC: Entity Name ] - [ VC:
4742           Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC: Entity
4743           Name ] - [ VC: Notation Attributes ]  The ID/IDREF
4744            uniqueness and matching are done separately """
4745         if ctxt is None: ctxt__o = None
4746         else: ctxt__o = ctxt._o
4747         if elem is None: elem__o = None
4748         else: elem__o = elem._o
4749         if attr is None: attr__o = None
4750         else: attr__o = attr._o
4751         ret = libxml2mod.xmlValidateOneAttribute(ctxt__o, self._o, elem__o, attr__o, value)
4752         return ret
4753
4754     def validateOneElement(self, ctxt, elem):
4755         """Try to validate a single element and it's attributes,
4756           basically it does the following checks as described by the
4757           XML-1.0 recommendation: - [ VC: Element Valid ] - [ VC:
4758           Required Attribute ] Then call xmlValidateOneAttribute()
4759           for each attribute present.  The ID/IDREF checkings are
4760            done separately """
4761         if ctxt is None: ctxt__o = None
4762         else: ctxt__o = ctxt._o
4763         if elem is None: elem__o = None
4764         else: elem__o = elem._o
4765         ret = libxml2mod.xmlValidateOneElement(ctxt__o, self._o, elem__o)
4766         return ret
4767
4768     def validateOneNamespace(self, ctxt, elem, prefix, ns, value):
4769         """Try to validate a single namespace declaration for an
4770           element basically it does the following checks as described
4771           by the XML-1.0 recommendation: - [ VC: Attribute Value Type
4772           ] - [ VC: Fixed Attribute Default ] - [ VC: Entity Name ] -
4773           [ VC: Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC:
4774           Entity Name ] - [ VC: Notation Attributes ]  The ID/IDREF
4775            uniqueness and matching are done separately """
4776         if ctxt is None: ctxt__o = None
4777         else: ctxt__o = ctxt._o
4778         if elem is None: elem__o = None
4779         else: elem__o = elem._o
4780         if ns is None: ns__o = None
4781         else: ns__o = ns._o
4782         ret = libxml2mod.xmlValidateOneNamespace(ctxt__o, self._o, elem__o, prefix, ns__o, value)
4783         return ret
4784
4785     def validatePopElement(self, ctxt, elem, qname):
4786         """Pop the element end from the validation stack. """
4787         if ctxt is None: ctxt__o = None
4788         else: ctxt__o = ctxt._o
4789         if elem is None: elem__o = None
4790         else: elem__o = elem._o
4791         ret = libxml2mod.xmlValidatePopElement(ctxt__o, self._o, elem__o, qname)
4792         return ret
4793
4794     def validatePushElement(self, ctxt, elem, qname):
4795         """Push a new element start on the validation stack. """
4796         if ctxt is None: ctxt__o = None
4797         else: ctxt__o = ctxt._o
4798         if elem is None: elem__o = None
4799         else: elem__o = elem._o
4800         ret = libxml2mod.xmlValidatePushElement(ctxt__o, self._o, elem__o, qname)
4801         return ret
4802
4803     def validateRoot(self, ctxt):
4804         """Try to validate a the root element basically it does the
4805           following check as described by the XML-1.0 recommendation:
4806           - [ VC: Root Element Type ] it doesn't try to recurse or
4807            apply other check to the element """
4808         if ctxt is None: ctxt__o = None
4809         else: ctxt__o = ctxt._o
4810         ret = libxml2mod.xmlValidateRoot(ctxt__o, self._o)
4811         return ret
4812
4813     #
4814     # xmlDoc functions from module xinclude
4815     #
4816
4817     def xincludeProcess(self):
4818         """Implement the XInclude substitution on the XML document @doc """
4819         ret = libxml2mod.xmlXIncludeProcess(self._o)
4820         return ret
4821
4822     def xincludeProcessFlags(self, flags):
4823         """Implement the XInclude substitution on the XML document @doc """
4824         ret = libxml2mod.xmlXIncludeProcessFlags(self._o, flags)
4825         return ret
4826
4827     #
4828     # xmlDoc functions from module xmlreader
4829     #
4830
4831     def NewWalker(self, reader):
4832         """Setup an xmltextReader to parse a preparsed XML document.
4833            This reuses the existing @reader xmlTextReader. """
4834         if reader is None: reader__o = None
4835         else: reader__o = reader._o
4836         ret = libxml2mod.xmlReaderNewWalker(reader__o, self._o)
4837         return ret
4838
4839     def readerWalker(self):
4840         """Create an xmltextReader for a preparsed document. """
4841         ret = libxml2mod.xmlReaderWalker(self._o)
4842         if ret is None:raise treeError('xmlReaderWalker() failed')
4843         __tmp = xmlTextReader(_obj=ret)
4844         return __tmp
4845
4846     #
4847     # xmlDoc functions from module xmlschemas
4848     #
4849
4850     def schemaNewDocParserCtxt(self):
4851         """Create an XML Schemas parse context for that document. NB.
4852            The document may be modified during the parsing process. """
4853         ret = libxml2mod.xmlSchemaNewDocParserCtxt(self._o)
4854         if ret is None:raise parserError('xmlSchemaNewDocParserCtxt() failed')
4855         __tmp = SchemaParserCtxt(_obj=ret)
4856         return __tmp
4857
4858     def schemaValidateDoc(self, ctxt):
4859         """Validate a document tree in memory. """
4860         if ctxt is None: ctxt__o = None
4861         else: ctxt__o = ctxt._o
4862         ret = libxml2mod.xmlSchemaValidateDoc(ctxt__o, self._o)
4863         return ret
4864
4865     #
4866     # xmlDoc functions from module xpath
4867     #
4868
4869     def xpathNewContext(self):
4870         """Create a new xmlXPathContext """
4871         ret = libxml2mod.xmlXPathNewContext(self._o)
4872         if ret is None:raise xpathError('xmlXPathNewContext() failed')
4873         __tmp = xpathContext(_obj=ret)
4874         return __tmp
4875
4876     def xpathOrderDocElems(self):
4877         """Call this routine to speed up XPath computation on static
4878           documents. This stamps all the element nodes with the
4879           document order Like for line information, the order is kept
4880           in the element->content field, the value stored is actually
4881           - the node number (starting at -1) to be able to
4882            differentiate from line numbers. """
4883         ret = libxml2mod.xmlXPathOrderDocElems(self._o)
4884         return ret
4885
4886     #
4887     # xmlDoc functions from module xpointer
4888     #
4889
4890     def xpointerNewContext(self, here, origin):
4891         """Create a new XPointer context """
4892         if here is None: here__o = None
4893         else: here__o = here._o
4894         if origin is None: origin__o = None
4895         else: origin__o = origin._o
4896         ret = libxml2mod.xmlXPtrNewContext(self._o, here__o, origin__o)
4897         if ret is None:raise treeError('xmlXPtrNewContext() failed')
4898         __tmp = xpathContext(_obj=ret)
4899         return __tmp
4900
4901 class parserCtxt(parserCtxtCore):
4902     def __init__(self, _obj=None):
4903         self._o = _obj
4904         parserCtxtCore.__init__(self, _obj=_obj)
4905
4906     def __del__(self):
4907         if self._o != None:
4908             libxml2mod.xmlFreeParserCtxt(self._o)
4909         self._o = None
4910
4911     # accessors for parserCtxt
4912     def doc(self):
4913         """Get the document tree from a parser context. """
4914         ret = libxml2mod.xmlParserGetDoc(self._o)
4915         if ret is None:raise parserError('xmlParserGetDoc() failed')
4916         __tmp = xmlDoc(_obj=ret)
4917         return __tmp
4918
4919     def isValid(self):
4920         """Get the validity information from a parser context. """
4921         ret = libxml2mod.xmlParserGetIsValid(self._o)
4922         return ret
4923
4924     def lineNumbers(self, linenumbers):
4925         """Switch on the generation of line number for elements nodes. """
4926         libxml2mod.xmlParserSetLineNumbers(self._o, linenumbers)
4927
4928     def loadSubset(self, loadsubset):
4929         """Switch the parser to load the DTD without validating. """
4930         libxml2mod.xmlParserSetLoadSubset(self._o, loadsubset)
4931
4932     def pedantic(self, pedantic):
4933         """Switch the parser to be pedantic. """
4934         libxml2mod.xmlParserSetPedantic(self._o, pedantic)
4935
4936     def replaceEntities(self, replaceEntities):
4937         """Switch the parser to replace entities. """
4938         libxml2mod.xmlParserSetReplaceEntities(self._o, replaceEntities)
4939
4940     def validate(self, validate):
4941         """Switch the parser to validation mode. """
4942         libxml2mod.xmlParserSetValidate(self._o, validate)
4943
4944     def wellFormed(self):
4945         """Get the well formed information from a parser context. """
4946         ret = libxml2mod.xmlParserGetWellFormed(self._o)
4947         return ret
4948
4949     #
4950     # parserCtxt functions from module HTMLparser
4951     #
4952
4953     def htmlCtxtReadDoc(self, cur, URL, encoding, options):
4954         """parse an XML in-memory document and build a tree. This
4955            reuses the existing @ctxt parser context """
4956         ret = libxml2mod.htmlCtxtReadDoc(self._o, cur, URL, encoding, options)
4957         if ret is None:raise treeError('htmlCtxtReadDoc() failed')
4958         __tmp = xmlDoc(_obj=ret)
4959         return __tmp
4960
4961     def htmlCtxtReadFd(self, fd, URL, encoding, options):
4962         """parse an XML from a file descriptor and build a tree. This
4963            reuses the existing @ctxt parser context """
4964         ret = libxml2mod.htmlCtxtReadFd(self._o, fd, URL, encoding, options)
4965         if ret is None:raise treeError('htmlCtxtReadFd() failed')
4966         __tmp = xmlDoc(_obj=ret)
4967         return __tmp
4968
4969     def htmlCtxtReadFile(self, filename, encoding, options):
4970         """parse an XML file from the filesystem or the network. This
4971            reuses the existing @ctxt parser context """
4972         ret = libxml2mod.htmlCtxtReadFile(self._o, filename, encoding, options)
4973         if ret is None:raise treeError('htmlCtxtReadFile() failed')
4974         __tmp = xmlDoc(_obj=ret)
4975         return __tmp
4976
4977     def htmlCtxtReadMemory(self, buffer, size, URL, encoding, options):
4978         """parse an XML in-memory document and build a tree. This
4979            reuses the existing @ctxt parser context """
4980         ret = libxml2mod.htmlCtxtReadMemory(self._o, buffer, size, URL, encoding, options)
4981         if ret is None:raise treeError('htmlCtxtReadMemory() failed')
4982         __tmp = xmlDoc(_obj=ret)
4983         return __tmp
4984
4985     def htmlCtxtReset(self):
4986         """Reset a parser context """
4987         libxml2mod.htmlCtxtReset(self._o)
4988
4989     def htmlCtxtUseOptions(self, options):
4990         """Applies the options to the parser context """
4991         ret = libxml2mod.htmlCtxtUseOptions(self._o, options)
4992         return ret
4993
4994     def htmlFreeParserCtxt(self):
4995         """Free all the memory used by a parser context. However the
4996            parsed document in ctxt->myDoc is not freed. """
4997         libxml2mod.htmlFreeParserCtxt(self._o)
4998
4999     def htmlParseCharRef(self):
5000         """parse Reference declarations  [66] CharRef ::= '&#' [0-9]+
5001            ';' | '&#x' [0-9a-fA-F]+ ';' """
5002         ret = libxml2mod.htmlParseCharRef(self._o)
5003         return ret
5004
5005     def htmlParseChunk(self, chunk, size, terminate):
5006         """Parse a Chunk of memory """
5007         ret = libxml2mod.htmlParseChunk(self._o, chunk, size, terminate)
5008         return ret
5009
5010     def htmlParseDocument(self):
5011         """parse an HTML document (and build a tree if using the
5012            standard SAX interface). """
5013         ret = libxml2mod.htmlParseDocument(self._o)
5014         return ret
5015
5016     def htmlParseElement(self):
5017         """parse an HTML element, this is highly recursive this is
5018           kept for compatibility with previous code versions  [39]
5019           element ::= EmptyElemTag | STag content ETag  [41]
5020            Attribute ::= Name Eq AttValue """
5021         libxml2mod.htmlParseElement(self._o)
5022
5023     #
5024     # parserCtxt functions from module parser
5025     #
5026
5027     def byteConsumed(self):
5028         """This function provides the current index of the parser
5029           relative to the start of the current entity. This function
5030           is computed in bytes from the beginning starting at zero
5031           and finishing at the size in byte of the file if parsing a
5032           file. The function is of constant cost if the input is
5033            UTF-8 but can be costly if run on non-UTF-8 input. """
5034         ret = libxml2mod.xmlByteConsumed(self._o)
5035         return ret
5036
5037     def clearParserCtxt(self):
5038         """Clear (release owned resources) and reinitialize a parser
5039            context """
5040         libxml2mod.xmlClearParserCtxt(self._o)
5041
5042     def ctxtReadDoc(self, cur, URL, encoding, options):
5043         """parse an XML in-memory document and build a tree. This
5044            reuses the existing @ctxt parser context """
5045         ret = libxml2mod.xmlCtxtReadDoc(self._o, cur, URL, encoding, options)
5046         if ret is None:raise treeError('xmlCtxtReadDoc() failed')
5047         __tmp = xmlDoc(_obj=ret)
5048         return __tmp
5049
5050     def ctxtReadFd(self, fd, URL, encoding, options):
5051         """parse an XML from a file descriptor and build a tree. This
5052           reuses the existing @ctxt parser context NOTE that the file
5053           descriptor will not be closed when the reader is closed or
5054            reset. """
5055         ret = libxml2mod.xmlCtxtReadFd(self._o, fd, URL, encoding, options)
5056         if ret is None:raise treeError('xmlCtxtReadFd() failed')
5057         __tmp = xmlDoc(_obj=ret)
5058         return __tmp
5059
5060     def ctxtReadFile(self, filename, encoding, options):
5061         """parse an XML file from the filesystem or the network. This
5062            reuses the existing @ctxt parser context """
5063         ret = libxml2mod.xmlCtxtReadFile(self._o, filename, encoding, options)
5064         if ret is None:raise treeError('xmlCtxtReadFile() failed')
5065         __tmp = xmlDoc(_obj=ret)
5066         return __tmp
5067
5068     def ctxtReadMemory(self, buffer, size, URL, encoding, options):
5069         """parse an XML in-memory document and build a tree. This
5070            reuses the existing @ctxt parser context """
5071         ret = libxml2mod.xmlCtxtReadMemory(self._o, buffer, size, URL, encoding, options)
5072         if ret is None:raise treeError('xmlCtxtReadMemory() failed')
5073         __tmp = xmlDoc(_obj=ret)
5074         return __tmp
5075
5076     def ctxtReset(self):
5077         """Reset a parser context """
5078         libxml2mod.xmlCtxtReset(self._o)
5079
5080     def ctxtResetPush(self, chunk, size, filename, encoding):
5081         """Reset a push parser context """
5082         ret = libxml2mod.xmlCtxtResetPush(self._o, chunk, size, filename, encoding)
5083         return ret
5084
5085     def ctxtUseOptions(self, options):
5086         """Applies the options to the parser context """
5087         ret = libxml2mod.xmlCtxtUseOptions(self._o, options)
5088         return ret
5089
5090     def initParserCtxt(self):
5091         """Initialize a parser context """
5092         ret = libxml2mod.xmlInitParserCtxt(self._o)
5093         return ret
5094
5095     def parseChunk(self, chunk, size, terminate):
5096         """Parse a Chunk of memory """
5097         ret = libxml2mod.xmlParseChunk(self._o, chunk, size, terminate)
5098         return ret
5099
5100     def parseDocument(self):
5101         """parse an XML document (and build a tree if using the
5102           standard SAX interface).  [1] document ::= prolog element
5103            Misc*  [22] prolog ::= XMLDecl? Misc* (doctypedecl Misc*)? """
5104         ret = libxml2mod.xmlParseDocument(self._o)
5105         return ret
5106
5107     def parseExtParsedEnt(self):
5108         """parse a general parsed entity An external general parsed
5109           entity is well-formed if it matches the production labeled
5110            extParsedEnt.  [78] extParsedEnt ::= TextDecl? content """
5111         ret = libxml2mod.xmlParseExtParsedEnt(self._o)
5112         return ret
5113
5114     def setupParserForBuffer(self, buffer, filename):
5115         """Setup the parser context to parse a new buffer; Clears any
5116           prior contents from the parser context. The buffer
5117           parameter must not be None, but the filename parameter can
5118            be """
5119         libxml2mod.xmlSetupParserForBuffer(self._o, buffer, filename)
5120
5121     def stopParser(self):
5122         """Blocks further parser processing """
5123         libxml2mod.xmlStopParser(self._o)
5124
5125     #
5126     # parserCtxt functions from module parserInternals
5127     #
5128
5129     def decodeEntities(self, len, what, end, end2, end3):
5130         """This function is deprecated, we now always process entities
5131           content through xmlStringDecodeEntities  TODO: remove it in
5132           next major release.  [67] Reference ::= EntityRef | CharRef
5133             [69] PEReference ::= '%' Name ';' """
5134         ret = libxml2mod.xmlDecodeEntities(self._o, len, what, end, end2, end3)
5135         return ret
5136
5137     def handleEntity(self, entity):
5138         """Default handling of defined entities, when should we define
5139           a new input stream ? When do we just handle that as a set
5140            of chars ?  OBSOLETE: to be removed at some point. """
5141         if entity is None: entity__o = None
5142         else: entity__o = entity._o
5143         libxml2mod.xmlHandleEntity(self._o, entity__o)
5144
5145     def namespaceParseNCName(self):
5146         """parse an XML namespace name.  TODO: this seems not in use
5147           anymore, the namespace handling is done on top of the SAX
5148           interfaces, i.e. not on raw input.  [NS 3] NCName ::=
5149           (Letter | '_') (NCNameChar)*  [NS 4] NCNameChar ::= Letter
5150            | Digit | '.' | '-' | '_' | CombiningChar | Extender """
5151         ret = libxml2mod.xmlNamespaceParseNCName(self._o)
5152         return ret
5153
5154     def namespaceParseNSDef(self):
5155         """parse a namespace prefix declaration  TODO: this seems not
5156           in use anymore, the namespace handling is done on top of
5157           the SAX interfaces, i.e. not on raw input.  [NS 1] NSDef
5158           ::= PrefixDef Eq SystemLiteral  [NS 2] PrefixDef ::=
5159            'xmlns' (':' NCName)? """
5160         ret = libxml2mod.xmlNamespaceParseNSDef(self._o)
5161         return ret
5162
5163     def nextChar(self):
5164         """Skip to the next char input char. """
5165         libxml2mod.xmlNextChar(self._o)
5166
5167     def parseAttValue(self):
5168         """parse a value for an attribute Note: the parser won't do
5169           substitution of entities here, this will be handled later
5170           in xmlStringGetNodeList  [10] AttValue ::= '"' ([^<&"] |
5171           Reference)* '"' | "'" ([^<&'] | Reference)* "'"  3.3.3
5172           Attribute-Value Normalization: Before the value of an
5173           attribute is passed to the application or checked for
5174           validity, the XML processor must normalize it as follows: -
5175           a character reference is processed by appending the
5176           referenced character to the attribute value - an entity
5177           reference is processed by recursively processing the
5178           replacement text of the entity - a whitespace character
5179           (#x20, #xD, #xA, #x9) is processed by appending #x20 to the
5180           normalized value, except that only a single #x20 is
5181           appended for a "#xD#xA" sequence that is part of an
5182           external parsed entity or the literal entity value of an
5183           internal parsed entity - other characters are processed by
5184           appending them to the normalized value If the declared
5185           value is not CDATA, then the XML processor must further
5186           process the normalized attribute value by discarding any
5187           leading and trailing space (#x20) characters, and by
5188           replacing sequences of space (#x20) characters by a single
5189           space (#x20) character. All attributes for which no
5190           declaration has been read should be treated by a
5191            non-validating parser as if declared CDATA. """
5192         ret = libxml2mod.xmlParseAttValue(self._o)
5193         return ret
5194
5195     def parseAttributeListDecl(self):
5196         """: parse the Attribute list def for an element  [52]
5197           AttlistDecl ::= '<!ATTLIST' S Name AttDef* S? '>'  [53]
5198            AttDef ::= S Name S AttType S DefaultDecl """
5199         libxml2mod.xmlParseAttributeListDecl(self._o)
5200
5201     def parseCDSect(self):
5202         """Parse escaped pure raw content.  [18] CDSect ::= CDStart
5203           CData CDEnd  [19] CDStart ::= '<![CDATA['  [20] Data ::=
5204            (Char* - (Char* ']]>' Char*))  [21] CDEnd ::= ']]>' """
5205         libxml2mod.xmlParseCDSect(self._o)
5206
5207     def parseCharData(self, cdata):
5208         """parse a CharData section. if we are within a CDATA section
5209           ']]>' marks an end of section.  The right angle bracket (>)
5210           may be represented using the string "&gt;", and must, for
5211           compatibility, be escaped using "&gt;" or a character
5212           reference when it appears in the string "]]>" in content,
5213           when that string is not marking the end of a CDATA section.
5214             [14] CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*) """
5215         libxml2mod.xmlParseCharData(self._o, cdata)
5216
5217     def parseCharRef(self):
5218         """parse Reference declarations  [66] CharRef ::= '&#' [0-9]+
5219           ';' | '&#x' [0-9a-fA-F]+ ';'  [ WFC: Legal Character ]
5220           Characters referred to using character references must
5221            match the production for Char. """
5222         ret = libxml2mod.xmlParseCharRef(self._o)
5223         return ret
5224
5225     def parseComment(self):
5226         """Skip an XML (SGML) comment <!-- .... --> The spec says that
5227           "For compatibility, the string "--" (double-hyphen) must
5228           not occur within comments. "  [15] Comment ::= '<!--'
5229            ((Char - '-') | ('-' (Char - '-')))* '-->' """
5230         libxml2mod.xmlParseComment(self._o)
5231
5232     def parseContent(self):
5233         """Parse a content:  [43] content ::= (element | CharData |
5234            Reference | CDSect | PI | Comment)* """
5235         libxml2mod.xmlParseContent(self._o)
5236
5237     def parseDocTypeDecl(self):
5238         """parse a DOCTYPE declaration  [28] doctypedecl ::=
5239           '<!DOCTYPE' S Name (S ExternalID)? S? ('[' (markupdecl |
5240           PEReference | S)* ']' S?)? '>'  [ VC: Root Element Type ]
5241           The Name in the document type declaration must match the
5242            element type of the root element. """
5243         libxml2mod.xmlParseDocTypeDecl(self._o)
5244
5245     def parseElement(self):
5246         """parse an XML element, this is highly recursive  [39]
5247           element ::= EmptyElemTag | STag content ETag  [ WFC:
5248           Element Type Match ] The Name in an element's end-tag must
5249            match the element type in the start-tag. """
5250         libxml2mod.xmlParseElement(self._o)
5251
5252     def parseElementDecl(self):
5253         """parse an Element declaration.  [45] elementdecl ::=
5254           '<!ELEMENT' S Name S contentspec S? '>'  [ VC: Unique
5255           Element Type Declaration ] No element type may be declared
5256            more than once """
5257         ret = libxml2mod.xmlParseElementDecl(self._o)
5258         return ret
5259
5260     def parseEncName(self):
5261         """parse the XML encoding name  [81] EncName ::= [A-Za-z]
5262            ([A-Za-z0-9._] | '-')* """
5263         ret = libxml2mod.xmlParseEncName(self._o)
5264         return ret
5265
5266     def parseEncodingDecl(self):
5267         """parse the XML encoding declaration  [80] EncodingDecl ::= S
5268           'encoding' Eq ('"' EncName '"' |  "'" EncName "'")  this
5269            setups the conversion filters. """
5270         ret = libxml2mod.xmlParseEncodingDecl(self._o)
5271         return ret
5272
5273     def parseEndTag(self):
5274         """parse an end of tag  [42] ETag ::= '</' Name S? '>'  With
5275            namespace  [NS 9] ETag ::= '</' QName S? '>' """
5276         libxml2mod.xmlParseEndTag(self._o)
5277
5278     def parseEntityDecl(self):
5279         """parse <!ENTITY declarations  [70] EntityDecl ::= GEDecl |
5280           PEDecl  [71] GEDecl ::= '<!ENTITY' S Name S EntityDef S?
5281           '>'  [72] PEDecl ::= '<!ENTITY' S '%' S Name S PEDef S? '>'
5282           [73] EntityDef ::= EntityValue | (ExternalID NDataDecl?) 
5283           [74] PEDef ::= EntityValue | ExternalID  [76] NDataDecl ::=
5284           S 'NDATA' S Name  [ VC: Notation Declared ] The Name must
5285            match the declared name of a notation. """
5286         libxml2mod.xmlParseEntityDecl(self._o)
5287
5288     def parseEntityRef(self):
5289         """parse ENTITY references declarations  [68] EntityRef ::=
5290           '&' Name ';'  [ WFC: Entity Declared ] In a document
5291           without any DTD, a document with only an internal DTD
5292           subset which contains no parameter entity references, or a
5293           document with "standalone='yes'", the Name given in the
5294           entity reference must match that in an entity declaration,
5295           except that well-formed documents need not declare any of
5296           the following entities: amp, lt, gt, apos, quot.  The
5297           declaration of a parameter entity must precede any
5298           reference to it.  Similarly, the declaration of a general
5299           entity must precede any reference to it which appears in a
5300           default value in an attribute-list declaration. Note that
5301           if entities are declared in the external subset or in
5302           external parameter entities, a non-validating processor is
5303           not obligated to read and process their declarations; for
5304           such documents, the rule that an entity must be declared is
5305           a well-formedness constraint only if standalone='yes'.  [
5306           WFC: Parsed Entity ] An entity reference must not contain
5307            the name of an unparsed entity """
5308         ret = libxml2mod.xmlParseEntityRef(self._o)
5309         if ret is None:raise parserError('xmlParseEntityRef() failed')
5310         __tmp = xmlEntity(_obj=ret)
5311         return __tmp
5312
5313     def parseExternalSubset(self, ExternalID, SystemID):
5314         """parse Markup declarations from an external subset  [30]
5315           extSubset ::= textDecl? extSubsetDecl  [31] extSubsetDecl
5316            ::= (markupdecl | conditionalSect | PEReference | S) * """
5317         libxml2mod.xmlParseExternalSubset(self._o, ExternalID, SystemID)
5318
5319     def parseMarkupDecl(self):
5320         """parse Markup declarations  [29] markupdecl ::= elementdecl
5321           | AttlistDecl | EntityDecl | NotationDecl | PI | Comment  [
5322           VC: Proper Declaration/PE Nesting ] Parameter-entity
5323           replacement text must be properly nested with markup
5324           declarations. That is to say, if either the first character
5325           or the last character of a markup declaration (markupdecl
5326           above) is contained in the replacement text for a
5327           parameter-entity reference, both must be contained in the
5328           same replacement text.  [ WFC: PEs in Internal Subset ] In
5329           the internal DTD subset, parameter-entity references can
5330           occur only where markup declarations can occur, not within
5331           markup declarations. (This does not apply to references
5332           that occur in external parameter entities or to the
5333            external subset.) """
5334         libxml2mod.xmlParseMarkupDecl(self._o)
5335
5336     def parseMisc(self):
5337         """parse an XML Misc* optional field.  [27] Misc ::= Comment |
5338            PI |  S """
5339         libxml2mod.xmlParseMisc(self._o)
5340
5341     def parseName(self):
5342         """parse an XML name.  [4] NameChar ::= Letter | Digit | '.' |
5343           '-' | '_' | ':' | CombiningChar | Extender  [5] Name ::=
5344           (Letter | '_' | ':') (NameChar)*  [6] Names ::= Name (#x20
5345            Name)* """
5346         ret = libxml2mod.xmlParseName(self._o)
5347         return ret
5348
5349     def parseNamespace(self):
5350         """xmlParseNamespace: parse specific PI '<?namespace ...'
5351           constructs.  This is what the older xml-name Working Draft
5352           specified, a bunch of other stuff may still rely on it, so
5353           support is still here as if it was declared on the root of
5354           the Tree:-(  TODO: remove from library  To be removed at
5355            next drop of binary compatibility """
5356         libxml2mod.xmlParseNamespace(self._o)
5357
5358     def parseNmtoken(self):
5359         """parse an XML Nmtoken.  [7] Nmtoken ::= (NameChar)+  [8]
5360            Nmtokens ::= Nmtoken (#x20 Nmtoken)* """
5361         ret = libxml2mod.xmlParseNmtoken(self._o)
5362         return ret
5363
5364     def parseNotationDecl(self):
5365         """parse a notation declaration  [82] NotationDecl ::=
5366           '<!NOTATION' S Name S (ExternalID |  PublicID) S? '>' 
5367           Hence there is actually 3 choices: 'PUBLIC' S PubidLiteral
5368           'PUBLIC' S PubidLiteral S SystemLiteral and 'SYSTEM' S
5369            SystemLiteral  See the NOTE on xmlParseExternalID(). """
5370         libxml2mod.xmlParseNotationDecl(self._o)
5371
5372     def parsePEReference(self):
5373         """parse PEReference declarations The entity content is
5374           handled directly by pushing it's content as a new input
5375           stream.  [69] PEReference ::= '%' Name ';'  [ WFC: No
5376           Recursion ] A parsed entity must not contain a recursive
5377           reference to itself, either directly or indirectly.  [ WFC:
5378           Entity Declared ] In a document without any DTD, a document
5379           with only an internal DTD subset which contains no
5380           parameter entity references, or a document with
5381           "standalone='yes'", ...  ... The declaration of a parameter
5382           entity must precede any reference to it...  [ VC: Entity
5383           Declared ] In a document with an external subset or
5384           external parameter entities with "standalone='no'", ... 
5385           ... The declaration of a parameter entity must precede any
5386           reference to it...  [ WFC: In DTD ] Parameter-entity
5387           references may only appear in the DTD. NOTE: misleading but
5388            this is handled. """
5389         libxml2mod.xmlParsePEReference(self._o)
5390
5391     def parsePI(self):
5392         """parse an XML Processing Instruction.  [16] PI ::= '<?'
5393           PITarget (S (Char* - (Char* '?>' Char*)))? '?>'  The
5394            processing is transfered to SAX once parsed. """
5395         libxml2mod.xmlParsePI(self._o)
5396
5397     def parsePITarget(self):
5398         """parse the name of a PI  [17] PITarget ::= Name - (('X' |
5399            'x') ('M' | 'm') ('L' | 'l')) """
5400         ret = libxml2mod.xmlParsePITarget(self._o)
5401         return ret
5402
5403     def parsePubidLiteral(self):
5404         """parse an XML public literal  [12] PubidLiteral ::= '"'
5405            PubidChar* '"' | "'" (PubidChar - "'")* "'" """
5406         ret = libxml2mod.xmlParsePubidLiteral(self._o)
5407         return ret
5408
5409     def parseQuotedString(self):
5410         """Parse and return a string between quotes or doublequotes 
5411           TODO: Deprecated, to  be removed at next drop of binary
5412            compatibility """
5413         ret = libxml2mod.xmlParseQuotedString(self._o)
5414         return ret
5415
5416     def parseReference(self):
5417         """parse and handle entity references in content, depending on
5418           the SAX interface, this may end-up in a call to character()
5419           if this is a CharRef, a predefined entity, if there is no
5420           reference() callback. or if the parser was asked to switch
5421            to that mode.  [67] Reference ::= EntityRef | CharRef """
5422         libxml2mod.xmlParseReference(self._o)
5423
5424     def parseSDDecl(self):
5425         """parse the XML standalone declaration  [32] SDDecl ::= S
5426           'standalone' Eq (("'" ('yes' | 'no') "'") | ('"' ('yes' |
5427           'no')'"'))  [ VC: Standalone Document Declaration ] TODO
5428           The standalone document declaration must have the value
5429           "no" if any external markup declarations contain
5430           declarations of: - attributes with default values, if
5431           elements to which these attributes apply appear in the
5432           document without specifications of values for these
5433           attributes, or - entities (other than amp, lt, gt, apos,
5434           quot), if references to those entities appear in the
5435           document, or - attributes with values subject to
5436           normalization, where the attribute appears in the document
5437           with a value which will change as a result of
5438           normalization, or - element types with element content, if
5439           white space occurs directly within any instance of those
5440            types. """
5441         ret = libxml2mod.xmlParseSDDecl(self._o)
5442         return ret
5443
5444     def parseStartTag(self):
5445         """parse a start of tag either for rule element or
5446           EmptyElement. In both case we don't parse the tag closing
5447           chars.  [40] STag ::= '<' Name (S Attribute)* S? '>'  [
5448           WFC: Unique Att Spec ] No attribute name may appear more
5449           than once in the same start-tag or empty-element tag.  [44]
5450           EmptyElemTag ::= '<' Name (S Attribute)* S? '/>'  [ WFC:
5451           Unique Att Spec ] No attribute name may appear more than
5452           once in the same start-tag or empty-element tag.  With
5453           namespace:  [NS 8] STag ::= '<' QName (S Attribute)* S? '>'
5454             [NS 10] EmptyElement ::= '<' QName (S Attribute)* S? '/>' """
5455         ret = libxml2mod.xmlParseStartTag(self._o)
5456         return ret
5457
5458     def parseSystemLiteral(self):
5459         """parse an XML Literal  [11] SystemLiteral ::= ('"' [^"]*
5460            '"') | ("'" [^']* "'") """
5461         ret = libxml2mod.xmlParseSystemLiteral(self._o)
5462         return ret
5463
5464     def parseTextDecl(self):
5465         """parse an XML declaration header for external entities  [77]
5466            TextDecl ::= '<?xml' VersionInfo? EncodingDecl S? '?>' """
5467         libxml2mod.xmlParseTextDecl(self._o)
5468
5469     def parseVersionInfo(self):
5470         """parse the XML version.  [24] VersionInfo ::= S 'version' Eq
5471            (' VersionNum ' | " VersionNum ")  [25] Eq ::= S? '=' S? """
5472         ret = libxml2mod.xmlParseVersionInfo(self._o)
5473         return ret
5474
5475     def parseVersionNum(self):
5476         """parse the XML version value.  [26] VersionNum ::= '1.'
5477            [0-9]+  In practice allow [0-9].[0-9]+ at that level """
5478         ret = libxml2mod.xmlParseVersionNum(self._o)
5479         return ret
5480
5481     def parseXMLDecl(self):
5482         """parse an XML declaration header  [23] XMLDecl ::= '<?xml'
5483            VersionInfo EncodingDecl? SDDecl? S? '?>' """
5484         libxml2mod.xmlParseXMLDecl(self._o)
5485
5486     def parserHandlePEReference(self):
5487         """[69] PEReference ::= '%' Name ';'  [ WFC: No Recursion ] A
5488           parsed entity must not contain a recursive reference to
5489           itself, either directly or indirectly.  [ WFC: Entity
5490           Declared ] In a document without any DTD, a document with
5491           only an internal DTD subset which contains no parameter
5492           entity references, or a document with "standalone='yes'",
5493           ...  ... The declaration of a parameter entity must precede
5494           any reference to it...  [ VC: Entity Declared ] In a
5495           document with an external subset or external parameter
5496           entities with "standalone='no'", ...  ... The declaration
5497           of a parameter entity must precede any reference to it... 
5498           [ WFC: In DTD ] Parameter-entity references may only appear
5499           in the DTD. NOTE: misleading but this is handled.  A
5500           PEReference may have been detected in the current input
5501           stream the handling is done accordingly to
5502           http://www.w3.org/TR/REC-xml#entproc i.e. - Included in
5503           literal in entity values - Included as Parameter Entity
5504            reference within DTDs """
5505         libxml2mod.xmlParserHandlePEReference(self._o)
5506
5507     def parserHandleReference(self):
5508         """TODO: Remove, now deprecated ... the test is done directly
5509           in the content parsing routines.  [67] Reference ::=
5510           EntityRef | CharRef  [68] EntityRef ::= '&' Name ';'  [
5511           WFC: Entity Declared ] the Name given in the entity
5512           reference must match that in an entity declaration, except
5513           that well-formed documents need not declare any of the
5514           following entities: amp, lt, gt, apos, quot.  [ WFC: Parsed
5515           Entity ] An entity reference must not contain the name of
5516           an unparsed entity  [66] CharRef ::= '&#' [0-9]+ ';' |
5517           '&#x' [0-9a-fA-F]+ ';'  A PEReference may have been
5518           detected in the current input stream the handling is done
5519            accordingly to http://www.w3.org/TR/REC-xml#entproc """
5520         libxml2mod.xmlParserHandleReference(self._o)
5521
5522     def popInput(self):
5523         """xmlPopInput: the current input pointed by ctxt->input came
5524            to an end pop it and return the next char. """
5525         ret = libxml2mod.xmlPopInput(self._o)
5526         return ret
5527
5528     def scanName(self):
5529         """Trickery: parse an XML name but without consuming the input
5530           flow Needed for rollback cases. Used only when parsing
5531           entities references.  TODO: seems deprecated now, only used
5532           in the default part of xmlParserHandleReference  [4]
5533           NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' |
5534           CombiningChar | Extender  [5] Name ::= (Letter | '_' | ':')
5535            (NameChar)*  [6] Names ::= Name (S Name)* """
5536         ret = libxml2mod.xmlScanName(self._o)
5537         return ret
5538
5539     def skipBlankChars(self):
5540         """skip all blanks character found at that point in the input
5541           streams. It pops up finished entities in the process if
5542            allowable at that point. """
5543         ret = libxml2mod.xmlSkipBlankChars(self._o)
5544         return ret
5545
5546     def stringDecodeEntities(self, str, what, end, end2, end3):
5547         """Takes a entity string content and process to do the
5548           adequate substitutions.  [67] Reference ::= EntityRef |
5549            CharRef  [69] PEReference ::= '%' Name ';' """
5550         ret = libxml2mod.xmlStringDecodeEntities(self._o, str, what, end, end2, end3)
5551         return ret
5552
5553     def stringLenDecodeEntities(self, str, len, what, end, end2, end3):
5554         """Takes a entity string content and process to do the
5555           adequate substitutions.  [67] Reference ::= EntityRef |
5556            CharRef  [69] PEReference ::= '%' Name ';' """
5557         ret = libxml2mod.xmlStringLenDecodeEntities(self._o, str, len, what, end, end2, end3)
5558         return ret
5559
5560 class xmlAttr(xmlNode):
5561     def __init__(self, _obj=None):
5562         if checkWrapper(_obj) != 0:            raise TypeError('xmlAttr got a wrong wrapper object type')
5563         self._o = _obj
5564         xmlNode.__init__(self, _obj=_obj)
5565
5566     def __repr__(self):
5567         return "<xmlAttr (%s) object at 0x%x>" % (self.name, int(pos_id (self)))
5568
5569     #
5570     # xmlAttr functions from module debugXML
5571     #
5572
5573     def debugDumpAttr(self, output, depth):
5574         """Dumps debug information for the attribute """
5575         libxml2mod.xmlDebugDumpAttr(output, self._o, depth)
5576
5577     def debugDumpAttrList(self, output, depth):
5578         """Dumps debug information for the attribute list """
5579         libxml2mod.xmlDebugDumpAttrList(output, self._o, depth)
5580
5581     #
5582     # xmlAttr functions from module tree
5583     #
5584
5585     def copyProp(self, target):
5586         """Do a copy of the attribute. """
5587         if target is None: target__o = None
5588         else: target__o = target._o
5589         ret = libxml2mod.xmlCopyProp(target__o, self._o)
5590         if ret is None:raise treeError('xmlCopyProp() failed')
5591         __tmp = xmlAttr(_obj=ret)
5592         return __tmp
5593
5594     def copyPropList(self, target):
5595         """Do a copy of an attribute list. """
5596         if target is None: target__o = None
5597         else: target__o = target._o
5598         ret = libxml2mod.xmlCopyPropList(target__o, self._o)
5599         if ret is None:raise treeError('xmlCopyPropList() failed')
5600         __tmp = xmlAttr(_obj=ret)
5601         return __tmp
5602
5603     def freeProp(self):
5604         """Free one attribute, all the content is freed too """
5605         libxml2mod.xmlFreeProp(self._o)
5606
5607     def freePropList(self):
5608         """Free a property and all its siblings, all the children are
5609            freed too. """
5610         libxml2mod.xmlFreePropList(self._o)
5611
5612     def removeProp(self):
5613         """Unlink and free one attribute, all the content is freed too
5614            Note this doesn't work for namespace definition attributes """
5615         ret = libxml2mod.xmlRemoveProp(self._o)
5616         return ret
5617
5618     #
5619     # xmlAttr functions from module valid
5620     #
5621
5622     def removeID(self, doc):
5623         """Remove the given attribute from the ID table maintained
5624            internally. """
5625         if doc is None: doc__o = None
5626         else: doc__o = doc._o
5627         ret = libxml2mod.xmlRemoveID(doc__o, self._o)
5628         return ret
5629
5630     def removeRef(self, doc):
5631         """Remove the given attribute from the Ref table maintained
5632            internally. """
5633         if doc is None: doc__o = None
5634         else: doc__o = doc._o
5635         ret = libxml2mod.xmlRemoveRef(doc__o, self._o)
5636         return ret
5637
5638 class xmlAttribute(xmlNode):
5639     def __init__(self, _obj=None):
5640         if checkWrapper(_obj) != 0:            raise TypeError('xmlAttribute got a wrong wrapper object type')
5641         self._o = _obj
5642         xmlNode.__init__(self, _obj=_obj)
5643
5644     def __repr__(self):
5645         return "<xmlAttribute (%s) object at 0x%x>" % (self.name, int(pos_id (self)))
5646
5647 class catalog:
5648     def __init__(self, _obj=None):
5649         if _obj != None:self._o = _obj;return
5650         self._o = None
5651
5652     def __del__(self):
5653         if self._o != None:
5654             libxml2mod.xmlFreeCatalog(self._o)
5655         self._o = None
5656
5657     #
5658     # catalog functions from module catalog
5659     #
5660
5661     def add(self, type, orig, replace):
5662         """Add an entry in the catalog, it may overwrite existing but
5663            different entries. """
5664         ret = libxml2mod.xmlACatalogAdd(self._o, type, orig, replace)
5665         return ret
5666
5667     def catalogIsEmpty(self):
5668         """Check is a catalog is empty """
5669         ret = libxml2mod.xmlCatalogIsEmpty(self._o)
5670         return ret
5671
5672     def convertSGMLCatalog(self):
5673         """Convert all the SGML catalog entries as XML ones """
5674         ret = libxml2mod.xmlConvertSGMLCatalog(self._o)
5675         return ret
5676
5677     def dump(self, out):
5678         """Dump the given catalog to the given file. """
5679         libxml2mod.xmlACatalogDump(self._o, out)
5680
5681     def remove(self, value):
5682         """Remove an entry from the catalog """
5683         ret = libxml2mod.xmlACatalogRemove(self._o, value)
5684         return ret
5685
5686     def resolve(self, pubID, sysID):
5687         """Do a complete resolution lookup of an External Identifier """
5688         ret = libxml2mod.xmlACatalogResolve(self._o, pubID, sysID)
5689         return ret
5690
5691     def resolvePublic(self, pubID):
5692         """Try to lookup the catalog local reference associated to a
5693            public ID in that catalog """
5694         ret = libxml2mod.xmlACatalogResolvePublic(self._o, pubID)
5695         return ret
5696
5697     def resolveSystem(self, sysID):
5698         """Try to lookup the catalog resource for a system ID """
5699         ret = libxml2mod.xmlACatalogResolveSystem(self._o, sysID)
5700         return ret
5701
5702     def resolveURI(self, URI):
5703         """Do a complete resolution lookup of an URI """
5704         ret = libxml2mod.xmlACatalogResolveURI(self._o, URI)
5705         return ret
5706
5707 class xmlDtd(xmlNode):
5708     def __init__(self, _obj=None):
5709         if checkWrapper(_obj) != 0:            raise TypeError('xmlDtd got a wrong wrapper object type')
5710         self._o = _obj
5711         xmlNode.__init__(self, _obj=_obj)
5712
5713     def __repr__(self):
5714         return "<xmlDtd (%s) object at 0x%x>" % (self.name, int(pos_id (self)))
5715
5716     #
5717     # xmlDtd functions from module debugXML
5718     #
5719
5720     def debugDumpDTD(self, output):
5721         """Dumps debug information for the DTD """
5722         libxml2mod.xmlDebugDumpDTD(output, self._o)
5723
5724     #
5725     # xmlDtd functions from module tree
5726     #
5727
5728     def copyDtd(self):
5729         """Do a copy of the dtd. """
5730         ret = libxml2mod.xmlCopyDtd(self._o)
5731         if ret is None:raise treeError('xmlCopyDtd() failed')
5732         __tmp = xmlDtd(_obj=ret)
5733         return __tmp
5734
5735     def freeDtd(self):
5736         """Free a DTD structure. """
5737         libxml2mod.xmlFreeDtd(self._o)
5738
5739     #
5740     # xmlDtd functions from module valid
5741     #
5742
5743     def dtdAttrDesc(self, elem, name):
5744         """Search the DTD for the description of this attribute on
5745            this element. """
5746         ret = libxml2mod.xmlGetDtdAttrDesc(self._o, elem, name)
5747         if ret is None:raise treeError('xmlGetDtdAttrDesc() failed')
5748         __tmp = xmlAttribute(_obj=ret)
5749         return __tmp
5750
5751     def dtdElementDesc(self, name):
5752         """Search the DTD for the description of this element """
5753         ret = libxml2mod.xmlGetDtdElementDesc(self._o, name)
5754         if ret is None:raise treeError('xmlGetDtdElementDesc() failed')
5755         __tmp = xmlElement(_obj=ret)
5756         return __tmp
5757
5758     def dtdQAttrDesc(self, elem, name, prefix):
5759         """Search the DTD for the description of this qualified
5760            attribute on this element. """
5761         ret = libxml2mod.xmlGetDtdQAttrDesc(self._o, elem, name, prefix)
5762         if ret is None:raise treeError('xmlGetDtdQAttrDesc() failed')
5763         __tmp = xmlAttribute(_obj=ret)
5764         return __tmp
5765
5766     def dtdQElementDesc(self, name, prefix):
5767         """Search the DTD for the description of this element """
5768         ret = libxml2mod.xmlGetDtdQElementDesc(self._o, name, prefix)
5769         if ret is None:raise treeError('xmlGetDtdQElementDesc() failed')
5770         __tmp = xmlElement(_obj=ret)
5771         return __tmp
5772
5773 class xmlElement(xmlNode):
5774     def __init__(self, _obj=None):
5775         if checkWrapper(_obj) != 0:            raise TypeError('xmlElement got a wrong wrapper object type')
5776         self._o = _obj
5777         xmlNode.__init__(self, _obj=_obj)
5778
5779     def __repr__(self):
5780         return "<xmlElement (%s) object at 0x%x>" % (self.name, int(pos_id (self)))
5781
5782 class xmlEntity(xmlNode):
5783     def __init__(self, _obj=None):
5784         if checkWrapper(_obj) != 0:            raise TypeError('xmlEntity got a wrong wrapper object type')
5785         self._o = _obj
5786         xmlNode.__init__(self, _obj=_obj)
5787
5788     def __repr__(self):
5789         return "<xmlEntity (%s) object at 0x%x>" % (self.name, int(pos_id (self)))
5790
5791     #
5792     # xmlEntity functions from module parserInternals
5793     #
5794
5795     def handleEntity(self, ctxt):
5796         """Default handling of defined entities, when should we define
5797           a new input stream ? When do we just handle that as a set
5798            of chars ?  OBSOLETE: to be removed at some point. """
5799         if ctxt is None: ctxt__o = None
5800         else: ctxt__o = ctxt._o
5801         libxml2mod.xmlHandleEntity(ctxt__o, self._o)
5802
5803 class Error:
5804     def __init__(self, _obj=None):
5805         if _obj != None:self._o = _obj;return
5806         self._o = None
5807
5808     # accessors for Error
5809     def code(self):
5810         """The error code, e.g. an xmlParserError """
5811         ret = libxml2mod.xmlErrorGetCode(self._o)
5812         return ret
5813
5814     def domain(self):
5815         """What part of the library raised this error """
5816         ret = libxml2mod.xmlErrorGetDomain(self._o)
5817         return ret
5818
5819     def file(self):
5820         """the filename """
5821         ret = libxml2mod.xmlErrorGetFile(self._o)
5822         return ret
5823
5824     def level(self):
5825         """how consequent is the error """
5826         ret = libxml2mod.xmlErrorGetLevel(self._o)
5827         return ret
5828
5829     def line(self):
5830         """the line number if available """
5831         ret = libxml2mod.xmlErrorGetLine(self._o)
5832         return ret
5833
5834     def message(self):
5835         """human-readable informative error message """
5836         ret = libxml2mod.xmlErrorGetMessage(self._o)
5837         return ret
5838
5839     #
5840     # Error functions from module xmlerror
5841     #
5842
5843     def copyError(self, to):
5844         """Save the original error to the new place. """
5845         if to is None: to__o = None
5846         else: to__o = to._o
5847         ret = libxml2mod.xmlCopyError(self._o, to__o)
5848         return ret
5849
5850     def resetError(self):
5851         """Cleanup the error. """
5852         libxml2mod.xmlResetError(self._o)
5853
5854 class xmlNs(xmlNode):
5855     def __init__(self, _obj=None):
5856         if checkWrapper(_obj) != 0:            raise TypeError('xmlNs got a wrong wrapper object type')
5857         self._o = _obj
5858         xmlNode.__init__(self, _obj=_obj)
5859
5860     def __repr__(self):
5861         return "<xmlNs (%s) object at 0x%x>" % (self.name, int(pos_id (self)))
5862
5863     #
5864     # xmlNs functions from module tree
5865     #
5866
5867     def copyNamespace(self):
5868         """Do a copy of the namespace. """
5869         ret = libxml2mod.xmlCopyNamespace(self._o)
5870         if ret is None:raise treeError('xmlCopyNamespace() failed')
5871         __tmp = xmlNs(_obj=ret)
5872         return __tmp
5873
5874     def copyNamespaceList(self):
5875         """Do a copy of an namespace list. """
5876         ret = libxml2mod.xmlCopyNamespaceList(self._o)
5877         if ret is None:raise treeError('xmlCopyNamespaceList() failed')
5878         __tmp = xmlNs(_obj=ret)
5879         return __tmp
5880
5881     def freeNs(self):
5882         """Free up the structures associated to a namespace """
5883         libxml2mod.xmlFreeNs(self._o)
5884
5885     def freeNsList(self):
5886         """Free up all the structures associated to the chained
5887            namespaces. """
5888         libxml2mod.xmlFreeNsList(self._o)
5889
5890     def newChild(self, parent, name, content):
5891         """Creation of a new child element, added at the end of
5892           @parent children list. @ns and @content parameters are
5893           optional (None). If @ns is None, the newly created element
5894           inherits the namespace of @parent. If @content is non None,
5895           a child list containing the TEXTs and ENTITY_REFs node will
5896           be created. NOTE: @content is supposed to be a piece of XML
5897           CDATA, so it allows entity references. XML special chars
5898           must be escaped first by using
5899           xmlEncodeEntitiesReentrant(), or xmlNewTextChild() should
5900            be used. """
5901         if parent is None: parent__o = None
5902         else: parent__o = parent._o
5903         ret = libxml2mod.xmlNewChild(parent__o, self._o, name, content)
5904         if ret is None:raise treeError('xmlNewChild() failed')
5905         __tmp = xmlNode(_obj=ret)
5906         return __tmp
5907
5908     def newDocNode(self, doc, name, content):
5909         """Creation of a new node element within a document. @ns and
5910           @content are optional (None). NOTE: @content is supposed to
5911           be a piece of XML CDATA, so it allow entities references,
5912           but XML special chars need to be escaped first by using
5913           xmlEncodeEntitiesReentrant(). Use xmlNewDocRawNode() if you
5914            don't need entities support. """
5915         if doc is None: doc__o = None
5916         else: doc__o = doc._o
5917         ret = libxml2mod.xmlNewDocNode(doc__o, self._o, name, content)
5918         if ret is None:raise treeError('xmlNewDocNode() failed')
5919         __tmp = xmlNode(_obj=ret)
5920         return __tmp
5921
5922     def newDocNodeEatName(self, doc, name, content):
5923         """Creation of a new node element within a document. @ns and
5924           @content are optional (None). NOTE: @content is supposed to
5925           be a piece of XML CDATA, so it allow entities references,
5926           but XML special chars need to be escaped first by using
5927           xmlEncodeEntitiesReentrant(). Use xmlNewDocRawNode() if you
5928            don't need entities support. """
5929         if doc is None: doc__o = None
5930         else: doc__o = doc._o
5931         ret = libxml2mod.xmlNewDocNodeEatName(doc__o, self._o, name, content)
5932         if ret is None:raise treeError('xmlNewDocNodeEatName() failed')
5933         __tmp = xmlNode(_obj=ret)
5934         return __tmp
5935
5936     def newDocRawNode(self, doc, name, content):
5937         """Creation of a new node element within a document. @ns and
5938            @content are optional (None). """
5939         if doc is None: doc__o = None
5940         else: doc__o = doc._o
5941         ret = libxml2mod.xmlNewDocRawNode(doc__o, self._o, name, content)
5942         if ret is None:raise treeError('xmlNewDocRawNode() failed')
5943         __tmp = xmlNode(_obj=ret)
5944         return __tmp
5945
5946     def newNodeEatName(self, name):
5947         """Creation of a new node element. @ns is optional (None). """
5948         ret = libxml2mod.xmlNewNodeEatName(self._o, name)
5949         if ret is None:raise treeError('xmlNewNodeEatName() failed')
5950         __tmp = xmlNode(_obj=ret)
5951         return __tmp
5952
5953     def newNsProp(self, node, name, value):
5954         """Create a new property tagged with a namespace and carried
5955            by a node. """
5956         if node is None: node__o = None
5957         else: node__o = node._o
5958         ret = libxml2mod.xmlNewNsProp(node__o, self._o, name, value)
5959         if ret is None:raise treeError('xmlNewNsProp() failed')
5960         __tmp = xmlAttr(_obj=ret)
5961         return __tmp
5962
5963     def newNsPropEatName(self, node, name, value):
5964         """Create a new property tagged with a namespace and carried
5965            by a node. """
5966         if node is None: node__o = None
5967         else: node__o = node._o
5968         ret = libxml2mod.xmlNewNsPropEatName(node__o, self._o, name, value)
5969         if ret is None:raise treeError('xmlNewNsPropEatName() failed')
5970         __tmp = xmlAttr(_obj=ret)
5971         return __tmp
5972
5973     def newTextChild(self, parent, name, content):
5974         """Creation of a new child element, added at the end of
5975           @parent children list. @ns and @content parameters are
5976           optional (None). If @ns is None, the newly created element
5977           inherits the namespace of @parent. If @content is non None,
5978           a child TEXT node will be created containing the string
5979           @content. NOTE: Use xmlNewChild() if @content will contain
5980           entities that need to be preserved. Use this function,
5981           xmlNewTextChild(), if you need to ensure that reserved XML
5982           chars that might appear in @content, such as the ampersand,
5983           greater-than or less-than signs, are automatically replaced
5984            by their XML escaped entity representations. """
5985         if parent is None: parent__o = None
5986         else: parent__o = parent._o
5987         ret = libxml2mod.xmlNewTextChild(parent__o, self._o, name, content)
5988         if ret is None:raise treeError('xmlNewTextChild() failed')
5989         __tmp = xmlNode(_obj=ret)
5990         return __tmp
5991
5992     def setNs(self, node):
5993         """Associate a namespace to a node, a posteriori. """
5994         if node is None: node__o = None
5995         else: node__o = node._o
5996         libxml2mod.xmlSetNs(node__o, self._o)
5997
5998     def setNsProp(self, node, name, value):
5999         """Set (or reset) an attribute carried by a node. The ns
6000            structure must be in scope, this is not checked """
6001         if node is None: node__o = None
6002         else: node__o = node._o
6003         ret = libxml2mod.xmlSetNsProp(node__o, self._o, name, value)
6004         if ret is None:raise treeError('xmlSetNsProp() failed')
6005         __tmp = xmlAttr(_obj=ret)
6006         return __tmp
6007
6008     def unsetNsProp(self, node, name):
6009         """Remove an attribute carried by a node. """
6010         if node is None: node__o = None
6011         else: node__o = node._o
6012         ret = libxml2mod.xmlUnsetNsProp(node__o, self._o, name)
6013         return ret
6014
6015     #
6016     # xmlNs functions from module xpathInternals
6017     #
6018
6019     def xpathNodeSetFreeNs(self):
6020         """Namespace nodes in libxml don't match the XPath semantic.
6021           In a node set the namespace nodes are duplicated and the
6022           next pointer is set to the parent node in the XPath
6023            semantic. Check if such a node needs to be freed """
6024         libxml2mod.xmlXPathNodeSetFreeNs(self._o)
6025
6026 class outputBuffer(ioWriteWrapper):
6027     def __init__(self, _obj=None):
6028         self._o = _obj
6029         ioWriteWrapper.__init__(self, _obj=_obj)
6030
6031     #
6032     # outputBuffer functions from module HTMLtree
6033     #
6034
6035     def htmlDocContentDumpFormatOutput(self, cur, encoding, format):
6036         """Dump an HTML document. """
6037         if cur is None: cur__o = None
6038         else: cur__o = cur._o
6039         libxml2mod.htmlDocContentDumpFormatOutput(self._o, cur__o, encoding, format)
6040
6041     def htmlDocContentDumpOutput(self, cur, encoding):
6042         """Dump an HTML document. Formating return/spaces are added. """
6043         if cur is None: cur__o = None
6044         else: cur__o = cur._o
6045         libxml2mod.htmlDocContentDumpOutput(self._o, cur__o, encoding)
6046
6047     def htmlNodeDumpFormatOutput(self, doc, cur, encoding, format):
6048         """Dump an HTML node, recursive behaviour,children are printed
6049            too. """
6050         if doc is None: doc__o = None
6051         else: doc__o = doc._o
6052         if cur is None: cur__o = None
6053         else: cur__o = cur._o
6054         libxml2mod.htmlNodeDumpFormatOutput(self._o, doc__o, cur__o, encoding, format)
6055
6056     def htmlNodeDumpOutput(self, doc, cur, encoding):
6057         """Dump an HTML node, recursive behaviour,children are printed
6058            too, and formatting returns/spaces are added. """
6059         if doc is None: doc__o = None
6060         else: doc__o = doc._o
6061         if cur is None: cur__o = None
6062         else: cur__o = cur._o
6063         libxml2mod.htmlNodeDumpOutput(self._o, doc__o, cur__o, encoding)
6064
6065     #
6066     # outputBuffer functions from module tree
6067     #
6068
6069     def nodeDumpOutput(self, doc, cur, level, format, encoding):
6070         """Dump an XML node, recursive behaviour, children are printed
6071           too. Note that @format = 1 provide node indenting only if
6072           xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was
6073            called """
6074         if doc is None: doc__o = None
6075         else: doc__o = doc._o
6076         if cur is None: cur__o = None
6077         else: cur__o = cur._o
6078         libxml2mod.xmlNodeDumpOutput(self._o, doc__o, cur__o, level, format, encoding)
6079
6080     def saveFileTo(self, cur, encoding):
6081         """Dump an XML document to an I/O buffer. Warning ! This call
6082           xmlOutputBufferClose() on buf which is not available after
6083            this call. """
6084         if cur is None: cur__o = None
6085         else: cur__o = cur._o
6086         ret = libxml2mod.xmlSaveFileTo(self._o, cur__o, encoding)
6087         return ret
6088
6089     def saveFormatFileTo(self, cur, encoding, format):
6090         """Dump an XML document to an I/O buffer. Warning ! This call
6091           xmlOutputBufferClose() on buf which is not available after
6092            this call. """
6093         if cur is None: cur__o = None
6094         else: cur__o = cur._o
6095         ret = libxml2mod.xmlSaveFormatFileTo(self._o, cur__o, encoding, format)
6096         return ret
6097
6098     #
6099     # outputBuffer functions from module xmlIO
6100     #
6101
6102     def getContent(self):
6103         """Gives a pointer to the data currently held in the output
6104            buffer """
6105         ret = libxml2mod.xmlOutputBufferGetContent(self._o)
6106         return ret
6107
6108     def write(self, len, buf):
6109         """Write the content of the array in the output I/O buffer
6110           This routine handle the I18N transcoding from internal
6111           UTF-8 The buffer is lossless, i.e. will store in case of
6112            partial or delayed writes. """
6113         ret = libxml2mod.xmlOutputBufferWrite(self._o, len, buf)
6114         return ret
6115
6116     def writeString(self, str):
6117         """Write the content of the string in the output I/O buffer
6118           This routine handle the I18N transcoding from internal
6119           UTF-8 The buffer is lossless, i.e. will store in case of
6120            partial or delayed writes. """
6121         ret = libxml2mod.xmlOutputBufferWriteString(self._o, str)
6122         return ret
6123
6124 class inputBuffer(ioReadWrapper):
6125     def __init__(self, _obj=None):
6126         self._o = _obj
6127         ioReadWrapper.__init__(self, _obj=_obj)
6128
6129     def __del__(self):
6130         if self._o != None:
6131             libxml2mod.xmlFreeParserInputBuffer(self._o)
6132         self._o = None
6133
6134     #
6135     # inputBuffer functions from module xmlIO
6136     #
6137
6138     def grow(self, len):
6139         """Grow up the content of the input buffer, the old data are
6140           preserved This routine handle the I18N transcoding to
6141           internal UTF-8 This routine is used when operating the
6142           parser in normal (pull) mode  TODO: one should be able to
6143           remove one extra copy by copying directly onto in->buffer
6144            or in->raw """
6145         ret = libxml2mod.xmlParserInputBufferGrow(self._o, len)
6146         return ret
6147
6148     def push(self, len, buf):
6149         """Push the content of the arry in the input buffer This
6150           routine handle the I18N transcoding to internal UTF-8 This
6151           is used when operating the parser in progressive (push)
6152            mode. """
6153         ret = libxml2mod.xmlParserInputBufferPush(self._o, len, buf)
6154         return ret
6155
6156     def read(self, len):
6157         """Refresh the content of the input buffer, the old data are
6158           considered consumed This routine handle the I18N
6159            transcoding to internal UTF-8 """
6160         ret = libxml2mod.xmlParserInputBufferRead(self._o, len)
6161         return ret
6162
6163     #
6164     # inputBuffer functions from module xmlreader
6165     #
6166
6167     def Setup(self, reader, URL, encoding, options):
6168         """Setup an XML reader with new options """
6169         if reader is None: reader__o = None
6170         else: reader__o = reader._o
6171         ret = libxml2mod.xmlTextReaderSetup(reader__o, self._o, URL, encoding, options)
6172         return ret
6173
6174     def newTextReader(self, URI):
6175         """Create an xmlTextReader structure fed with @input """
6176         ret = libxml2mod.xmlNewTextReader(self._o, URI)
6177         if ret is None:raise treeError('xmlNewTextReader() failed')
6178         __tmp = xmlTextReader(_obj=ret)
6179         __tmp.input = self
6180         return __tmp
6181
6182 class xmlReg:
6183     def __init__(self, _obj=None):
6184         if _obj != None:self._o = _obj;return
6185         self._o = None
6186
6187     def __del__(self):
6188         if self._o != None:
6189             libxml2mod.xmlRegFreeRegexp(self._o)
6190         self._o = None
6191
6192     #
6193     # xmlReg functions from module xmlregexp
6194     #
6195
6196     def regexpExec(self, content):
6197         """Check if the regular expression generates the value """
6198         ret = libxml2mod.xmlRegexpExec(self._o, content)
6199         return ret
6200
6201     def regexpIsDeterminist(self):
6202         """Check if the regular expression is determinist """
6203         ret = libxml2mod.xmlRegexpIsDeterminist(self._o)
6204         return ret
6205
6206     def regexpPrint(self, output):
6207         """Print the content of the compiled regular expression """
6208         libxml2mod.xmlRegexpPrint(output, self._o)
6209
6210 class relaxNgParserCtxt:
6211     def __init__(self, _obj=None):
6212         if _obj != None:self._o = _obj;return
6213         self._o = None
6214
6215     def __del__(self):
6216         if self._o != None:
6217             libxml2mod.xmlRelaxNGFreeParserCtxt(self._o)
6218         self._o = None
6219
6220     #
6221     # relaxNgParserCtxt functions from module relaxng
6222     #
6223
6224     def relaxNGParse(self):
6225         """parse a schema definition resource and build an internal
6226            XML Shema struture which can be used to validate instances. """
6227         ret = libxml2mod.xmlRelaxNGParse(self._o)
6228         if ret is None:raise parserError('xmlRelaxNGParse() failed')
6229         __tmp = relaxNgSchema(_obj=ret)
6230         return __tmp
6231
6232     def relaxParserSetFlag(self, flags):
6233         """Semi private function used to pass informations to a parser
6234            context which are a combination of xmlRelaxNGParserFlag . """
6235         ret = libxml2mod.xmlRelaxParserSetFlag(self._o, flags)
6236         return ret
6237
6238 class relaxNgSchema:
6239     def __init__(self, _obj=None):
6240         if _obj != None:self._o = _obj;return
6241         self._o = None
6242
6243     def __del__(self):
6244         if self._o != None:
6245             libxml2mod.xmlRelaxNGFree(self._o)
6246         self._o = None
6247
6248     #
6249     # relaxNgSchema functions from module relaxng
6250     #
6251
6252     def relaxNGDump(self, output):
6253         """Dump a RelaxNG structure back """
6254         libxml2mod.xmlRelaxNGDump(output, self._o)
6255
6256     def relaxNGDumpTree(self, output):
6257         """Dump the transformed RelaxNG tree. """
6258         libxml2mod.xmlRelaxNGDumpTree(output, self._o)
6259
6260     def relaxNGNewValidCtxt(self):
6261         """Create an XML RelaxNGs validation context based on the
6262            given schema """
6263         ret = libxml2mod.xmlRelaxNGNewValidCtxt(self._o)
6264         if ret is None:raise treeError('xmlRelaxNGNewValidCtxt() failed')
6265         __tmp = relaxNgValidCtxt(_obj=ret)
6266         __tmp.schema = self
6267         return __tmp
6268
6269     #
6270     # relaxNgSchema functions from module xmlreader
6271     #
6272
6273     def RelaxNGSetSchema(self, reader):
6274         """Use RelaxNG to validate the document as it is processed.
6275           Activation is only possible before the first Read(). if
6276           @schema is None, then RelaxNG validation is desactivated. @
6277           The @schema should not be freed until the reader is
6278            deallocated or its use has been deactivated. """
6279         if reader is None: reader__o = None
6280         else: reader__o = reader._o
6281         ret = libxml2mod.xmlTextReaderRelaxNGSetSchema(reader__o, self._o)
6282         return ret
6283
6284 class relaxNgValidCtxt(relaxNgValidCtxtCore):
6285     def __init__(self, _obj=None):
6286         self.schema = None
6287         self._o = _obj
6288         relaxNgValidCtxtCore.__init__(self, _obj=_obj)
6289
6290     def __del__(self):
6291         if self._o != None:
6292             libxml2mod.xmlRelaxNGFreeValidCtxt(self._o)
6293         self._o = None
6294
6295     #
6296     # relaxNgValidCtxt functions from module relaxng
6297     #
6298
6299     def relaxNGValidateDoc(self, doc):
6300         """Validate a document tree in memory. """
6301         if doc is None: doc__o = None
6302         else: doc__o = doc._o
6303         ret = libxml2mod.xmlRelaxNGValidateDoc(self._o, doc__o)
6304         return ret
6305
6306     def relaxNGValidateFullElement(self, doc, elem):
6307         """Validate a full subtree when
6308           xmlRelaxNGValidatePushElement() returned 0 and the content
6309            of the node has been expanded. """
6310         if doc is None: doc__o = None
6311         else: doc__o = doc._o
6312         if elem is None: elem__o = None
6313         else: elem__o = elem._o
6314         ret = libxml2mod.xmlRelaxNGValidateFullElement(self._o, doc__o, elem__o)
6315         return ret
6316
6317     def relaxNGValidatePopElement(self, doc, elem):
6318         """Pop the element end from the RelaxNG validation stack. """
6319         if doc is None: doc__o = None
6320         else: doc__o = doc._o
6321         if elem is None: elem__o = None
6322         else: elem__o = elem._o
6323         ret = libxml2mod.xmlRelaxNGValidatePopElement(self._o, doc__o, elem__o)
6324         return ret
6325
6326     def relaxNGValidatePushCData(self, data, len):
6327         """check the CData parsed for validation in the current stack """
6328         ret = libxml2mod.xmlRelaxNGValidatePushCData(self._o, data, len)
6329         return ret
6330
6331     def relaxNGValidatePushElement(self, doc, elem):
6332         """Push a new element start on the RelaxNG validation stack. """
6333         if doc is None: doc__o = None
6334         else: doc__o = doc._o
6335         if elem is None: elem__o = None
6336         else: elem__o = elem._o
6337         ret = libxml2mod.xmlRelaxNGValidatePushElement(self._o, doc__o, elem__o)
6338         return ret
6339
6340     #
6341     # relaxNgValidCtxt functions from module xmlreader
6342     #
6343
6344     def RelaxNGValidateCtxt(self, reader, options):
6345         """Use RelaxNG schema context to validate the document as it
6346           is processed. Activation is only possible before the first
6347           Read(). If @ctxt is None, then RelaxNG schema validation is
6348            deactivated. """
6349         if reader is None: reader__o = None
6350         else: reader__o = reader._o
6351         ret = libxml2mod.xmlTextReaderRelaxNGValidateCtxt(reader__o, self._o, options)
6352         return ret
6353
6354 class SchemaParserCtxt:
6355     def __init__(self, _obj=None):
6356         if _obj != None:self._o = _obj;return
6357         self._o = None
6358
6359     def __del__(self):
6360         if self._o != None:
6361             libxml2mod.xmlSchemaFreeParserCtxt(self._o)
6362         self._o = None
6363
6364     #
6365     # SchemaParserCtxt functions from module xmlschemas
6366     #
6367
6368     def schemaParse(self):
6369         """parse a schema definition resource and build an internal
6370            XML Shema struture which can be used to validate instances. """
6371         ret = libxml2mod.xmlSchemaParse(self._o)
6372         if ret is None:raise parserError('xmlSchemaParse() failed')
6373         __tmp = Schema(_obj=ret)
6374         return __tmp
6375
6376 class Schema:
6377     def __init__(self, _obj=None):
6378         if _obj != None:self._o = _obj;return
6379         self._o = None
6380
6381     def __del__(self):
6382         if self._o != None:
6383             libxml2mod.xmlSchemaFree(self._o)
6384         self._o = None
6385
6386     #
6387     # Schema functions from module xmlreader
6388     #
6389
6390     def SetSchema(self, reader):
6391         """Use XSD Schema to validate the document as it is processed.
6392           Activation is only possible before the first Read(). if
6393           @schema is None, then Schema validation is desactivated. @
6394           The @schema should not be freed until the reader is
6395            deallocated or its use has been deactivated. """
6396         if reader is None: reader__o = None
6397         else: reader__o = reader._o
6398         ret = libxml2mod.xmlTextReaderSetSchema(reader__o, self._o)
6399         return ret
6400
6401     #
6402     # Schema functions from module xmlschemas
6403     #
6404
6405     def schemaDump(self, output):
6406         """Dump a Schema structure. """
6407         libxml2mod.xmlSchemaDump(output, self._o)
6408
6409     def schemaNewValidCtxt(self):
6410         """Create an XML Schemas validation context based on the given
6411            schema. """
6412         ret = libxml2mod.xmlSchemaNewValidCtxt(self._o)
6413         if ret is None:raise treeError('xmlSchemaNewValidCtxt() failed')
6414         __tmp = SchemaValidCtxt(_obj=ret)
6415         __tmp.schema = self
6416         return __tmp
6417
6418 class SchemaValidCtxt(SchemaValidCtxtCore):
6419     def __init__(self, _obj=None):
6420         self.schema = None
6421         self._o = _obj
6422         SchemaValidCtxtCore.__init__(self, _obj=_obj)
6423
6424     def __del__(self):
6425         if self._o != None:
6426             libxml2mod.xmlSchemaFreeValidCtxt(self._o)
6427         self._o = None
6428
6429     #
6430     # SchemaValidCtxt functions from module xmlreader
6431     #
6432
6433     def SchemaValidateCtxt(self, reader, options):
6434         """Use W3C XSD schema context to validate the document as it
6435           is processed. Activation is only possible before the first
6436           Read(). If @ctxt is None, then XML Schema validation is
6437            deactivated. """
6438         if reader is None: reader__o = None
6439         else: reader__o = reader._o
6440         ret = libxml2mod.xmlTextReaderSchemaValidateCtxt(reader__o, self._o, options)
6441         return ret
6442
6443     #
6444     # SchemaValidCtxt functions from module xmlschemas
6445     #
6446
6447     def schemaIsValid(self):
6448         """Check if any error was detected during validation. """
6449         ret = libxml2mod.xmlSchemaIsValid(self._o)
6450         return ret
6451
6452     def schemaSetValidOptions(self, options):
6453         """Sets the options to be used during the validation. """
6454         ret = libxml2mod.xmlSchemaSetValidOptions(self._o, options)
6455         return ret
6456
6457     def schemaValidCtxtGetOptions(self):
6458         """Get the validation context options. """
6459         ret = libxml2mod.xmlSchemaValidCtxtGetOptions(self._o)
6460         return ret
6461
6462     def schemaValidCtxtGetParserCtxt(self):
6463         """allow access to the parser context of the schema validation
6464            context """
6465         ret = libxml2mod.xmlSchemaValidCtxtGetParserCtxt(self._o)
6466         if ret is None:raise parserError('xmlSchemaValidCtxtGetParserCtxt() failed')
6467         __tmp = parserCtxt(_obj=ret)
6468         return __tmp
6469
6470     def schemaValidateDoc(self, doc):
6471         """Validate a document tree in memory. """
6472         if doc is None: doc__o = None
6473         else: doc__o = doc._o
6474         ret = libxml2mod.xmlSchemaValidateDoc(self._o, doc__o)
6475         return ret
6476
6477     def schemaValidateFile(self, filename, options):
6478         """Do a schemas validation of the given resource, it will use
6479            the SAX streamable validation internally. """
6480         ret = libxml2mod.xmlSchemaValidateFile(self._o, filename, options)
6481         return ret
6482
6483     def schemaValidateOneElement(self, elem):
6484         """Validate a branch of a tree, starting with the given @elem. """
6485         if elem is None: elem__o = None
6486         else: elem__o = elem._o
6487         ret = libxml2mod.xmlSchemaValidateOneElement(self._o, elem__o)
6488         return ret
6489
6490     def schemaValidateSetFilename(self, filename):
6491         """Workaround to provide file error reporting information when
6492            this is not provided by current APIs """
6493         libxml2mod.xmlSchemaValidateSetFilename(self._o, filename)
6494
6495 class xmlTextReaderLocator:
6496     def __init__(self, _obj=None):
6497         if _obj != None:self._o = _obj;return
6498         self._o = None
6499
6500     #
6501     # xmlTextReaderLocator functions from module xmlreader
6502     #
6503
6504     def BaseURI(self):
6505         """Obtain the base URI for the given locator. """
6506         ret = libxml2mod.xmlTextReaderLocatorBaseURI(self._o)
6507         return ret
6508
6509     def LineNumber(self):
6510         """Obtain the line number for the given locator. """
6511         ret = libxml2mod.xmlTextReaderLocatorLineNumber(self._o)
6512         return ret
6513
6514 class xmlTextReader(xmlTextReaderCore):
6515     def __init__(self, _obj=None):
6516         self.input = None
6517         self._o = _obj
6518         xmlTextReaderCore.__init__(self, _obj=_obj)
6519
6520     def __del__(self):
6521         if self._o != None:
6522             libxml2mod.xmlFreeTextReader(self._o)
6523         self._o = None
6524
6525     #
6526     # xmlTextReader functions from module xmlreader
6527     #
6528
6529     def AttributeCount(self):
6530         """Provides the number of attributes of the current node """
6531         ret = libxml2mod.xmlTextReaderAttributeCount(self._o)
6532         return ret
6533
6534     def BaseUri(self):
6535         """The base URI of the node. """
6536         ret = libxml2mod.xmlTextReaderConstBaseUri(self._o)
6537         return ret
6538
6539     def ByteConsumed(self):
6540         """This function provides the current index of the parser used
6541           by the reader, relative to the start of the current entity.
6542           This function actually just wraps a call to
6543           xmlBytesConsumed() for the parser context associated with
6544            the reader. See xmlBytesConsumed() for more information. """
6545         ret = libxml2mod.xmlTextReaderByteConsumed(self._o)
6546         return ret
6547
6548     def Close(self):
6549         """This method releases any resources allocated by the current
6550           instance changes the state to Closed and close any
6551            underlying input. """
6552         ret = libxml2mod.xmlTextReaderClose(self._o)
6553         return ret
6554
6555     def CurrentDoc(self):
6556         """Hacking interface allowing to get the xmlDocPtr
6557           correponding to the current document being accessed by the
6558           xmlTextReader. NOTE: as a result of this call, the reader
6559           will not destroy the associated XML document and calling
6560           xmlFreeDoc() on the result is needed once the reader
6561            parsing has finished. """
6562         ret = libxml2mod.xmlTextReaderCurrentDoc(self._o)
6563         if ret is None:raise treeError('xmlTextReaderCurrentDoc() failed')
6564         __tmp = xmlDoc(_obj=ret)
6565         return __tmp
6566
6567     def CurrentNode(self):
6568         """Hacking interface allowing to get the xmlNodePtr
6569           correponding to the current node being accessed by the
6570           xmlTextReader. This is dangerous because the underlying
6571            node may be destroyed on the next Reads. """
6572         ret = libxml2mod.xmlTextReaderCurrentNode(self._o)
6573         if ret is None:raise treeError('xmlTextReaderCurrentNode() failed')
6574         __tmp = xmlNode(_obj=ret)
6575         return __tmp
6576
6577     def Depth(self):
6578         """The depth of the node in the tree. """
6579         ret = libxml2mod.xmlTextReaderDepth(self._o)
6580         return ret
6581
6582     def Encoding(self):
6583         """Determine the encoding of the document being read. """
6584         ret = libxml2mod.xmlTextReaderConstEncoding(self._o)
6585         return ret
6586
6587     def Expand(self):
6588         """Reads the contents of the current node and the full
6589           subtree. It then makes the subtree available until the next
6590            xmlTextReaderRead() call """
6591         ret = libxml2mod.xmlTextReaderExpand(self._o)
6592         if ret is None:raise treeError('xmlTextReaderExpand() failed')
6593         __tmp = xmlNode(_obj=ret)
6594         return __tmp
6595
6596     def GetAttribute(self, name):
6597         """Provides the value of the attribute with the specified
6598            qualified name. """
6599         ret = libxml2mod.xmlTextReaderGetAttribute(self._o, name)
6600         return ret
6601
6602     def GetAttributeNo(self, no):
6603         """Provides the value of the attribute with the specified
6604            index relative to the containing element. """
6605         ret = libxml2mod.xmlTextReaderGetAttributeNo(self._o, no)
6606         return ret
6607
6608     def GetAttributeNs(self, localName, namespaceURI):
6609         """Provides the value of the specified attribute """
6610         ret = libxml2mod.xmlTextReaderGetAttributeNs(self._o, localName, namespaceURI)
6611         return ret
6612
6613     def GetParserColumnNumber(self):
6614         """Provide the column number of the current parsing point. """
6615         ret = libxml2mod.xmlTextReaderGetParserColumnNumber(self._o)
6616         return ret
6617
6618     def GetParserLineNumber(self):
6619         """Provide the line number of the current parsing point. """
6620         ret = libxml2mod.xmlTextReaderGetParserLineNumber(self._o)
6621         return ret
6622
6623     def GetParserProp(self, prop):
6624         """Read the parser internal property. """
6625         ret = libxml2mod.xmlTextReaderGetParserProp(self._o, prop)
6626         return ret
6627
6628     def GetRemainder(self):
6629         """Method to get the remainder of the buffered XML. this
6630           method stops the parser, set its state to End Of File and
6631           return the input stream with what is left that the parser
6632           did not use.  The implementation is not good, the parser
6633           certainly procgressed past what's left in reader->input,
6634           and there is an allocation problem. Best would be to
6635            rewrite it differently. """
6636         ret = libxml2mod.xmlTextReaderGetRemainder(self._o)
6637         if ret is None:raise treeError('xmlTextReaderGetRemainder() failed')
6638         __tmp = inputBuffer(_obj=ret)
6639         return __tmp
6640
6641     def HasAttributes(self):
6642         """Whether the node has attributes. """
6643         ret = libxml2mod.xmlTextReaderHasAttributes(self._o)
6644         return ret
6645
6646     def HasValue(self):
6647         """Whether the node can have a text value. """
6648         ret = libxml2mod.xmlTextReaderHasValue(self._o)
6649         return ret
6650
6651     def IsDefault(self):
6652         """Whether an Attribute  node was generated from the default
6653            value defined in the DTD or schema. """
6654         ret = libxml2mod.xmlTextReaderIsDefault(self._o)
6655         return ret
6656
6657     def IsEmptyElement(self):
6658         """Check if the current node is empty """
6659         ret = libxml2mod.xmlTextReaderIsEmptyElement(self._o)
6660         return ret
6661
6662     def IsNamespaceDecl(self):
6663         """Determine whether the current node is a namespace
6664            declaration rather than a regular attribute. """
6665         ret = libxml2mod.xmlTextReaderIsNamespaceDecl(self._o)
6666         return ret
6667
6668     def IsValid(self):
6669         """Retrieve the validity status from the parser context """
6670         ret = libxml2mod.xmlTextReaderIsValid(self._o)
6671         return ret
6672
6673     def LocalName(self):
6674         """The local name of the node. """
6675         ret = libxml2mod.xmlTextReaderConstLocalName(self._o)
6676         return ret
6677
6678     def LookupNamespace(self, prefix):
6679         """Resolves a namespace prefix in the scope of the current
6680            element. """
6681         ret = libxml2mod.xmlTextReaderLookupNamespace(self._o, prefix)
6682         return ret
6683
6684     def MoveToAttribute(self, name):
6685         """Moves the position of the current instance to the attribute
6686            with the specified qualified name. """
6687         ret = libxml2mod.xmlTextReaderMoveToAttribute(self._o, name)
6688         return ret
6689
6690     def MoveToAttributeNo(self, no):
6691         """Moves the position of the current instance to the attribute
6692           with the specified index relative to the containing element. """
6693         ret = libxml2mod.xmlTextReaderMoveToAttributeNo(self._o, no)
6694         return ret
6695
6696     def MoveToAttributeNs(self, localName, namespaceURI):
6697         """Moves the position of the current instance to the attribute
6698            with the specified local name and namespace URI. """
6699         ret = libxml2mod.xmlTextReaderMoveToAttributeNs(self._o, localName, namespaceURI)
6700         return ret
6701
6702     def MoveToElement(self):
6703         """Moves the position of the current instance to the node that
6704            contains the current Attribute  node. """
6705         ret = libxml2mod.xmlTextReaderMoveToElement(self._o)
6706         return ret
6707
6708     def MoveToFirstAttribute(self):
6709         """Moves the position of the current instance to the first
6710            attribute associated with the current node. """
6711         ret = libxml2mod.xmlTextReaderMoveToFirstAttribute(self._o)
6712         return ret
6713
6714     def MoveToNextAttribute(self):
6715         """Moves the position of the current instance to the next
6716            attribute associated with the current node. """
6717         ret = libxml2mod.xmlTextReaderMoveToNextAttribute(self._o)
6718         return ret
6719
6720     def Name(self):
6721         """The qualified name of the node, equal to Prefix :LocalName. """
6722         ret = libxml2mod.xmlTextReaderConstName(self._o)
6723         return ret
6724
6725     def NamespaceUri(self):
6726         """The URI defining the namespace associated with the node. """
6727         ret = libxml2mod.xmlTextReaderConstNamespaceUri(self._o)
6728         return ret
6729
6730     def NewDoc(self, cur, URL, encoding, options):
6731         """Setup an xmltextReader to parse an XML in-memory document.
6732           The parsing flags @options are a combination of
6733           xmlParserOption. This reuses the existing @reader
6734            xmlTextReader. """
6735         ret = libxml2mod.xmlReaderNewDoc(self._o, cur, URL, encoding, options)
6736         return ret
6737
6738     def NewFd(self, fd, URL, encoding, options):
6739         """Setup an xmltextReader to parse an XML from a file
6740           descriptor. NOTE that the file descriptor will not be
6741           closed when the reader is closed or reset. The parsing
6742           flags @options are a combination of xmlParserOption. This
6743            reuses the existing @reader xmlTextReader. """
6744         ret = libxml2mod.xmlReaderNewFd(self._o, fd, URL, encoding, options)
6745         return ret
6746
6747     def NewFile(self, filename, encoding, options):
6748         """parse an XML file from the filesystem or the network. The
6749           parsing flags @options are a combination of
6750           xmlParserOption. This reuses the existing @reader
6751            xmlTextReader. """
6752         ret = libxml2mod.xmlReaderNewFile(self._o, filename, encoding, options)
6753         return ret
6754
6755     def NewMemory(self, buffer, size, URL, encoding, options):
6756         """Setup an xmltextReader to parse an XML in-memory document.
6757           The parsing flags @options are a combination of
6758           xmlParserOption. This reuses the existing @reader
6759            xmlTextReader. """
6760         ret = libxml2mod.xmlReaderNewMemory(self._o, buffer, size, URL, encoding, options)
6761         return ret
6762
6763     def NewWalker(self, doc):
6764         """Setup an xmltextReader to parse a preparsed XML document.
6765            This reuses the existing @reader xmlTextReader. """
6766         if doc is None: doc__o = None
6767         else: doc__o = doc._o
6768         ret = libxml2mod.xmlReaderNewWalker(self._o, doc__o)
6769         return ret
6770
6771     def Next(self):
6772         """Skip to the node following the current one in document
6773            order while avoiding the subtree if any. """
6774         ret = libxml2mod.xmlTextReaderNext(self._o)
6775         return ret
6776
6777     def NextSibling(self):
6778         """Skip to the node following the current one in document
6779           order while avoiding the subtree if any. Currently
6780            implemented only for Readers built on a document """
6781         ret = libxml2mod.xmlTextReaderNextSibling(self._o)
6782         return ret
6783
6784     def NodeType(self):
6785         """Get the node type of the current node Reference:
6786           http://www.gnu.org/software/dotgnu/pnetlib-doc/System/Xml/Xm
6787           lNodeType.html """
6788         ret = libxml2mod.xmlTextReaderNodeType(self._o)
6789         return ret
6790
6791     def Normalization(self):
6792         """The value indicating whether to normalize white space and
6793           attribute values. Since attribute value and end of line
6794           normalizations are a MUST in the XML specification only the
6795           value true is accepted. The broken bahaviour of accepting
6796           out of range character entities like &#0; is of course not
6797            supported either. """
6798         ret = libxml2mod.xmlTextReaderNormalization(self._o)
6799         return ret
6800
6801     def Prefix(self):
6802         """A shorthand reference to the namespace associated with the
6803            node. """
6804         ret = libxml2mod.xmlTextReaderConstPrefix(self._o)
6805         return ret
6806
6807     def Preserve(self):
6808         """This tells the XML Reader to preserve the current node. The
6809           caller must also use xmlTextReaderCurrentDoc() to keep an
6810            handle on the resulting document once parsing has finished """
6811         ret = libxml2mod.xmlTextReaderPreserve(self._o)
6812         if ret is None:raise treeError('xmlTextReaderPreserve() failed')
6813         __tmp = xmlNode(_obj=ret)
6814         return __tmp
6815
6816     def QuoteChar(self):
6817         """The quotation mark character used to enclose the value of
6818            an attribute. """
6819         ret = libxml2mod.xmlTextReaderQuoteChar(self._o)
6820         return ret
6821
6822     def Read(self):
6823         """Moves the position of the current instance to the next node
6824            in the stream, exposing its properties. """
6825         ret = libxml2mod.xmlTextReaderRead(self._o)
6826         return ret
6827
6828     def ReadAttributeValue(self):
6829         """Parses an attribute value into one or more Text and
6830            EntityReference nodes. """
6831         ret = libxml2mod.xmlTextReaderReadAttributeValue(self._o)
6832         return ret
6833
6834     def ReadInnerXml(self):
6835         """Reads the contents of the current node, including child
6836            nodes and markup. """
6837         ret = libxml2mod.xmlTextReaderReadInnerXml(self._o)
6838         return ret
6839
6840     def ReadOuterXml(self):
6841         """Reads the contents of the current node, including child
6842            nodes and markup. """
6843         ret = libxml2mod.xmlTextReaderReadOuterXml(self._o)
6844         return ret
6845
6846     def ReadState(self):
6847         """Gets the read state of the reader. """
6848         ret = libxml2mod.xmlTextReaderReadState(self._o)
6849         return ret
6850
6851     def ReadString(self):
6852         """Reads the contents of an element or a text node as a string. """
6853         ret = libxml2mod.xmlTextReaderReadString(self._o)
6854         return ret
6855
6856     def RelaxNGSetSchema(self, schema):
6857         """Use RelaxNG to validate the document as it is processed.
6858           Activation is only possible before the first Read(). if
6859           @schema is None, then RelaxNG validation is desactivated. @
6860           The @schema should not be freed until the reader is
6861            deallocated or its use has been deactivated. """
6862         if schema is None: schema__o = None
6863         else: schema__o = schema._o
6864         ret = libxml2mod.xmlTextReaderRelaxNGSetSchema(self._o, schema__o)
6865         return ret
6866
6867     def RelaxNGValidate(self, rng):
6868         """Use RelaxNG schema to validate the document as it is
6869           processed. Activation is only possible before the first
6870           Read(). If @rng is None, then RelaxNG schema validation is
6871            deactivated. """
6872         ret = libxml2mod.xmlTextReaderRelaxNGValidate(self._o, rng)
6873         return ret
6874
6875     def RelaxNGValidateCtxt(self, ctxt, options):
6876         """Use RelaxNG schema context to validate the document as it
6877           is processed. Activation is only possible before the first
6878           Read(). If @ctxt is None, then RelaxNG schema validation is
6879            deactivated. """
6880         if ctxt is None: ctxt__o = None
6881         else: ctxt__o = ctxt._o
6882         ret = libxml2mod.xmlTextReaderRelaxNGValidateCtxt(self._o, ctxt__o, options)
6883         return ret
6884
6885     def SchemaValidate(self, xsd):
6886         """Use W3C XSD schema to validate the document as it is
6887           processed. Activation is only possible before the first
6888           Read(). If @xsd is None, then XML Schema validation is
6889            deactivated. """
6890         ret = libxml2mod.xmlTextReaderSchemaValidate(self._o, xsd)
6891         return ret
6892
6893     def SchemaValidateCtxt(self, ctxt, options):
6894         """Use W3C XSD schema context to validate the document as it
6895           is processed. Activation is only possible before the first
6896           Read(). If @ctxt is None, then XML Schema validation is
6897            deactivated. """
6898         if ctxt is None: ctxt__o = None
6899         else: ctxt__o = ctxt._o
6900         ret = libxml2mod.xmlTextReaderSchemaValidateCtxt(self._o, ctxt__o, options)
6901         return ret
6902
6903     def SetParserProp(self, prop, value):
6904         """Change the parser processing behaviour by changing some of
6905           its internal properties. Note that some properties can only
6906            be changed before any read has been done. """
6907         ret = libxml2mod.xmlTextReaderSetParserProp(self._o, prop, value)
6908         return ret
6909
6910     def SetSchema(self, schema):
6911         """Use XSD Schema to validate the document as it is processed.
6912           Activation is only possible before the first Read(). if
6913           @schema is None, then Schema validation is desactivated. @
6914           The @schema should not be freed until the reader is
6915            deallocated or its use has been deactivated. """
6916         if schema is None: schema__o = None
6917         else: schema__o = schema._o
6918         ret = libxml2mod.xmlTextReaderSetSchema(self._o, schema__o)
6919         return ret
6920
6921     def Setup(self, input, URL, encoding, options):
6922         """Setup an XML reader with new options """
6923         if input is None: input__o = None
6924         else: input__o = input._o
6925         ret = libxml2mod.xmlTextReaderSetup(self._o, input__o, URL, encoding, options)
6926         return ret
6927
6928     def Standalone(self):
6929         """Determine the standalone status of the document being read. """
6930         ret = libxml2mod.xmlTextReaderStandalone(self._o)
6931         return ret
6932
6933     def String(self, str):
6934         """Get an interned string from the reader, allows for example
6935            to speedup string name comparisons """
6936         ret = libxml2mod.xmlTextReaderConstString(self._o, str)
6937         return ret
6938
6939     def Value(self):
6940         """Provides the text value of the node if present """
6941         ret = libxml2mod.xmlTextReaderConstValue(self._o)
6942         return ret
6943
6944     def XmlLang(self):
6945         """The xml:lang scope within which the node resides. """
6946         ret = libxml2mod.xmlTextReaderConstXmlLang(self._o)
6947         return ret
6948
6949     def XmlVersion(self):
6950         """Determine the XML version of the document being read. """
6951         ret = libxml2mod.xmlTextReaderConstXmlVersion(self._o)
6952         return ret
6953
6954 class URI:
6955     def __init__(self, _obj=None):
6956         if _obj != None:self._o = _obj;return
6957         self._o = None
6958
6959     def __del__(self):
6960         if self._o != None:
6961             libxml2mod.xmlFreeURI(self._o)
6962         self._o = None
6963
6964     # accessors for URI
6965     def authority(self):
6966         """Get the authority part from an URI """
6967         ret = libxml2mod.xmlURIGetAuthority(self._o)
6968         return ret
6969
6970     def fragment(self):
6971         """Get the fragment part from an URI """
6972         ret = libxml2mod.xmlURIGetFragment(self._o)
6973         return ret
6974
6975     def opaque(self):
6976         """Get the opaque part from an URI """
6977         ret = libxml2mod.xmlURIGetOpaque(self._o)
6978         return ret
6979
6980     def path(self):
6981         """Get the path part from an URI """
6982         ret = libxml2mod.xmlURIGetPath(self._o)
6983         return ret
6984
6985     def port(self):
6986         """Get the port part from an URI """
6987         ret = libxml2mod.xmlURIGetPort(self._o)
6988         return ret
6989
6990     def query(self):
6991         """Get the query part from an URI """
6992         ret = libxml2mod.xmlURIGetQuery(self._o)
6993         return ret
6994
6995     def queryRaw(self):
6996         """Get the raw query part from an URI (i.e. the unescaped
6997            form). """
6998         ret = libxml2mod.xmlURIGetQueryRaw(self._o)
6999         return ret
7000
7001     def scheme(self):
7002         """Get the scheme part from an URI """
7003         ret = libxml2mod.xmlURIGetScheme(self._o)
7004         return ret
7005
7006     def server(self):
7007         """Get the server part from an URI """
7008         ret = libxml2mod.xmlURIGetServer(self._o)
7009         return ret
7010
7011     def setAuthority(self, authority):
7012         """Set the authority part of an URI. """
7013         libxml2mod.xmlURISetAuthority(self._o, authority)
7014
7015     def setFragment(self, fragment):
7016         """Set the fragment part of an URI. """
7017         libxml2mod.xmlURISetFragment(self._o, fragment)
7018
7019     def setOpaque(self, opaque):
7020         """Set the opaque part of an URI. """
7021         libxml2mod.xmlURISetOpaque(self._o, opaque)
7022
7023     def setPath(self, path):
7024         """Set the path part of an URI. """
7025         libxml2mod.xmlURISetPath(self._o, path)
7026
7027     def setPort(self, port):
7028         """Set the port part of an URI. """
7029         libxml2mod.xmlURISetPort(self._o, port)
7030
7031     def setQuery(self, query):
7032         """Set the query part of an URI. """
7033         libxml2mod.xmlURISetQuery(self._o, query)
7034
7035     def setQueryRaw(self, query_raw):
7036         """Set the raw query part of an URI (i.e. the unescaped form). """
7037         libxml2mod.xmlURISetQueryRaw(self._o, query_raw)
7038
7039     def setScheme(self, scheme):
7040         """Set the scheme part of an URI. """
7041         libxml2mod.xmlURISetScheme(self._o, scheme)
7042
7043     def setServer(self, server):
7044         """Set the server part of an URI. """
7045         libxml2mod.xmlURISetServer(self._o, server)
7046
7047     def setUser(self, user):
7048         """Set the user part of an URI. """
7049         libxml2mod.xmlURISetUser(self._o, user)
7050
7051     def user(self):
7052         """Get the user part from an URI """
7053         ret = libxml2mod.xmlURIGetUser(self._o)
7054         return ret
7055
7056     #
7057     # URI functions from module uri
7058     #
7059
7060     def parseURIReference(self, str):
7061         """Parse an URI reference string based on RFC 3986 and fills
7062           in the appropriate fields of the @uri structure 
7063            URI-reference = URI / relative-ref """
7064         ret = libxml2mod.xmlParseURIReference(self._o, str)
7065         return ret
7066
7067     def printURI(self, stream):
7068         """Prints the URI in the stream @stream. """
7069         libxml2mod.xmlPrintURI(stream, self._o)
7070
7071     def saveUri(self):
7072         """Save the URI as an escaped string """
7073         ret = libxml2mod.xmlSaveUri(self._o)
7074         return ret
7075
7076 class ValidCtxt(ValidCtxtCore):
7077     def __init__(self, _obj=None):
7078         self._o = _obj
7079         ValidCtxtCore.__init__(self, _obj=_obj)
7080
7081     def __del__(self):
7082         if self._o != None:
7083             libxml2mod.xmlFreeValidCtxt(self._o)
7084         self._o = None
7085
7086     #
7087     # ValidCtxt functions from module valid
7088     #
7089
7090     def validCtxtNormalizeAttributeValue(self, doc, elem, name, value):
7091         """Does the validation related extra step of the normalization
7092           of attribute values:  If the declared value is not CDATA,
7093           then the XML processor must further process the normalized
7094           attribute value by discarding any leading and trailing
7095           space (#x20) characters, and by replacing sequences of
7096           space (#x20) characters by single space (#x20) character. 
7097           Also  check VC: Standalone Document Declaration in P32, and
7098            update ctxt->valid accordingly """
7099         if doc is None: doc__o = None
7100         else: doc__o = doc._o
7101         if elem is None: elem__o = None
7102         else: elem__o = elem._o
7103         ret = libxml2mod.xmlValidCtxtNormalizeAttributeValue(self._o, doc__o, elem__o, name, value)
7104         return ret
7105
7106     def validateDocument(self, doc):
7107         """Try to validate the document instance  basically it does
7108           the all the checks described by the XML Rec i.e. validates
7109           the internal and external subset (if present) and validate
7110            the document tree. """
7111         if doc is None: doc__o = None
7112         else: doc__o = doc._o
7113         ret = libxml2mod.xmlValidateDocument(self._o, doc__o)
7114         return ret
7115
7116     def validateDocumentFinal(self, doc):
7117         """Does the final step for the document validation once all
7118           the incremental validation steps have been completed 
7119           basically it does the following checks described by the XML
7120           Rec  Check all the IDREF/IDREFS attributes definition for
7121            validity """
7122         if doc is None: doc__o = None
7123         else: doc__o = doc._o
7124         ret = libxml2mod.xmlValidateDocumentFinal(self._o, doc__o)
7125         return ret
7126
7127     def validateDtd(self, doc, dtd):
7128         """Try to validate the document against the dtd instance 
7129           Basically it does check all the definitions in the DtD.
7130           Note the the internal subset (if present) is de-coupled
7131           (i.e. not used), which could give problems if ID or IDREF
7132            is present. """
7133         if doc is None: doc__o = None
7134         else: doc__o = doc._o
7135         if dtd is None: dtd__o = None
7136         else: dtd__o = dtd._o
7137         ret = libxml2mod.xmlValidateDtd(self._o, doc__o, dtd__o)
7138         return ret
7139
7140     def validateDtdFinal(self, doc):
7141         """Does the final step for the dtds validation once all the
7142           subsets have been parsed  basically it does the following
7143           checks described by the XML Rec - check that ENTITY and
7144           ENTITIES type attributes default or possible values matches
7145           one of the defined entities. - check that NOTATION type
7146           attributes default or possible values matches one of the
7147            defined notations. """
7148         if doc is None: doc__o = None
7149         else: doc__o = doc._o
7150         ret = libxml2mod.xmlValidateDtdFinal(self._o, doc__o)
7151         return ret
7152
7153     def validateElement(self, doc, elem):
7154         """Try to validate the subtree under an element """
7155         if doc is None: doc__o = None
7156         else: doc__o = doc._o
7157         if elem is None: elem__o = None
7158         else: elem__o = elem._o
7159         ret = libxml2mod.xmlValidateElement(self._o, doc__o, elem__o)
7160         return ret
7161
7162     def validateNotationUse(self, doc, notationName):
7163         """Validate that the given name match a notation declaration.
7164            - [ VC: Notation Declared ] """
7165         if doc is None: doc__o = None
7166         else: doc__o = doc._o
7167         ret = libxml2mod.xmlValidateNotationUse(self._o, doc__o, notationName)
7168         return ret
7169
7170     def validateOneAttribute(self, doc, elem, attr, value):
7171         """Try to validate a single attribute for an element basically
7172           it does the following checks as described by the XML-1.0
7173           recommendation: - [ VC: Attribute Value Type ] - [ VC:
7174           Fixed Attribute Default ] - [ VC: Entity Name ] - [ VC:
7175           Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC: Entity
7176           Name ] - [ VC: Notation Attributes ]  The ID/IDREF
7177            uniqueness and matching are done separately """
7178         if doc is None: doc__o = None
7179         else: doc__o = doc._o
7180         if elem is None: elem__o = None
7181         else: elem__o = elem._o
7182         if attr is None: attr__o = None
7183         else: attr__o = attr._o
7184         ret = libxml2mod.xmlValidateOneAttribute(self._o, doc__o, elem__o, attr__o, value)
7185         return ret
7186
7187     def validateOneElement(self, doc, elem):
7188         """Try to validate a single element and it's attributes,
7189           basically it does the following checks as described by the
7190           XML-1.0 recommendation: - [ VC: Element Valid ] - [ VC:
7191           Required Attribute ] Then call xmlValidateOneAttribute()
7192           for each attribute present.  The ID/IDREF checkings are
7193            done separately """
7194         if doc is None: doc__o = None
7195         else: doc__o = doc._o
7196         if elem is None: elem__o = None
7197         else: elem__o = elem._o
7198         ret = libxml2mod.xmlValidateOneElement(self._o, doc__o, elem__o)
7199         return ret
7200
7201     def validateOneNamespace(self, doc, elem, prefix, ns, value):
7202         """Try to validate a single namespace declaration for an
7203           element basically it does the following checks as described
7204           by the XML-1.0 recommendation: - [ VC: Attribute Value Type
7205           ] - [ VC: Fixed Attribute Default ] - [ VC: Entity Name ] -
7206           [ VC: Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC:
7207           Entity Name ] - [ VC: Notation Attributes ]  The ID/IDREF
7208            uniqueness and matching are done separately """
7209         if doc is None: doc__o = None
7210         else: doc__o = doc._o
7211         if elem is None: elem__o = None
7212         else: elem__o = elem._o
7213         if ns is None: ns__o = None
7214         else: ns__o = ns._o
7215         ret = libxml2mod.xmlValidateOneNamespace(self._o, doc__o, elem__o, prefix, ns__o, value)
7216         return ret
7217
7218     def validatePopElement(self, doc, elem, qname):
7219         """Pop the element end from the validation stack. """
7220         if doc is None: doc__o = None
7221         else: doc__o = doc._o
7222         if elem is None: elem__o = None
7223         else: elem__o = elem._o
7224         ret = libxml2mod.xmlValidatePopElement(self._o, doc__o, elem__o, qname)
7225         return ret
7226
7227     def validatePushCData(self, data, len):
7228         """check the CData parsed for validation in the current stack """
7229         ret = libxml2mod.xmlValidatePushCData(self._o, data, len)
7230         return ret
7231
7232     def validatePushElement(self, doc, elem, qname):
7233         """Push a new element start on the validation stack. """
7234         if doc is None: doc__o = None
7235         else: doc__o = doc._o
7236         if elem is None: elem__o = None
7237         else: elem__o = elem._o
7238         ret = libxml2mod.xmlValidatePushElement(self._o, doc__o, elem__o, qname)
7239         return ret
7240
7241     def validateRoot(self, doc):
7242         """Try to validate a the root element basically it does the
7243           following check as described by the XML-1.0 recommendation:
7244           - [ VC: Root Element Type ] it doesn't try to recurse or
7245            apply other check to the element """
7246         if doc is None: doc__o = None
7247         else: doc__o = doc._o
7248         ret = libxml2mod.xmlValidateRoot(self._o, doc__o)
7249         return ret
7250
7251 class xpathContext:
7252     def __init__(self, _obj=None):
7253         if _obj != None:self._o = _obj;return
7254         self._o = None
7255
7256     # accessors for xpathContext
7257     def contextDoc(self):
7258         """Get the doc from an xpathContext """
7259         ret = libxml2mod.xmlXPathGetContextDoc(self._o)
7260         if ret is None:raise xpathError('xmlXPathGetContextDoc() failed')
7261         __tmp = xmlDoc(_obj=ret)
7262         return __tmp
7263
7264     def contextNode(self):
7265         """Get the current node from an xpathContext """
7266         ret = libxml2mod.xmlXPathGetContextNode(self._o)
7267         if ret is None:raise xpathError('xmlXPathGetContextNode() failed')
7268         __tmp = xmlNode(_obj=ret)
7269         return __tmp
7270
7271     def contextPosition(self):
7272         """Get the current node from an xpathContext """
7273         ret = libxml2mod.xmlXPathGetContextPosition(self._o)
7274         return ret
7275
7276     def contextSize(self):
7277         """Get the current node from an xpathContext """
7278         ret = libxml2mod.xmlXPathGetContextSize(self._o)
7279         return ret
7280
7281     def function(self):
7282         """Get the current function name xpathContext """
7283         ret = libxml2mod.xmlXPathGetFunction(self._o)
7284         return ret
7285
7286     def functionURI(self):
7287         """Get the current function name URI xpathContext """
7288         ret = libxml2mod.xmlXPathGetFunctionURI(self._o)
7289         return ret
7290
7291     def setContextDoc(self, doc):
7292         """Set the doc of an xpathContext """
7293         if doc is None: doc__o = None
7294         else: doc__o = doc._o
7295         libxml2mod.xmlXPathSetContextDoc(self._o, doc__o)
7296
7297     def setContextNode(self, node):
7298         """Set the current node of an xpathContext """
7299         if node is None: node__o = None
7300         else: node__o = node._o
7301         libxml2mod.xmlXPathSetContextNode(self._o, node__o)
7302
7303     #
7304     # xpathContext functions from module python
7305     #
7306
7307     def registerXPathFunction(self, name, ns_uri, f):
7308         """Register a Python written function to the XPath interpreter """
7309         ret = libxml2mod.xmlRegisterXPathFunction(self._o, name, ns_uri, f)
7310         return ret
7311
7312     def xpathRegisterVariable(self, name, ns_uri, value):
7313         """Register a variable with the XPath context """
7314         ret = libxml2mod.xmlXPathRegisterVariable(self._o, name, ns_uri, value)
7315         return ret
7316
7317     #
7318     # xpathContext functions from module xpath
7319     #
7320
7321     def xpathContextSetCache(self, active, value, options):
7322         """Creates/frees an object cache on the XPath context. If
7323           activates XPath objects (xmlXPathObject) will be cached
7324           internally to be reused. @options: 0: This will set the
7325           XPath object caching: @value: This will set the maximum
7326           number of XPath objects to be cached per slot There are 5
7327           slots for: node-set, string, number, boolean, and misc
7328           objects. Use <0 for the default number (100). Other values
7329            for @options have currently no effect. """
7330         ret = libxml2mod.xmlXPathContextSetCache(self._o, active, value, options)
7331         return ret
7332
7333     def xpathEval(self, str):
7334         """Evaluate the XPath Location Path in the given context. """
7335         ret = libxml2mod.xmlXPathEval(str, self._o)
7336         if ret is None:raise xpathError('xmlXPathEval() failed')
7337         return xpathObjectRet(ret)
7338
7339     def xpathEvalExpression(self, str):
7340         """Evaluate the XPath expression in the given context. """
7341         ret = libxml2mod.xmlXPathEvalExpression(str, self._o)
7342         if ret is None:raise xpathError('xmlXPathEvalExpression() failed')
7343         return xpathObjectRet(ret)
7344
7345     def xpathFreeContext(self):
7346         """Free up an xmlXPathContext """
7347         libxml2mod.xmlXPathFreeContext(self._o)
7348
7349     #
7350     # xpathContext functions from module xpathInternals
7351     #
7352
7353     def xpathNewParserContext(self, str):
7354         """Create a new xmlXPathParserContext """
7355         ret = libxml2mod.xmlXPathNewParserContext(str, self._o)
7356         if ret is None:raise xpathError('xmlXPathNewParserContext() failed')
7357         __tmp = xpathParserContext(_obj=ret)
7358         return __tmp
7359
7360     def xpathNsLookup(self, prefix):
7361         """Search in the namespace declaration array of the context
7362            for the given namespace name associated to the given prefix """
7363         ret = libxml2mod.xmlXPathNsLookup(self._o, prefix)
7364         return ret
7365
7366     def xpathRegisterAllFunctions(self):
7367         """Registers all default XPath functions in this context """
7368         libxml2mod.xmlXPathRegisterAllFunctions(self._o)
7369
7370     def xpathRegisterNs(self, prefix, ns_uri):
7371         """Register a new namespace. If @ns_uri is None it unregisters
7372            the namespace """
7373         ret = libxml2mod.xmlXPathRegisterNs(self._o, prefix, ns_uri)
7374         return ret
7375
7376     def xpathRegisteredFuncsCleanup(self):
7377         """Cleanup the XPath context data associated to registered
7378            functions """
7379         libxml2mod.xmlXPathRegisteredFuncsCleanup(self._o)
7380
7381     def xpathRegisteredNsCleanup(self):
7382         """Cleanup the XPath context data associated to registered
7383            variables """
7384         libxml2mod.xmlXPathRegisteredNsCleanup(self._o)
7385
7386     def xpathRegisteredVariablesCleanup(self):
7387         """Cleanup the XPath context data associated to registered
7388            variables """
7389         libxml2mod.xmlXPathRegisteredVariablesCleanup(self._o)
7390
7391     def xpathVariableLookup(self, name):
7392         """Search in the Variable array of the context for the given
7393            variable value. """
7394         ret = libxml2mod.xmlXPathVariableLookup(self._o, name)
7395         if ret is None:raise xpathError('xmlXPathVariableLookup() failed')
7396         return xpathObjectRet(ret)
7397
7398     def xpathVariableLookupNS(self, name, ns_uri):
7399         """Search in the Variable array of the context for the given
7400            variable value. """
7401         ret = libxml2mod.xmlXPathVariableLookupNS(self._o, name, ns_uri)
7402         if ret is None:raise xpathError('xmlXPathVariableLookupNS() failed')
7403         return xpathObjectRet(ret)
7404
7405     #
7406     # xpathContext functions from module xpointer
7407     #
7408
7409     def xpointerEval(self, str):
7410         """Evaluate the XPath Location Path in the given context. """
7411         ret = libxml2mod.xmlXPtrEval(str, self._o)
7412         if ret is None:raise treeError('xmlXPtrEval() failed')
7413         return xpathObjectRet(ret)
7414
7415 class xpathParserContext:
7416     def __init__(self, _obj=None):
7417         if _obj != None:self._o = _obj;return
7418         self._o = None
7419
7420     # accessors for xpathParserContext
7421     def context(self):
7422         """Get the xpathContext from an xpathParserContext """
7423         ret = libxml2mod.xmlXPathParserGetContext(self._o)
7424         if ret is None:raise xpathError('xmlXPathParserGetContext() failed')
7425         __tmp = xpathContext(_obj=ret)
7426         return __tmp
7427
7428     #
7429     # xpathParserContext functions from module xpathInternals
7430     #
7431
7432     def xpathAddValues(self):
7433         """Implement the add operation on XPath objects: The numeric
7434           operators convert their operands to numbers as if by
7435            calling the number function. """
7436         libxml2mod.xmlXPathAddValues(self._o)
7437
7438     def xpathBooleanFunction(self, nargs):
7439         """Implement the boolean() XPath function boolean
7440           boolean(object) The boolean function converts its argument
7441           to a boolean as follows: - a number is true if and only if
7442           it is neither positive or negative zero nor NaN - a
7443           node-set is true if and only if it is non-empty - a string
7444            is true if and only if its length is non-zero """
7445         libxml2mod.xmlXPathBooleanFunction(self._o, nargs)
7446
7447     def xpathCeilingFunction(self, nargs):
7448         """Implement the ceiling() XPath function number
7449           ceiling(number) The ceiling function returns the smallest
7450           (closest to negative infinity) number that is not less than
7451            the argument and that is an integer. """
7452         libxml2mod.xmlXPathCeilingFunction(self._o, nargs)
7453
7454     def xpathCompareValues(self, inf, strict):
7455         """Implement the compare operation on XPath objects: @arg1 <
7456           @arg2    (1, 1, ... @arg1 <= @arg2   (1, 0, ... @arg1 >
7457           @arg2    (0, 1, ... @arg1 >= @arg2   (0, 0, ...  When
7458           neither object to be compared is a node-set and the
7459           operator is <=, <, >=, >, then the objects are compared by
7460           converted both objects to numbers and comparing the numbers
7461           according to IEEE 754. The < comparison will be true if and
7462           only if the first number is less than the second number.
7463           The <= comparison will be true if and only if the first
7464           number is less than or equal to the second number. The >
7465           comparison will be true if and only if the first number is
7466           greater than the second number. The >= comparison will be
7467           true if and only if the first number is greater than or
7468            equal to the second number. """
7469         ret = libxml2mod.xmlXPathCompareValues(self._o, inf, strict)
7470         return ret
7471
7472     def xpathConcatFunction(self, nargs):
7473         """Implement the concat() XPath function string concat(string,
7474           string, string*) The concat function returns the
7475            concatenation of its arguments. """
7476         libxml2mod.xmlXPathConcatFunction(self._o, nargs)
7477
7478     def xpathContainsFunction(self, nargs):
7479         """Implement the contains() XPath function boolean
7480           contains(string, string) The contains function returns true
7481           if the first argument string contains the second argument
7482            string, and otherwise returns false. """
7483         libxml2mod.xmlXPathContainsFunction(self._o, nargs)
7484
7485     def xpathCountFunction(self, nargs):
7486         """Implement the count() XPath function number count(node-set) """
7487         libxml2mod.xmlXPathCountFunction(self._o, nargs)
7488
7489     def xpathDivValues(self):
7490         """Implement the div operation on XPath objects @arg1 / @arg2:
7491           The numeric operators convert their operands to numbers as
7492            if by calling the number function. """
7493         libxml2mod.xmlXPathDivValues(self._o)
7494
7495     def xpathEqualValues(self):
7496         """Implement the equal operation on XPath objects content:
7497            @arg1 == @arg2 """
7498         ret = libxml2mod.xmlXPathEqualValues(self._o)
7499         return ret
7500
7501     def xpathErr(self, error):
7502         """Handle an XPath error """
7503         libxml2mod.xmlXPathErr(self._o, error)
7504
7505     def xpathEvalExpr(self):
7506         """Parse and evaluate an XPath expression in the given
7507            context, then push the result on the context stack """
7508         libxml2mod.xmlXPathEvalExpr(self._o)
7509
7510     def xpathFalseFunction(self, nargs):
7511         """Implement the false() XPath function boolean false() """
7512         libxml2mod.xmlXPathFalseFunction(self._o, nargs)
7513
7514     def xpathFloorFunction(self, nargs):
7515         """Implement the floor() XPath function number floor(number)
7516           The floor function returns the largest (closest to positive
7517           infinity) number that is not greater than the argument and
7518            that is an integer. """
7519         libxml2mod.xmlXPathFloorFunction(self._o, nargs)
7520
7521     def xpathFreeParserContext(self):
7522         """Free up an xmlXPathParserContext """
7523         libxml2mod.xmlXPathFreeParserContext(self._o)
7524
7525     def xpathIdFunction(self, nargs):
7526         """Implement the id() XPath function node-set id(object) The
7527           id function selects elements by their unique ID (see [5.2.1
7528           Unique IDs]). When the argument to id is of type node-set,
7529           then the result is the union of the result of applying id
7530           to the string value of each of the nodes in the argument
7531           node-set. When the argument to id is of any other type, the
7532           argument is converted to a string as if by a call to the
7533           string function; the string is split into a
7534           whitespace-separated list of tokens (whitespace is any
7535           sequence of characters matching the production S); the
7536           result is a node-set containing the elements in the same
7537           document as the context node that have a unique ID equal to
7538            any of the tokens in the list. """
7539         libxml2mod.xmlXPathIdFunction(self._o, nargs)
7540
7541     def xpathLangFunction(self, nargs):
7542         """Implement the lang() XPath function boolean lang(string)
7543           The lang function returns true or false depending on
7544           whether the language of the context node as specified by
7545           xml:lang attributes is the same as or is a sublanguage of
7546           the language specified by the argument string. The language
7547           of the context node is determined by the value of the
7548           xml:lang attribute on the context node, or, if the context
7549           node has no xml:lang attribute, by the value of the
7550           xml:lang attribute on the nearest ancestor of the context
7551           node that has an xml:lang attribute. If there is no such
7552            attribute, then lang """
7553         libxml2mod.xmlXPathLangFunction(self._o, nargs)
7554
7555     def xpathLastFunction(self, nargs):
7556         """Implement the last() XPath function number last() The last
7557           function returns the number of nodes in the context node
7558            list. """
7559         libxml2mod.xmlXPathLastFunction(self._o, nargs)
7560
7561     def xpathLocalNameFunction(self, nargs):
7562         """Implement the local-name() XPath function string
7563           local-name(node-set?) The local-name function returns a
7564           string containing the local part of the name of the node in
7565           the argument node-set that is first in document order. If
7566           the node-set is empty or the first node has no name, an
7567           empty string is returned. If the argument is omitted it
7568            defaults to the context node. """
7569         libxml2mod.xmlXPathLocalNameFunction(self._o, nargs)
7570
7571     def xpathModValues(self):
7572         """Implement the mod operation on XPath objects: @arg1 / @arg2
7573           The numeric operators convert their operands to numbers as
7574            if by calling the number function. """
7575         libxml2mod.xmlXPathModValues(self._o)
7576
7577     def xpathMultValues(self):
7578         """Implement the multiply operation on XPath objects: The
7579           numeric operators convert their operands to numbers as if
7580            by calling the number function. """
7581         libxml2mod.xmlXPathMultValues(self._o)
7582
7583     def xpathNamespaceURIFunction(self, nargs):
7584         """Implement the namespace-uri() XPath function string
7585           namespace-uri(node-set?) The namespace-uri function returns
7586           a string containing the namespace URI of the expanded name
7587           of the node in the argument node-set that is first in
7588           document order. If the node-set is empty, the first node
7589           has no name, or the expanded name has no namespace URI, an
7590           empty string is returned. If the argument is omitted it
7591            defaults to the context node. """
7592         libxml2mod.xmlXPathNamespaceURIFunction(self._o, nargs)
7593
7594     def xpathNextAncestor(self, cur):
7595         """Traversal function for the "ancestor" direction the
7596           ancestor axis contains the ancestors of the context node;
7597           the ancestors of the context node consist of the parent of
7598           context node and the parent's parent and so on; the nodes
7599           are ordered in reverse document order; thus the parent is
7600           the first node on the axis, and the parent's parent is the
7601            second node on the axis """
7602         if cur is None: cur__o = None
7603         else: cur__o = cur._o
7604         ret = libxml2mod.xmlXPathNextAncestor(self._o, cur__o)
7605         if ret is None:raise xpathError('xmlXPathNextAncestor() failed')
7606         __tmp = xmlNode(_obj=ret)
7607         return __tmp
7608
7609     def xpathNextAncestorOrSelf(self, cur):
7610         """Traversal function for the "ancestor-or-self" direction he
7611           ancestor-or-self axis contains the context node and
7612           ancestors of the context node in reverse document order;
7613           thus the context node is the first node on the axis, and
7614           the context node's parent the second; parent here is
7615            defined the same as with the parent axis. """
7616         if cur is None: cur__o = None
7617         else: cur__o = cur._o
7618         ret = libxml2mod.xmlXPathNextAncestorOrSelf(self._o, cur__o)
7619         if ret is None:raise xpathError('xmlXPathNextAncestorOrSelf() failed')
7620         __tmp = xmlNode(_obj=ret)
7621         return __tmp
7622
7623     def xpathNextAttribute(self, cur):
7624         """Traversal function for the "attribute" direction TODO:
7625            support DTD inherited default attributes """
7626         if cur is None: cur__o = None
7627         else: cur__o = cur._o
7628         ret = libxml2mod.xmlXPathNextAttribute(self._o, cur__o)
7629         if ret is None:raise xpathError('xmlXPathNextAttribute() failed')
7630         __tmp = xmlNode(_obj=ret)
7631         return __tmp
7632
7633     def xpathNextChild(self, cur):
7634         """Traversal function for the "child" direction The child axis
7635           contains the children of the context node in document order. """
7636         if cur is None: cur__o = None
7637         else: cur__o = cur._o
7638         ret = libxml2mod.xmlXPathNextChild(self._o, cur__o)
7639         if ret is None:raise xpathError('xmlXPathNextChild() failed')
7640         __tmp = xmlNode(_obj=ret)
7641         return __tmp
7642
7643     def xpathNextDescendant(self, cur):
7644         """Traversal function for the "descendant" direction the
7645           descendant axis contains the descendants of the context
7646           node in document order; a descendant is a child or a child
7647            of a child and so on. """
7648         if cur is None: cur__o = None
7649         else: cur__o = cur._o
7650         ret = libxml2mod.xmlXPathNextDescendant(self._o, cur__o)
7651         if ret is None:raise xpathError('xmlXPathNextDescendant() failed')
7652         __tmp = xmlNode(_obj=ret)
7653         return __tmp
7654
7655     def xpathNextDescendantOrSelf(self, cur):
7656         """Traversal function for the "descendant-or-self" direction
7657           the descendant-or-self axis contains the context node and
7658           the descendants of the context node in document order; thus
7659           the context node is the first node on the axis, and the
7660           first child of the context node is the second node on the
7661            axis """
7662         if cur is None: cur__o = None
7663         else: cur__o = cur._o
7664         ret = libxml2mod.xmlXPathNextDescendantOrSelf(self._o, cur__o)
7665         if ret is None:raise xpathError('xmlXPathNextDescendantOrSelf() failed')
7666         __tmp = xmlNode(_obj=ret)
7667         return __tmp
7668
7669     def xpathNextFollowing(self, cur):
7670         """Traversal function for the "following" direction The
7671           following axis contains all nodes in the same document as
7672           the context node that are after the context node in
7673           document order, excluding any descendants and excluding
7674           attribute nodes and namespace nodes; the nodes are ordered
7675            in document order """
7676         if cur is None: cur__o = None
7677         else: cur__o = cur._o
7678         ret = libxml2mod.xmlXPathNextFollowing(self._o, cur__o)
7679         if ret is None:raise xpathError('xmlXPathNextFollowing() failed')
7680         __tmp = xmlNode(_obj=ret)
7681         return __tmp
7682
7683     def xpathNextFollowingSibling(self, cur):
7684         """Traversal function for the "following-sibling" direction
7685           The following-sibling axis contains the following siblings
7686            of the context node in document order. """
7687         if cur is None: cur__o = None
7688         else: cur__o = cur._o
7689         ret = libxml2mod.xmlXPathNextFollowingSibling(self._o, cur__o)
7690         if ret is None:raise xpathError('xmlXPathNextFollowingSibling() failed')
7691         __tmp = xmlNode(_obj=ret)
7692         return __tmp
7693
7694     def xpathNextNamespace(self, cur):
7695         """Traversal function for the "namespace" direction the
7696           namespace axis contains the namespace nodes of the context
7697           node; the order of nodes on this axis is
7698           implementation-defined; the axis will be empty unless the
7699           context node is an element  We keep the XML namespace node
7700            at the end of the list. """
7701         if cur is None: cur__o = None
7702         else: cur__o = cur._o
7703         ret = libxml2mod.xmlXPathNextNamespace(self._o, cur__o)
7704         if ret is None:raise xpathError('xmlXPathNextNamespace() failed')
7705         __tmp = xmlNode(_obj=ret)
7706         return __tmp
7707
7708     def xpathNextParent(self, cur):
7709         """Traversal function for the "parent" direction The parent
7710           axis contains the parent of the context node, if there is
7711            one. """
7712         if cur is None: cur__o = None
7713         else: cur__o = cur._o
7714         ret = libxml2mod.xmlXPathNextParent(self._o, cur__o)
7715         if ret is None:raise xpathError('xmlXPathNextParent() failed')
7716         __tmp = xmlNode(_obj=ret)
7717         return __tmp
7718
7719     def xpathNextPreceding(self, cur):
7720         """Traversal function for the "preceding" direction the
7721           preceding axis contains all nodes in the same document as
7722           the context node that are before the context node in
7723           document order, excluding any ancestors and excluding
7724           attribute nodes and namespace nodes; the nodes are ordered
7725            in reverse document order """
7726         if cur is None: cur__o = None
7727         else: cur__o = cur._o
7728         ret = libxml2mod.xmlXPathNextPreceding(self._o, cur__o)
7729         if ret is None:raise xpathError('xmlXPathNextPreceding() failed')
7730         __tmp = xmlNode(_obj=ret)
7731         return __tmp
7732
7733     def xpathNextPrecedingSibling(self, cur):
7734         """Traversal function for the "preceding-sibling" direction
7735           The preceding-sibling axis contains the preceding siblings
7736           of the context node in reverse document order; the first
7737           preceding sibling is first on the axis; the sibling
7738            preceding that node is the second on the axis and so on. """
7739         if cur is None: cur__o = None
7740         else: cur__o = cur._o
7741         ret = libxml2mod.xmlXPathNextPrecedingSibling(self._o, cur__o)
7742         if ret is None:raise xpathError('xmlXPathNextPrecedingSibling() failed')
7743         __tmp = xmlNode(_obj=ret)
7744         return __tmp
7745
7746     def xpathNextSelf(self, cur):
7747         """Traversal function for the "self" direction The self axis
7748            contains just the context node itself """
7749         if cur is None: cur__o = None
7750         else: cur__o = cur._o
7751         ret = libxml2mod.xmlXPathNextSelf(self._o, cur__o)
7752         if ret is None:raise xpathError('xmlXPathNextSelf() failed')
7753         __tmp = xmlNode(_obj=ret)
7754         return __tmp
7755
7756     def xpathNormalizeFunction(self, nargs):
7757         """Implement the normalize-space() XPath function string
7758           normalize-space(string?) The normalize-space function
7759           returns the argument string with white space normalized by
7760           stripping leading and trailing whitespace and replacing
7761           sequences of whitespace characters by a single space.
7762           Whitespace characters are the same allowed by the S
7763           production in XML. If the argument is omitted, it defaults
7764           to the context node converted to a string, in other words
7765            the value of the context node. """
7766         libxml2mod.xmlXPathNormalizeFunction(self._o, nargs)
7767
7768     def xpathNotEqualValues(self):
7769         """Implement the equal operation on XPath objects content:
7770            @arg1 == @arg2 """
7771         ret = libxml2mod.xmlXPathNotEqualValues(self._o)
7772         return ret
7773
7774     def xpathNotFunction(self, nargs):
7775         """Implement the not() XPath function boolean not(boolean) The
7776           not function returns true if its argument is false, and
7777            false otherwise. """
7778         libxml2mod.xmlXPathNotFunction(self._o, nargs)
7779
7780     def xpathNumberFunction(self, nargs):
7781         """Implement the number() XPath function number number(object?) """
7782         libxml2mod.xmlXPathNumberFunction(self._o, nargs)
7783
7784     def xpathParseNCName(self):
7785         """parse an XML namespace non qualified name.  [NS 3] NCName
7786           ::= (Letter | '_') (NCNameChar)*  [NS 4] NCNameChar ::=
7787            Letter | Digit | '.' | '-' | '_' | CombiningChar | Extender """
7788         ret = libxml2mod.xmlXPathParseNCName(self._o)
7789         return ret
7790
7791     def xpathParseName(self):
7792         """parse an XML name  [4] NameChar ::= Letter | Digit | '.' |
7793           '-' | '_' | ':' | CombiningChar | Extender  [5] Name ::=
7794            (Letter | '_' | ':') (NameChar)* """
7795         ret = libxml2mod.xmlXPathParseName(self._o)
7796         return ret
7797
7798     def xpathPopBoolean(self):
7799         """Pops a boolean from the stack, handling conversion if
7800            needed. Check error with #xmlXPathCheckError. """
7801         ret = libxml2mod.xmlXPathPopBoolean(self._o)
7802         return ret
7803
7804     def xpathPopNumber(self):
7805         """Pops a number from the stack, handling conversion if
7806            needed. Check error with #xmlXPathCheckError. """
7807         ret = libxml2mod.xmlXPathPopNumber(self._o)
7808         return ret
7809
7810     def xpathPopString(self):
7811         """Pops a string from the stack, handling conversion if
7812            needed. Check error with #xmlXPathCheckError. """
7813         ret = libxml2mod.xmlXPathPopString(self._o)
7814         return ret
7815
7816     def xpathPositionFunction(self, nargs):
7817         """Implement the position() XPath function number position()
7818           The position function returns the position of the context
7819           node in the context node list. The first position is 1, and
7820            so the last position will be equal to last(). """
7821         libxml2mod.xmlXPathPositionFunction(self._o, nargs)
7822
7823     def xpathRoot(self):
7824         """Initialize the context to the root of the document """
7825         libxml2mod.xmlXPathRoot(self._o)
7826
7827     def xpathRoundFunction(self, nargs):
7828         """Implement the round() XPath function number round(number)
7829           The round function returns the number that is closest to
7830           the argument and that is an integer. If there are two such
7831            numbers, then the one that is even is returned. """
7832         libxml2mod.xmlXPathRoundFunction(self._o, nargs)
7833
7834     def xpathStartsWithFunction(self, nargs):
7835         """Implement the starts-with() XPath function boolean
7836           starts-with(string, string) The starts-with function
7837           returns true if the first argument string starts with the
7838            second argument string, and otherwise returns false. """
7839         libxml2mod.xmlXPathStartsWithFunction(self._o, nargs)
7840
7841     def xpathStringFunction(self, nargs):
7842         """Implement the string() XPath function string
7843           string(object?) The string function converts an object to a
7844           string as follows: - A node-set is converted to a string by
7845           returning the value of the node in the node-set that is
7846           first in document order. If the node-set is empty, an empty
7847           string is returned. - A number is converted to a string as
7848           follows + NaN is converted to the string NaN + positive
7849           zero is converted to the string 0 + negative zero is
7850           converted to the string 0 + positive infinity is converted
7851           to the string Infinity + negative infinity is converted to
7852           the string -Infinity + if the number is an integer, the
7853           number is represented in decimal form as a Number with no
7854           decimal point and no leading zeros, preceded by a minus
7855           sign (-) if the number is negative + otherwise, the number
7856           is represented in decimal form as a Number including a
7857           decimal point with at least one digit before the decimal
7858           point and at least one digit after the decimal point,
7859           preceded by a minus sign (-) if the number is negative;
7860           there must be no leading zeros before the decimal point
7861           apart possibly from the one required digit immediately
7862           before the decimal point; beyond the one required digit
7863           after the decimal point there must be as many, but only as
7864           many, more digits as are needed to uniquely distinguish the
7865           number from all other IEEE 754 numeric values. - The
7866           boolean false value is converted to the string false. The
7867           boolean true value is converted to the string true.  If the
7868           argument is omitted, it defaults to a node-set with the
7869            context node as its only member. """
7870         libxml2mod.xmlXPathStringFunction(self._o, nargs)
7871
7872     def xpathStringLengthFunction(self, nargs):
7873         """Implement the string-length() XPath function number
7874           string-length(string?) The string-length returns the number
7875           of characters in the string (see [3.6 Strings]). If the
7876           argument is omitted, it defaults to the context node
7877           converted to a string, in other words the value of the
7878            context node. """
7879         libxml2mod.xmlXPathStringLengthFunction(self._o, nargs)
7880
7881     def xpathSubValues(self):
7882         """Implement the subtraction operation on XPath objects: The
7883           numeric operators convert their operands to numbers as if
7884            by calling the number function. """
7885         libxml2mod.xmlXPathSubValues(self._o)
7886
7887     def xpathSubstringAfterFunction(self, nargs):
7888         """Implement the substring-after() XPath function string
7889           substring-after(string, string) The substring-after
7890           function returns the substring of the first argument string
7891           that follows the first occurrence of the second argument
7892           string in the first argument string, or the empty stringi
7893           if the first argument string does not contain the second
7894           argument string. For example,
7895           substring-after("1999/04/01","/") returns 04/01, and
7896            substring-after("1999/04/01","19") returns 99/04/01. """
7897         libxml2mod.xmlXPathSubstringAfterFunction(self._o, nargs)
7898
7899     def xpathSubstringBeforeFunction(self, nargs):
7900         """Implement the substring-before() XPath function string
7901           substring-before(string, string) The substring-before
7902           function returns the substring of the first argument string
7903           that precedes the first occurrence of the second argument
7904           string in the first argument string, or the empty string if
7905           the first argument string does not contain the second
7906           argument string. For example,
7907            substring-before("1999/04/01","/") returns 1999. """
7908         libxml2mod.xmlXPathSubstringBeforeFunction(self._o, nargs)
7909
7910     def xpathSubstringFunction(self, nargs):
7911         """Implement the substring() XPath function string
7912           substring(string, number, number?) The substring function
7913           returns the substring of the first argument starting at the
7914           position specified in the second argument with length
7915           specified in the third argument. For example,
7916           substring("12345",2,3) returns "234". If the third argument
7917           is not specified, it returns the substring starting at the
7918           position specified in the second argument and continuing to
7919           the end of the string. For example, substring("12345",2)
7920           returns "2345".  More precisely, each character in the
7921           string (see [3.6 Strings]) is considered to have a numeric
7922           position: the position of the first character is 1, the
7923           position of the second character is 2 and so on. The
7924           returned substring contains those characters for which the
7925           position of the character is greater than or equal to the
7926           second argument and, if the third argument is specified,
7927           less than the sum of the second and third arguments; the
7928           comparisons and addition used for the above follow the
7929           standard IEEE 754 rules. Thus: - substring("12345", 1.5,
7930           2.6) returns "234" - substring("12345", 0, 3) returns "12"
7931           - substring("12345", 0 div 0, 3) returns "" -
7932           substring("12345", 1, 0 div 0) returns "" -
7933           substring("12345", -42, 1 div 0) returns "12345" -
7934            substring("12345", -1 div 0, 1 div 0) returns "" """
7935         libxml2mod.xmlXPathSubstringFunction(self._o, nargs)
7936
7937     def xpathSumFunction(self, nargs):
7938         """Implement the sum() XPath function number sum(node-set) The
7939           sum function returns the sum of the values of the nodes in
7940            the argument node-set. """
7941         libxml2mod.xmlXPathSumFunction(self._o, nargs)
7942
7943     def xpathTranslateFunction(self, nargs):
7944         """Implement the translate() XPath function string
7945           translate(string, string, string) The translate function
7946           returns the first argument string with occurrences of
7947           characters in the second argument string replaced by the
7948           character at the corresponding position in the third
7949           argument string. For example, translate("bar","abc","ABC")
7950           returns the string BAr. If there is a character in the
7951           second argument string with no character at a corresponding
7952           position in the third argument string (because the second
7953           argument string is longer than the third argument string),
7954           then occurrences of that character in the first argument
7955           string are removed. For example,
7956            translate("--aaa--","abc-","ABC") """
7957         libxml2mod.xmlXPathTranslateFunction(self._o, nargs)
7958
7959     def xpathTrueFunction(self, nargs):
7960         """Implement the true() XPath function boolean true() """
7961         libxml2mod.xmlXPathTrueFunction(self._o, nargs)
7962
7963     def xpathValueFlipSign(self):
7964         """Implement the unary - operation on an XPath object The
7965           numeric operators convert their operands to numbers as if
7966            by calling the number function. """
7967         libxml2mod.xmlXPathValueFlipSign(self._o)
7968
7969     def xpatherror(self, file, line, no):
7970         """Formats an error message. """
7971         libxml2mod.xmlXPatherror(self._o, file, line, no)
7972
7973     #
7974     # xpathParserContext functions from module xpointer
7975     #
7976
7977     def xpointerEvalRangePredicate(self):
7978         """[8]   Predicate ::=   '[' PredicateExpr ']' [9]  
7979           PredicateExpr ::=   Expr  Evaluate a predicate as in
7980           xmlXPathEvalPredicate() but for a Location Set instead of a
7981            node set """
7982         libxml2mod.xmlXPtrEvalRangePredicate(self._o)
7983
7984     def xpointerRangeToFunction(self, nargs):
7985         """Implement the range-to() XPointer function """
7986         libxml2mod.xmlXPtrRangeToFunction(self._o, nargs)
7987
7988 # xlinkShow
7989 XLINK_SHOW_NONE = 0
7990 XLINK_SHOW_NEW = 1
7991 XLINK_SHOW_EMBED = 2
7992 XLINK_SHOW_REPLACE = 3
7993
7994 # xmlRelaxNGParserFlag
7995 XML_RELAXNGP_NONE = 0
7996 XML_RELAXNGP_FREE_DOC = 1
7997 XML_RELAXNGP_CRNG = 2
7998
7999 # xmlBufferAllocationScheme
8000 XML_BUFFER_ALLOC_DOUBLEIT = 1
8001 XML_BUFFER_ALLOC_EXACT = 2
8002 XML_BUFFER_ALLOC_IMMUTABLE = 3
8003 XML_BUFFER_ALLOC_IO = 4
8004 XML_BUFFER_ALLOC_HYBRID = 5
8005
8006 # xmlParserSeverities
8007 XML_PARSER_SEVERITY_VALIDITY_WARNING = 1
8008 XML_PARSER_SEVERITY_VALIDITY_ERROR = 2
8009 XML_PARSER_SEVERITY_WARNING = 3
8010 XML_PARSER_SEVERITY_ERROR = 4
8011
8012 # xmlAttributeDefault
8013 XML_ATTRIBUTE_NONE = 1
8014 XML_ATTRIBUTE_REQUIRED = 2
8015 XML_ATTRIBUTE_IMPLIED = 3
8016 XML_ATTRIBUTE_FIXED = 4
8017
8018 # xmlSchemaValType
8019 XML_SCHEMAS_UNKNOWN = 0
8020 XML_SCHEMAS_STRING = 1
8021 XML_SCHEMAS_NORMSTRING = 2
8022 XML_SCHEMAS_DECIMAL = 3
8023 XML_SCHEMAS_TIME = 4
8024 XML_SCHEMAS_GDAY = 5
8025 XML_SCHEMAS_GMONTH = 6
8026 XML_SCHEMAS_GMONTHDAY = 7
8027 XML_SCHEMAS_GYEAR = 8
8028 XML_SCHEMAS_GYEARMONTH = 9
8029 XML_SCHEMAS_DATE = 10
8030 XML_SCHEMAS_DATETIME = 11
8031 XML_SCHEMAS_DURATION = 12
8032 XML_SCHEMAS_FLOAT = 13
8033 XML_SCHEMAS_DOUBLE = 14
8034 XML_SCHEMAS_BOOLEAN = 15
8035 XML_SCHEMAS_TOKEN = 16
8036 XML_SCHEMAS_LANGUAGE = 17
8037 XML_SCHEMAS_NMTOKEN = 18
8038 XML_SCHEMAS_NMTOKENS = 19
8039 XML_SCHEMAS_NAME = 20
8040 XML_SCHEMAS_QNAME = 21
8041 XML_SCHEMAS_NCNAME = 22
8042 XML_SCHEMAS_ID = 23
8043 XML_SCHEMAS_IDREF = 24
8044 XML_SCHEMAS_IDREFS = 25
8045 XML_SCHEMAS_ENTITY = 26
8046 XML_SCHEMAS_ENTITIES = 27
8047 XML_SCHEMAS_NOTATION = 28
8048 XML_SCHEMAS_ANYURI = 29
8049 XML_SCHEMAS_INTEGER = 30
8050 XML_SCHEMAS_NPINTEGER = 31
8051 XML_SCHEMAS_NINTEGER = 32
8052 XML_SCHEMAS_NNINTEGER = 33
8053 XML_SCHEMAS_PINTEGER = 34
8054 XML_SCHEMAS_INT = 35
8055 XML_SCHEMAS_UINT = 36
8056 XML_SCHEMAS_LONG = 37
8057 XML_SCHEMAS_ULONG = 38
8058 XML_SCHEMAS_SHORT = 39
8059 XML_SCHEMAS_USHORT = 40
8060 XML_SCHEMAS_BYTE = 41
8061 XML_SCHEMAS_UBYTE = 42
8062 XML_SCHEMAS_HEXBINARY = 43
8063 XML_SCHEMAS_BASE64BINARY = 44
8064 XML_SCHEMAS_ANYTYPE = 45
8065 XML_SCHEMAS_ANYSIMPLETYPE = 46
8066
8067 # xmlParserInputState
8068 XML_PARSER_EOF = -1
8069 XML_PARSER_START = 0
8070 XML_PARSER_MISC = 1
8071 XML_PARSER_PI = 2
8072 XML_PARSER_DTD = 3
8073 XML_PARSER_PROLOG = 4
8074 XML_PARSER_COMMENT = 5
8075 XML_PARSER_START_TAG = 6
8076 XML_PARSER_CONTENT = 7
8077 XML_PARSER_CDATA_SECTION = 8
8078 XML_PARSER_END_TAG = 9
8079 XML_PARSER_ENTITY_DECL = 10
8080 XML_PARSER_ENTITY_VALUE = 11
8081 XML_PARSER_ATTRIBUTE_VALUE = 12
8082 XML_PARSER_SYSTEM_LITERAL = 13
8083 XML_PARSER_EPILOG = 14
8084 XML_PARSER_IGNORE = 15
8085 XML_PARSER_PUBLIC_LITERAL = 16
8086
8087 # xmlEntityType
8088 XML_INTERNAL_GENERAL_ENTITY = 1
8089 XML_EXTERNAL_GENERAL_PARSED_ENTITY = 2
8090 XML_EXTERNAL_GENERAL_UNPARSED_ENTITY = 3
8091 XML_INTERNAL_PARAMETER_ENTITY = 4
8092 XML_EXTERNAL_PARAMETER_ENTITY = 5
8093 XML_INTERNAL_PREDEFINED_ENTITY = 6
8094
8095 # xmlSaveOption
8096 XML_SAVE_FORMAT = 1
8097 XML_SAVE_NO_DECL = 2
8098 XML_SAVE_NO_EMPTY = 4
8099 XML_SAVE_NO_XHTML = 8
8100 XML_SAVE_XHTML = 16
8101 XML_SAVE_AS_XML = 32
8102 XML_SAVE_AS_HTML = 64
8103 XML_SAVE_WSNONSIG = 128
8104
8105 # xmlPatternFlags
8106 XML_PATTERN_DEFAULT = 0
8107 XML_PATTERN_XPATH = 1
8108 XML_PATTERN_XSSEL = 2
8109 XML_PATTERN_XSFIELD = 4
8110
8111 # xmlParserErrors
8112 XML_ERR_OK = 0
8113 XML_ERR_INTERNAL_ERROR = 1
8114 XML_ERR_NO_MEMORY = 2
8115 XML_ERR_DOCUMENT_START = 3
8116 XML_ERR_DOCUMENT_EMPTY = 4
8117 XML_ERR_DOCUMENT_END = 5
8118 XML_ERR_INVALID_HEX_CHARREF = 6
8119 XML_ERR_INVALID_DEC_CHARREF = 7
8120 XML_ERR_INVALID_CHARREF = 8
8121 XML_ERR_INVALID_CHAR = 9
8122 XML_ERR_CHARREF_AT_EOF = 10
8123 XML_ERR_CHARREF_IN_PROLOG = 11
8124 XML_ERR_CHARREF_IN_EPILOG = 12
8125 XML_ERR_CHARREF_IN_DTD = 13
8126 XML_ERR_ENTITYREF_AT_EOF = 14
8127 XML_ERR_ENTITYREF_IN_PROLOG = 15
8128 XML_ERR_ENTITYREF_IN_EPILOG = 16
8129 XML_ERR_ENTITYREF_IN_DTD = 17
8130 XML_ERR_PEREF_AT_EOF = 18
8131 XML_ERR_PEREF_IN_PROLOG = 19
8132 XML_ERR_PEREF_IN_EPILOG = 20
8133 XML_ERR_PEREF_IN_INT_SUBSET = 21
8134 XML_ERR_ENTITYREF_NO_NAME = 22
8135 XML_ERR_ENTITYREF_SEMICOL_MISSING = 23
8136 XML_ERR_PEREF_NO_NAME = 24
8137 XML_ERR_PEREF_SEMICOL_MISSING = 25
8138 XML_ERR_UNDECLARED_ENTITY = 26
8139 XML_WAR_UNDECLARED_ENTITY = 27
8140 XML_ERR_UNPARSED_ENTITY = 28
8141 XML_ERR_ENTITY_IS_EXTERNAL = 29
8142 XML_ERR_ENTITY_IS_PARAMETER = 30
8143 XML_ERR_UNKNOWN_ENCODING = 31
8144 XML_ERR_UNSUPPORTED_ENCODING = 32
8145 XML_ERR_STRING_NOT_STARTED = 33
8146 XML_ERR_STRING_NOT_CLOSED = 34
8147 XML_ERR_NS_DECL_ERROR = 35
8148 XML_ERR_ENTITY_NOT_STARTED = 36
8149 XML_ERR_ENTITY_NOT_FINISHED = 37
8150 XML_ERR_LT_IN_ATTRIBUTE = 38
8151 XML_ERR_ATTRIBUTE_NOT_STARTED = 39
8152 XML_ERR_ATTRIBUTE_NOT_FINISHED = 40
8153 XML_ERR_ATTRIBUTE_WITHOUT_VALUE = 41
8154 XML_ERR_ATTRIBUTE_REDEFINED = 42
8155 XML_ERR_LITERAL_NOT_STARTED = 43
8156 XML_ERR_LITERAL_NOT_FINISHED = 44
8157 XML_ERR_COMMENT_NOT_FINISHED = 45
8158 XML_ERR_PI_NOT_STARTED = 46
8159 XML_ERR_PI_NOT_FINISHED = 47
8160 XML_ERR_NOTATION_NOT_STARTED = 48
8161 XML_ERR_NOTATION_NOT_FINISHED = 49
8162 XML_ERR_ATTLIST_NOT_STARTED = 50
8163 XML_ERR_ATTLIST_NOT_FINISHED = 51
8164 XML_ERR_MIXED_NOT_STARTED = 52
8165 XML_ERR_MIXED_NOT_FINISHED = 53
8166 XML_ERR_ELEMCONTENT_NOT_STARTED = 54
8167 XML_ERR_ELEMCONTENT_NOT_FINISHED = 55
8168 XML_ERR_XMLDECL_NOT_STARTED = 56
8169 XML_ERR_XMLDECL_NOT_FINISHED = 57
8170 XML_ERR_CONDSEC_NOT_STARTED = 58
8171 XML_ERR_CONDSEC_NOT_FINISHED = 59
8172 XML_ERR_EXT_SUBSET_NOT_FINISHED = 60
8173 XML_ERR_DOCTYPE_NOT_FINISHED = 61
8174 XML_ERR_MISPLACED_CDATA_END = 62
8175 XML_ERR_CDATA_NOT_FINISHED = 63
8176 XML_ERR_RESERVED_XML_NAME = 64
8177 XML_ERR_SPACE_REQUIRED = 65
8178 XML_ERR_SEPARATOR_REQUIRED = 66
8179 XML_ERR_NMTOKEN_REQUIRED = 67
8180 XML_ERR_NAME_REQUIRED = 68
8181 XML_ERR_PCDATA_REQUIRED = 69
8182 XML_ERR_URI_REQUIRED = 70
8183 XML_ERR_PUBID_REQUIRED = 71
8184 XML_ERR_LT_REQUIRED = 72
8185 XML_ERR_GT_REQUIRED = 73
8186 XML_ERR_LTSLASH_REQUIRED = 74
8187 XML_ERR_EQUAL_REQUIRED = 75
8188 XML_ERR_TAG_NAME_MISMATCH = 76
8189 XML_ERR_TAG_NOT_FINISHED = 77
8190 XML_ERR_STANDALONE_VALUE = 78
8191 XML_ERR_ENCODING_NAME = 79
8192 XML_ERR_HYPHEN_IN_COMMENT = 80
8193 XML_ERR_INVALID_ENCODING = 81
8194 XML_ERR_EXT_ENTITY_STANDALONE = 82
8195 XML_ERR_CONDSEC_INVALID = 83
8196 XML_ERR_VALUE_REQUIRED = 84
8197 XML_ERR_NOT_WELL_BALANCED = 85
8198 XML_ERR_EXTRA_CONTENT = 86
8199 XML_ERR_ENTITY_CHAR_ERROR = 87
8200 XML_ERR_ENTITY_PE_INTERNAL = 88
8201 XML_ERR_ENTITY_LOOP = 89
8202 XML_ERR_ENTITY_BOUNDARY = 90
8203 XML_ERR_INVALID_URI = 91
8204 XML_ERR_URI_FRAGMENT = 92
8205 XML_WAR_CATALOG_PI = 93
8206 XML_ERR_NO_DTD = 94
8207 XML_ERR_CONDSEC_INVALID_KEYWORD = 95
8208 XML_ERR_VERSION_MISSING = 96
8209 XML_WAR_UNKNOWN_VERSION = 97
8210 XML_WAR_LANG_VALUE = 98
8211 XML_WAR_NS_URI = 99
8212 XML_WAR_NS_URI_RELATIVE = 100
8213 XML_ERR_MISSING_ENCODING = 101
8214 XML_WAR_SPACE_VALUE = 102
8215 XML_ERR_NOT_STANDALONE = 103
8216 XML_ERR_ENTITY_PROCESSING = 104
8217 XML_ERR_NOTATION_PROCESSING = 105
8218 XML_WAR_NS_COLUMN = 106
8219 XML_WAR_ENTITY_REDEFINED = 107
8220 XML_ERR_UNKNOWN_VERSION = 108
8221 XML_ERR_VERSION_MISMATCH = 109
8222 XML_ERR_NAME_TOO_LONG = 110
8223 XML_ERR_USER_STOP = 111
8224 XML_NS_ERR_XML_NAMESPACE = 200
8225 XML_NS_ERR_UNDEFINED_NAMESPACE = 201
8226 XML_NS_ERR_QNAME = 202
8227 XML_NS_ERR_ATTRIBUTE_REDEFINED = 203
8228 XML_NS_ERR_EMPTY = 204
8229 XML_NS_ERR_COLON = 205
8230 XML_DTD_ATTRIBUTE_DEFAULT = 500
8231 XML_DTD_ATTRIBUTE_REDEFINED = 501
8232 XML_DTD_ATTRIBUTE_VALUE = 502
8233 XML_DTD_CONTENT_ERROR = 503
8234 XML_DTD_CONTENT_MODEL = 504
8235 XML_DTD_CONTENT_NOT_DETERMINIST = 505
8236 XML_DTD_DIFFERENT_PREFIX = 506
8237 XML_DTD_ELEM_DEFAULT_NAMESPACE = 507
8238 XML_DTD_ELEM_NAMESPACE = 508
8239 XML_DTD_ELEM_REDEFINED = 509
8240 XML_DTD_EMPTY_NOTATION = 510
8241 XML_DTD_ENTITY_TYPE = 511
8242 XML_DTD_ID_FIXED = 512
8243 XML_DTD_ID_REDEFINED = 513
8244 XML_DTD_ID_SUBSET = 514
8245 XML_DTD_INVALID_CHILD = 515
8246 XML_DTD_INVALID_DEFAULT = 516
8247 XML_DTD_LOAD_ERROR = 517
8248 XML_DTD_MISSING_ATTRIBUTE = 518
8249 XML_DTD_MIXED_CORRUPT = 519
8250 XML_DTD_MULTIPLE_ID = 520
8251 XML_DTD_NO_DOC = 521
8252 XML_DTD_NO_DTD = 522
8253 XML_DTD_NO_ELEM_NAME = 523
8254 XML_DTD_NO_PREFIX = 524
8255 XML_DTD_NO_ROOT = 525
8256 XML_DTD_NOTATION_REDEFINED = 526
8257 XML_DTD_NOTATION_VALUE = 527
8258 XML_DTD_NOT_EMPTY = 528
8259 XML_DTD_NOT_PCDATA = 529
8260 XML_DTD_NOT_STANDALONE = 530
8261 XML_DTD_ROOT_NAME = 531
8262 XML_DTD_STANDALONE_WHITE_SPACE = 532
8263 XML_DTD_UNKNOWN_ATTRIBUTE = 533
8264 XML_DTD_UNKNOWN_ELEM = 534
8265 XML_DTD_UNKNOWN_ENTITY = 535
8266 XML_DTD_UNKNOWN_ID = 536
8267 XML_DTD_UNKNOWN_NOTATION = 537
8268 XML_DTD_STANDALONE_DEFAULTED = 538
8269 XML_DTD_XMLID_VALUE = 539
8270 XML_DTD_XMLID_TYPE = 540
8271 XML_DTD_DUP_TOKEN = 541
8272 XML_HTML_STRUCURE_ERROR = 800
8273 XML_HTML_UNKNOWN_TAG = 801
8274 XML_RNGP_ANYNAME_ATTR_ANCESTOR = 1000
8275 XML_RNGP_ATTR_CONFLICT = 1001
8276 XML_RNGP_ATTRIBUTE_CHILDREN = 1002
8277 XML_RNGP_ATTRIBUTE_CONTENT = 1003
8278 XML_RNGP_ATTRIBUTE_EMPTY = 1004
8279 XML_RNGP_ATTRIBUTE_NOOP = 1005
8280 XML_RNGP_CHOICE_CONTENT = 1006
8281 XML_RNGP_CHOICE_EMPTY = 1007
8282 XML_RNGP_CREATE_FAILURE = 1008
8283 XML_RNGP_DATA_CONTENT = 1009
8284 XML_RNGP_DEF_CHOICE_AND_INTERLEAVE = 1010
8285 XML_RNGP_DEFINE_CREATE_FAILED = 1011
8286 XML_RNGP_DEFINE_EMPTY = 1012
8287 XML_RNGP_DEFINE_MISSING = 1013
8288 XML_RNGP_DEFINE_NAME_MISSING = 1014
8289 XML_RNGP_ELEM_CONTENT_EMPTY = 1015
8290 XML_RNGP_ELEM_CONTENT_ERROR = 1016
8291 XML_RNGP_ELEMENT_EMPTY = 1017
8292 XML_RNGP_ELEMENT_CONTENT = 1018
8293 XML_RNGP_ELEMENT_NAME = 1019
8294 XML_RNGP_ELEMENT_NO_CONTENT = 1020
8295 XML_RNGP_ELEM_TEXT_CONFLICT = 1021
8296 XML_RNGP_EMPTY = 1022
8297 XML_RNGP_EMPTY_CONSTRUCT = 1023
8298 XML_RNGP_EMPTY_CONTENT = 1024
8299 XML_RNGP_EMPTY_NOT_EMPTY = 1025
8300 XML_RNGP_ERROR_TYPE_LIB = 1026
8301 XML_RNGP_EXCEPT_EMPTY = 1027
8302 XML_RNGP_EXCEPT_MISSING = 1028
8303 XML_RNGP_EXCEPT_MULTIPLE = 1029
8304 XML_RNGP_EXCEPT_NO_CONTENT = 1030
8305 XML_RNGP_EXTERNALREF_EMTPY = 1031
8306 XML_RNGP_EXTERNAL_REF_FAILURE = 1032
8307 XML_RNGP_EXTERNALREF_RECURSE = 1033
8308 XML_RNGP_FORBIDDEN_ATTRIBUTE = 1034
8309 XML_RNGP_FOREIGN_ELEMENT = 1035
8310 XML_RNGP_GRAMMAR_CONTENT = 1036
8311 XML_RNGP_GRAMMAR_EMPTY = 1037
8312 XML_RNGP_GRAMMAR_MISSING = 1038
8313 XML_RNGP_GRAMMAR_NO_START = 1039
8314 XML_RNGP_GROUP_ATTR_CONFLICT = 1040
8315 XML_RNGP_HREF_ERROR = 1041
8316 XML_RNGP_INCLUDE_EMPTY = 1042
8317 XML_RNGP_INCLUDE_FAILURE = 1043
8318 XML_RNGP_INCLUDE_RECURSE = 1044
8319 XML_RNGP_INTERLEAVE_ADD = 1045
8320 XML_RNGP_INTERLEAVE_CREATE_FAILED = 1046
8321 XML_RNGP_INTERLEAVE_EMPTY = 1047
8322 XML_RNGP_INTERLEAVE_NO_CONTENT = 1048
8323 XML_RNGP_INVALID_DEFINE_NAME = 1049
8324 XML_RNGP_INVALID_URI = 1050
8325 XML_RNGP_INVALID_VALUE = 1051
8326 XML_RNGP_MISSING_HREF = 1052
8327 XML_RNGP_NAME_MISSING = 1053
8328 XML_RNGP_NEED_COMBINE = 1054
8329 XML_RNGP_NOTALLOWED_NOT_EMPTY = 1055
8330 XML_RNGP_NSNAME_ATTR_ANCESTOR = 1056
8331 XML_RNGP_NSNAME_NO_NS = 1057
8332 XML_RNGP_PARAM_FORBIDDEN = 1058
8333 XML_RNGP_PARAM_NAME_MISSING = 1059
8334 XML_RNGP_PARENTREF_CREATE_FAILED = 1060
8335 XML_RNGP_PARENTREF_NAME_INVALID = 1061
8336 XML_RNGP_PARENTREF_NO_NAME = 1062
8337 XML_RNGP_PARENTREF_NO_PARENT = 1063
8338 XML_RNGP_PARENTREF_NOT_EMPTY = 1064
8339 XML_RNGP_PARSE_ERROR = 1065
8340 XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME = 1066
8341 XML_RNGP_PAT_ATTR_ATTR = 1067
8342 XML_RNGP_PAT_ATTR_ELEM = 1068
8343 XML_RNGP_PAT_DATA_EXCEPT_ATTR = 1069
8344 XML_RNGP_PAT_DATA_EXCEPT_ELEM = 1070
8345 XML_RNGP_PAT_DATA_EXCEPT_EMPTY = 1071
8346 XML_RNGP_PAT_DATA_EXCEPT_GROUP = 1072
8347 XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE = 1073
8348 XML_RNGP_PAT_DATA_EXCEPT_LIST = 1074
8349 XML_RNGP_PAT_DATA_EXCEPT_ONEMORE = 1075
8350 XML_RNGP_PAT_DATA_EXCEPT_REF = 1076
8351 XML_RNGP_PAT_DATA_EXCEPT_TEXT = 1077
8352 XML_RNGP_PAT_LIST_ATTR = 1078
8353 XML_RNGP_PAT_LIST_ELEM = 1079
8354 XML_RNGP_PAT_LIST_INTERLEAVE = 1080
8355 XML_RNGP_PAT_LIST_LIST = 1081
8356 XML_RNGP_PAT_LIST_REF = 1082
8357 XML_RNGP_PAT_LIST_TEXT = 1083
8358 XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME = 1084
8359 XML_RNGP_PAT_NSNAME_EXCEPT_NSNAME = 1085
8360 XML_RNGP_PAT_ONEMORE_GROUP_ATTR = 1086
8361 XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR = 1087
8362 XML_RNGP_PAT_START_ATTR = 1088
8363 XML_RNGP_PAT_START_DATA = 1089
8364 XML_RNGP_PAT_START_EMPTY = 1090
8365 XML_RNGP_PAT_START_GROUP = 1091
8366 XML_RNGP_PAT_START_INTERLEAVE = 1092
8367 XML_RNGP_PAT_START_LIST = 1093
8368 XML_RNGP_PAT_START_ONEMORE = 1094
8369 XML_RNGP_PAT_START_TEXT = 1095
8370 XML_RNGP_PAT_START_VALUE = 1096
8371 XML_RNGP_PREFIX_UNDEFINED = 1097
8372 XML_RNGP_REF_CREATE_FAILED = 1098
8373 XML_RNGP_REF_CYCLE = 1099
8374 XML_RNGP_REF_NAME_INVALID = 1100
8375 XML_RNGP_REF_NO_DEF = 1101
8376 XML_RNGP_REF_NO_NAME = 1102
8377 XML_RNGP_REF_NOT_EMPTY = 1103
8378 XML_RNGP_START_CHOICE_AND_INTERLEAVE = 1104
8379 XML_RNGP_START_CONTENT = 1105
8380 XML_RNGP_START_EMPTY = 1106
8381 XML_RNGP_START_MISSING = 1107
8382 XML_RNGP_TEXT_EXPECTED = 1108
8383 XML_RNGP_TEXT_HAS_CHILD = 1109
8384 XML_RNGP_TYPE_MISSING = 1110
8385 XML_RNGP_TYPE_NOT_FOUND = 1111
8386 XML_RNGP_TYPE_VALUE = 1112
8387 XML_RNGP_UNKNOWN_ATTRIBUTE = 1113
8388 XML_RNGP_UNKNOWN_COMBINE = 1114
8389 XML_RNGP_UNKNOWN_CONSTRUCT = 1115
8390 XML_RNGP_UNKNOWN_TYPE_LIB = 1116
8391 XML_RNGP_URI_FRAGMENT = 1117
8392 XML_RNGP_URI_NOT_ABSOLUTE = 1118
8393 XML_RNGP_VALUE_EMPTY = 1119
8394 XML_RNGP_VALUE_NO_CONTENT = 1120
8395 XML_RNGP_XMLNS_NAME = 1121
8396 XML_RNGP_XML_NS = 1122
8397 XML_XPATH_EXPRESSION_OK = 1200
8398 XML_XPATH_NUMBER_ERROR = 1201
8399 XML_XPATH_UNFINISHED_LITERAL_ERROR = 1202
8400 XML_XPATH_START_LITERAL_ERROR = 1203
8401 XML_XPATH_VARIABLE_REF_ERROR = 1204
8402 XML_XPATH_UNDEF_VARIABLE_ERROR = 1205
8403 XML_XPATH_INVALID_PREDICATE_ERROR = 1206
8404 XML_XPATH_EXPR_ERROR = 1207
8405 XML_XPATH_UNCLOSED_ERROR = 1208
8406 XML_XPATH_UNKNOWN_FUNC_ERROR = 1209
8407 XML_XPATH_INVALID_OPERAND = 1210
8408 XML_XPATH_INVALID_TYPE = 1211
8409 XML_XPATH_INVALID_ARITY = 1212
8410 XML_XPATH_INVALID_CTXT_SIZE = 1213
8411 XML_XPATH_INVALID_CTXT_POSITION = 1214
8412 XML_XPATH_MEMORY_ERROR = 1215
8413 XML_XPTR_SYNTAX_ERROR = 1216
8414 XML_XPTR_RESOURCE_ERROR = 1217
8415 XML_XPTR_SUB_RESOURCE_ERROR = 1218
8416 XML_XPATH_UNDEF_PREFIX_ERROR = 1219
8417 XML_XPATH_ENCODING_ERROR = 1220
8418 XML_XPATH_INVALID_CHAR_ERROR = 1221
8419 XML_TREE_INVALID_HEX = 1300
8420 XML_TREE_INVALID_DEC = 1301
8421 XML_TREE_UNTERMINATED_ENTITY = 1302
8422 XML_TREE_NOT_UTF8 = 1303
8423 XML_SAVE_NOT_UTF8 = 1400
8424 XML_SAVE_CHAR_INVALID = 1401
8425 XML_SAVE_NO_DOCTYPE = 1402
8426 XML_SAVE_UNKNOWN_ENCODING = 1403
8427 XML_REGEXP_COMPILE_ERROR = 1450
8428 XML_IO_UNKNOWN = 1500
8429 XML_IO_EACCES = 1501
8430 XML_IO_EAGAIN = 1502
8431 XML_IO_EBADF = 1503
8432 XML_IO_EBADMSG = 1504
8433 XML_IO_EBUSY = 1505
8434 XML_IO_ECANCELED = 1506
8435 XML_IO_ECHILD = 1507
8436 XML_IO_EDEADLK = 1508
8437 XML_IO_EDOM = 1509
8438 XML_IO_EEXIST = 1510
8439 XML_IO_EFAULT = 1511
8440 XML_IO_EFBIG = 1512
8441 XML_IO_EINPROGRESS = 1513
8442 XML_IO_EINTR = 1514
8443 XML_IO_EINVAL = 1515
8444 XML_IO_EIO = 1516
8445 XML_IO_EISDIR = 1517
8446 XML_IO_EMFILE = 1518
8447 XML_IO_EMLINK = 1519
8448 XML_IO_EMSGSIZE = 1520
8449 XML_IO_ENAMETOOLONG = 1521
8450 XML_IO_ENFILE = 1522
8451 XML_IO_ENODEV = 1523
8452 XML_IO_ENOENT = 1524
8453 XML_IO_ENOEXEC = 1525
8454 XML_IO_ENOLCK = 1526
8455 XML_IO_ENOMEM = 1527
8456 XML_IO_ENOSPC = 1528
8457 XML_IO_ENOSYS = 1529
8458 XML_IO_ENOTDIR = 1530
8459 XML_IO_ENOTEMPTY = 1531
8460 XML_IO_ENOTSUP = 1532
8461 XML_IO_ENOTTY = 1533
8462 XML_IO_ENXIO = 1534
8463 XML_IO_EPERM = 1535
8464 XML_IO_EPIPE = 1536
8465 XML_IO_ERANGE = 1537
8466 XML_IO_EROFS = 1538
8467 XML_IO_ESPIPE = 1539
8468 XML_IO_ESRCH = 1540
8469 XML_IO_ETIMEDOUT = 1541
8470 XML_IO_EXDEV = 1542
8471 XML_IO_NETWORK_ATTEMPT = 1543
8472 XML_IO_ENCODER = 1544
8473 XML_IO_FLUSH = 1545
8474 XML_IO_WRITE = 1546
8475 XML_IO_NO_INPUT = 1547
8476 XML_IO_BUFFER_FULL = 1548
8477 XML_IO_LOAD_ERROR = 1549
8478 XML_IO_ENOTSOCK = 1550
8479 XML_IO_EISCONN = 1551
8480 XML_IO_ECONNREFUSED = 1552
8481 XML_IO_ENETUNREACH = 1553
8482 XML_IO_EADDRINUSE = 1554
8483 XML_IO_EALREADY = 1555
8484 XML_IO_EAFNOSUPPORT = 1556
8485 XML_XINCLUDE_RECURSION = 1600
8486 XML_XINCLUDE_PARSE_VALUE = 1601
8487 XML_XINCLUDE_ENTITY_DEF_MISMATCH = 1602
8488 XML_XINCLUDE_NO_HREF = 1603
8489 XML_XINCLUDE_NO_FALLBACK = 1604
8490 XML_XINCLUDE_HREF_URI = 1605
8491 XML_XINCLUDE_TEXT_FRAGMENT = 1606
8492 XML_XINCLUDE_TEXT_DOCUMENT = 1607
8493 XML_XINCLUDE_INVALID_CHAR = 1608
8494 XML_XINCLUDE_BUILD_FAILED = 1609
8495 XML_XINCLUDE_UNKNOWN_ENCODING = 1610
8496 XML_XINCLUDE_MULTIPLE_ROOT = 1611
8497 XML_XINCLUDE_XPTR_FAILED = 1612
8498 XML_XINCLUDE_XPTR_RESULT = 1613
8499 XML_XINCLUDE_INCLUDE_IN_INCLUDE = 1614
8500 XML_XINCLUDE_FALLBACKS_IN_INCLUDE = 1615
8501 XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDE = 1616
8502 XML_XINCLUDE_DEPRECATED_NS = 1617
8503 XML_XINCLUDE_FRAGMENT_ID = 1618
8504 XML_CATALOG_MISSING_ATTR = 1650
8505 XML_CATALOG_ENTRY_BROKEN = 1651
8506 XML_CATALOG_PREFER_VALUE = 1652
8507 XML_CATALOG_NOT_CATALOG = 1653
8508 XML_CATALOG_RECURSION = 1654
8509 XML_SCHEMAP_PREFIX_UNDEFINED = 1700
8510 XML_SCHEMAP_ATTRFORMDEFAULT_VALUE = 1701
8511 XML_SCHEMAP_ATTRGRP_NONAME_NOREF = 1702
8512 XML_SCHEMAP_ATTR_NONAME_NOREF = 1703
8513 XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF = 1704
8514 XML_SCHEMAP_ELEMFORMDEFAULT_VALUE = 1705
8515 XML_SCHEMAP_ELEM_NONAME_NOREF = 1706
8516 XML_SCHEMAP_EXTENSION_NO_BASE = 1707
8517 XML_SCHEMAP_FACET_NO_VALUE = 1708
8518 XML_SCHEMAP_FAILED_BUILD_IMPORT = 1709
8519 XML_SCHEMAP_GROUP_NONAME_NOREF = 1710
8520 XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI = 1711
8521 XML_SCHEMAP_IMPORT_REDEFINE_NSNAME = 1712
8522 XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI = 1713
8523 XML_SCHEMAP_INVALID_BOOLEAN = 1714
8524 XML_SCHEMAP_INVALID_ENUM = 1715
8525 XML_SCHEMAP_INVALID_FACET = 1716
8526 XML_SCHEMAP_INVALID_FACET_VALUE = 1717
8527 XML_SCHEMAP_INVALID_MAXOCCURS = 1718
8528 XML_SCHEMAP_INVALID_MINOCCURS = 1719
8529 XML_SCHEMAP_INVALID_REF_AND_SUBTYPE = 1720
8530 XML_SCHEMAP_INVALID_WHITE_SPACE = 1721
8531 XML_SCHEMAP_NOATTR_NOREF = 1722
8532 XML_SCHEMAP_NOTATION_NO_NAME = 1723
8533 XML_SCHEMAP_NOTYPE_NOREF = 1724
8534 XML_SCHEMAP_REF_AND_SUBTYPE = 1725
8535 XML_SCHEMAP_RESTRICTION_NONAME_NOREF = 1726
8536 XML_SCHEMAP_SIMPLETYPE_NONAME = 1727
8537 XML_SCHEMAP_TYPE_AND_SUBTYPE = 1728
8538 XML_SCHEMAP_UNKNOWN_ALL_CHILD = 1729
8539 XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD = 1730
8540 XML_SCHEMAP_UNKNOWN_ATTR_CHILD = 1731
8541 XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD = 1732
8542 XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP = 1733
8543 XML_SCHEMAP_UNKNOWN_BASE_TYPE = 1734
8544 XML_SCHEMAP_UNKNOWN_CHOICE_CHILD = 1735
8545 XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD = 1736
8546 XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD = 1737
8547 XML_SCHEMAP_UNKNOWN_ELEM_CHILD = 1738
8548 XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD = 1739
8549 XML_SCHEMAP_UNKNOWN_FACET_CHILD = 1740
8550 XML_SCHEMAP_UNKNOWN_FACET_TYPE = 1741
8551 XML_SCHEMAP_UNKNOWN_GROUP_CHILD = 1742
8552 XML_SCHEMAP_UNKNOWN_IMPORT_CHILD = 1743
8553 XML_SCHEMAP_UNKNOWN_LIST_CHILD = 1744
8554 XML_SCHEMAP_UNKNOWN_NOTATION_CHILD = 1745
8555 XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD = 1746
8556 XML_SCHEMAP_UNKNOWN_REF = 1747
8557 XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD = 1748
8558 XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILD = 1749
8559 XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD = 1750
8560 XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD = 1751
8561 XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD = 1752
8562 XML_SCHEMAP_UNKNOWN_TYPE = 1753
8563 XML_SCHEMAP_UNKNOWN_UNION_CHILD = 1754
8564 XML_SCHEMAP_ELEM_DEFAULT_FIXED = 1755
8565 XML_SCHEMAP_REGEXP_INVALID = 1756
8566 XML_SCHEMAP_FAILED_LOAD = 1757
8567 XML_SCHEMAP_NOTHING_TO_PARSE = 1758
8568 XML_SCHEMAP_NOROOT = 1759
8569 XML_SCHEMAP_REDEFINED_GROUP = 1760
8570 XML_SCHEMAP_REDEFINED_TYPE = 1761
8571 XML_SCHEMAP_REDEFINED_ELEMENT = 1762
8572 XML_SCHEMAP_REDEFINED_ATTRGROUP = 1763
8573 XML_SCHEMAP_REDEFINED_ATTR = 1764
8574 XML_SCHEMAP_REDEFINED_NOTATION = 1765
8575 XML_SCHEMAP_FAILED_PARSE = 1766
8576 XML_SCHEMAP_UNKNOWN_PREFIX = 1767
8577 XML_SCHEMAP_DEF_AND_PREFIX = 1768
8578 XML_SCHEMAP_UNKNOWN_INCLUDE_CHILD = 1769
8579 XML_SCHEMAP_INCLUDE_SCHEMA_NOT_URI = 1770
8580 XML_SCHEMAP_INCLUDE_SCHEMA_NO_URI = 1771
8581 XML_SCHEMAP_NOT_SCHEMA = 1772
8582 XML_SCHEMAP_UNKNOWN_MEMBER_TYPE = 1773
8583 XML_SCHEMAP_INVALID_ATTR_USE = 1774
8584 XML_SCHEMAP_RECURSIVE = 1775
8585 XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE = 1776
8586 XML_SCHEMAP_INVALID_ATTR_COMBINATION = 1777
8587 XML_SCHEMAP_INVALID_ATTR_INLINE_COMBINATION = 1778
8588 XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD = 1779
8589 XML_SCHEMAP_INVALID_ATTR_NAME = 1780
8590 XML_SCHEMAP_REF_AND_CONTENT = 1781
8591 XML_SCHEMAP_CT_PROPS_CORRECT_1 = 1782
8592 XML_SCHEMAP_CT_PROPS_CORRECT_2 = 1783
8593 XML_SCHEMAP_CT_PROPS_CORRECT_3 = 1784
8594 XML_SCHEMAP_CT_PROPS_CORRECT_4 = 1785
8595 XML_SCHEMAP_CT_PROPS_CORRECT_5 = 1786
8596 XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1 = 1787
8597 XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1 = 1788
8598 XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2 = 1789
8599 XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2 = 1790
8600 XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3 = 1791
8601 XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER = 1792
8602 XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE = 1793
8603 XML_SCHEMAP_UNION_NOT_EXPRESSIBLE = 1794
8604 XML_SCHEMAP_SRC_IMPORT_3_1 = 1795
8605 XML_SCHEMAP_SRC_IMPORT_3_2 = 1796
8606 XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1 = 1797
8607 XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2 = 1798
8608 XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3 = 1799
8609 XML_SCHEMAP_COS_CT_EXTENDS_1_3 = 1800
8610 XML_SCHEMAV_NOROOT = 1801
8611 XML_SCHEMAV_UNDECLAREDELEM = 1802
8612 XML_SCHEMAV_NOTTOPLEVEL = 1803
8613 XML_SCHEMAV_MISSING = 1804
8614 XML_SCHEMAV_WRONGELEM = 1805
8615 XML_SCHEMAV_NOTYPE = 1806
8616 XML_SCHEMAV_NOROLLBACK = 1807
8617 XML_SCHEMAV_ISABSTRACT = 1808
8618 XML_SCHEMAV_NOTEMPTY = 1809
8619 XML_SCHEMAV_ELEMCONT = 1810
8620 XML_SCHEMAV_HAVEDEFAULT = 1811
8621 XML_SCHEMAV_NOTNILLABLE = 1812
8622 XML_SCHEMAV_EXTRACONTENT = 1813
8623 XML_SCHEMAV_INVALIDATTR = 1814
8624 XML_SCHEMAV_INVALIDELEM = 1815
8625 XML_SCHEMAV_NOTDETERMINIST = 1816
8626 XML_SCHEMAV_CONSTRUCT = 1817
8627 XML_SCHEMAV_INTERNAL = 1818
8628 XML_SCHEMAV_NOTSIMPLE = 1819
8629 XML_SCHEMAV_ATTRUNKNOWN = 1820
8630 XML_SCHEMAV_ATTRINVALID = 1821
8631 XML_SCHEMAV_VALUE = 1822
8632 XML_SCHEMAV_FACET = 1823
8633 XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1 = 1824
8634 XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2 = 1825
8635 XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3 = 1826
8636 XML_SCHEMAV_CVC_TYPE_3_1_1 = 1827
8637 XML_SCHEMAV_CVC_TYPE_3_1_2 = 1828
8638 XML_SCHEMAV_CVC_FACET_VALID = 1829
8639 XML_SCHEMAV_CVC_LENGTH_VALID = 1830
8640 XML_SCHEMAV_CVC_MINLENGTH_VALID = 1831
8641 XML_SCHEMAV_CVC_MAXLENGTH_VALID = 1832
8642 XML_SCHEMAV_CVC_MININCLUSIVE_VALID = 1833
8643 XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID = 1834
8644 XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID = 1835
8645 XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID = 1836
8646 XML_SCHEMAV_CVC_TOTALDIGITS_VALID = 1837
8647 XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID = 1838
8648 XML_SCHEMAV_CVC_PATTERN_VALID = 1839
8649 XML_SCHEMAV_CVC_ENUMERATION_VALID = 1840
8650 XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1 = 1841
8651 XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2 = 1842
8652 XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3 = 1843
8653 XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4 = 1844
8654 XML_SCHEMAV_CVC_ELT_1 = 1845
8655 XML_SCHEMAV_CVC_ELT_2 = 1846
8656 XML_SCHEMAV_CVC_ELT_3_1 = 1847
8657 XML_SCHEMAV_CVC_ELT_3_2_1 = 1848
8658 XML_SCHEMAV_CVC_ELT_3_2_2 = 1849
8659 XML_SCHEMAV_CVC_ELT_4_1 = 1850
8660 XML_SCHEMAV_CVC_ELT_4_2 = 1851
8661 XML_SCHEMAV_CVC_ELT_4_3 = 1852
8662 XML_SCHEMAV_CVC_ELT_5_1_1 = 1853
8663 XML_SCHEMAV_CVC_ELT_5_1_2 = 1854
8664 XML_SCHEMAV_CVC_ELT_5_2_1 = 1855
8665 XML_SCHEMAV_CVC_ELT_5_2_2_1 = 1856
8666 XML_SCHEMAV_CVC_ELT_5_2_2_2_1 = 1857
8667 XML_SCHEMAV_CVC_ELT_5_2_2_2_2 = 1858
8668 XML_SCHEMAV_CVC_ELT_6 = 1859
8669 XML_SCHEMAV_CVC_ELT_7 = 1860
8670 XML_SCHEMAV_CVC_ATTRIBUTE_1 = 1861
8671 XML_SCHEMAV_CVC_ATTRIBUTE_2 = 1862
8672 XML_SCHEMAV_CVC_ATTRIBUTE_3 = 1863
8673 XML_SCHEMAV_CVC_ATTRIBUTE_4 = 1864
8674 XML_SCHEMAV_CVC_COMPLEX_TYPE_3_1 = 1865
8675 XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_1 = 1866
8676 XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_2 = 1867
8677 XML_SCHEMAV_CVC_COMPLEX_TYPE_4 = 1868
8678 XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1 = 1869
8679 XML_SCHEMAV_CVC_COMPLEX_TYPE_5_2 = 1870
8680 XML_SCHEMAV_ELEMENT_CONTENT = 1871
8681 XML_SCHEMAV_DOCUMENT_ELEMENT_MISSING = 1872
8682 XML_SCHEMAV_CVC_COMPLEX_TYPE_1 = 1873
8683 XML_SCHEMAV_CVC_AU = 1874
8684 XML_SCHEMAV_CVC_TYPE_1 = 1875
8685 XML_SCHEMAV_CVC_TYPE_2 = 1876
8686 XML_SCHEMAV_CVC_IDC = 1877
8687 XML_SCHEMAV_CVC_WILDCARD = 1878
8688 XML_SCHEMAV_MISC = 1879
8689 XML_XPTR_UNKNOWN_SCHEME = 1900
8690 XML_XPTR_CHILDSEQ_START = 1901
8691 XML_XPTR_EVAL_FAILED = 1902
8692 XML_XPTR_EXTRA_OBJECTS = 1903
8693 XML_C14N_CREATE_CTXT = 1950
8694 XML_C14N_REQUIRES_UTF8 = 1951
8695 XML_C14N_CREATE_STACK = 1952
8696 XML_C14N_INVALID_NODE = 1953
8697 XML_C14N_UNKNOW_NODE = 1954
8698 XML_C14N_RELATIVE_NAMESPACE = 1955
8699 XML_FTP_PASV_ANSWER = 2000
8700 XML_FTP_EPSV_ANSWER = 2001
8701 XML_FTP_ACCNT = 2002
8702 XML_FTP_URL_SYNTAX = 2003
8703 XML_HTTP_URL_SYNTAX = 2020
8704 XML_HTTP_USE_IP = 2021
8705 XML_HTTP_UNKNOWN_HOST = 2022
8706 XML_SCHEMAP_SRC_SIMPLE_TYPE_1 = 3000
8707 XML_SCHEMAP_SRC_SIMPLE_TYPE_2 = 3001
8708 XML_SCHEMAP_SRC_SIMPLE_TYPE_3 = 3002
8709 XML_SCHEMAP_SRC_SIMPLE_TYPE_4 = 3003
8710 XML_SCHEMAP_SRC_RESOLVE = 3004
8711 XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE = 3005
8712 XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE = 3006
8713 XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES = 3007
8714 XML_SCHEMAP_ST_PROPS_CORRECT_1 = 3008
8715 XML_SCHEMAP_ST_PROPS_CORRECT_2 = 3009
8716 XML_SCHEMAP_ST_PROPS_CORRECT_3 = 3010
8717 XML_SCHEMAP_COS_ST_RESTRICTS_1_1 = 3011
8718 XML_SCHEMAP_COS_ST_RESTRICTS_1_2 = 3012
8719 XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1 = 3013
8720 XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2 = 3014
8721 XML_SCHEMAP_COS_ST_RESTRICTS_2_1 = 3015
8722 XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1 = 3016
8723 XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2 = 3017
8724 XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1 = 3018
8725 XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2 = 3019
8726 XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3 = 3020
8727 XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4 = 3021
8728 XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5 = 3022
8729 XML_SCHEMAP_COS_ST_RESTRICTS_3_1 = 3023
8730 XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1 = 3024
8731 XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2 = 3025
8732 XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2 = 3026
8733 XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1 = 3027
8734 XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3 = 3028
8735 XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4 = 3029
8736 XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5 = 3030
8737 XML_SCHEMAP_COS_ST_DERIVED_OK_2_1 = 3031
8738 XML_SCHEMAP_COS_ST_DERIVED_OK_2_2 = 3032
8739 XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED = 3033
8740 XML_SCHEMAP_S4S_ELEM_MISSING = 3034
8741 XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED = 3035
8742 XML_SCHEMAP_S4S_ATTR_MISSING = 3036
8743 XML_SCHEMAP_S4S_ATTR_INVALID_VALUE = 3037
8744 XML_SCHEMAP_SRC_ELEMENT_1 = 3038
8745 XML_SCHEMAP_SRC_ELEMENT_2_1 = 3039
8746 XML_SCHEMAP_SRC_ELEMENT_2_2 = 3040
8747 XML_SCHEMAP_SRC_ELEMENT_3 = 3041
8748 XML_SCHEMAP_P_PROPS_CORRECT_1 = 3042
8749 XML_SCHEMAP_P_PROPS_CORRECT_2_1 = 3043
8750 XML_SCHEMAP_P_PROPS_CORRECT_2_2 = 3044
8751 XML_SCHEMAP_E_PROPS_CORRECT_2 = 3045
8752 XML_SCHEMAP_E_PROPS_CORRECT_3 = 3046
8753 XML_SCHEMAP_E_PROPS_CORRECT_4 = 3047
8754 XML_SCHEMAP_E_PROPS_CORRECT_5 = 3048
8755 XML_SCHEMAP_E_PROPS_CORRECT_6 = 3049
8756 XML_SCHEMAP_SRC_INCLUDE = 3050
8757 XML_SCHEMAP_SRC_ATTRIBUTE_1 = 3051
8758 XML_SCHEMAP_SRC_ATTRIBUTE_2 = 3052
8759 XML_SCHEMAP_SRC_ATTRIBUTE_3_1 = 3053
8760 XML_SCHEMAP_SRC_ATTRIBUTE_3_2 = 3054
8761 XML_SCHEMAP_SRC_ATTRIBUTE_4 = 3055
8762 XML_SCHEMAP_NO_XMLNS = 3056
8763 XML_SCHEMAP_NO_XSI = 3057
8764 XML_SCHEMAP_COS_VALID_DEFAULT_1 = 3058
8765 XML_SCHEMAP_COS_VALID_DEFAULT_2_1 = 3059
8766 XML_SCHEMAP_COS_VALID_DEFAULT_2_2_1 = 3060
8767 XML_SCHEMAP_COS_VALID_DEFAULT_2_2_2 = 3061
8768 XML_SCHEMAP_CVC_SIMPLE_TYPE = 3062
8769 XML_SCHEMAP_COS_CT_EXTENDS_1_1 = 3063
8770 XML_SCHEMAP_SRC_IMPORT_1_1 = 3064
8771 XML_SCHEMAP_SRC_IMPORT_1_2 = 3065
8772 XML_SCHEMAP_SRC_IMPORT_2 = 3066
8773 XML_SCHEMAP_SRC_IMPORT_2_1 = 3067
8774 XML_SCHEMAP_SRC_IMPORT_2_2 = 3068
8775 XML_SCHEMAP_INTERNAL = 3069
8776 XML_SCHEMAP_NOT_DETERMINISTIC = 3070
8777 XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_1 = 3071
8778 XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2 = 3072
8779 XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3 = 3073
8780 XML_SCHEMAP_MG_PROPS_CORRECT_1 = 3074
8781 XML_SCHEMAP_MG_PROPS_CORRECT_2 = 3075
8782 XML_SCHEMAP_SRC_CT_1 = 3076
8783 XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3 = 3077
8784 XML_SCHEMAP_AU_PROPS_CORRECT_2 = 3078
8785 XML_SCHEMAP_A_PROPS_CORRECT_2 = 3079
8786 XML_SCHEMAP_C_PROPS_CORRECT = 3080
8787 XML_SCHEMAP_SRC_REDEFINE = 3081
8788 XML_SCHEMAP_SRC_IMPORT = 3082
8789 XML_SCHEMAP_WARN_SKIP_SCHEMA = 3083
8790 XML_SCHEMAP_WARN_UNLOCATED_SCHEMA = 3084
8791 XML_SCHEMAP_WARN_ATTR_REDECL_PROH = 3085
8792 XML_SCHEMAP_WARN_ATTR_POINTLESS_PROH = 3086
8793 XML_SCHEMAP_AG_PROPS_CORRECT = 3087
8794 XML_SCHEMAP_COS_CT_EXTENDS_1_2 = 3088
8795 XML_SCHEMAP_AU_PROPS_CORRECT = 3089
8796 XML_SCHEMAP_A_PROPS_CORRECT_3 = 3090
8797 XML_SCHEMAP_COS_ALL_LIMITED = 3091
8798 XML_SCHEMATRONV_ASSERT = 4000
8799 XML_SCHEMATRONV_REPORT = 4001
8800 XML_MODULE_OPEN = 4900
8801 XML_MODULE_CLOSE = 4901
8802 XML_CHECK_FOUND_ELEMENT = 5000
8803 XML_CHECK_FOUND_ATTRIBUTE = 5001
8804 XML_CHECK_FOUND_TEXT = 5002
8805 XML_CHECK_FOUND_CDATA = 5003
8806 XML_CHECK_FOUND_ENTITYREF = 5004
8807 XML_CHECK_FOUND_ENTITY = 5005
8808 XML_CHECK_FOUND_PI = 5006
8809 XML_CHECK_FOUND_COMMENT = 5007
8810 XML_CHECK_FOUND_DOCTYPE = 5008
8811 XML_CHECK_FOUND_FRAGMENT = 5009
8812 XML_CHECK_FOUND_NOTATION = 5010
8813 XML_CHECK_UNKNOWN_NODE = 5011
8814 XML_CHECK_ENTITY_TYPE = 5012
8815 XML_CHECK_NO_PARENT = 5013
8816 XML_CHECK_NO_DOC = 5014
8817 XML_CHECK_NO_NAME = 5015
8818 XML_CHECK_NO_ELEM = 5016
8819 XML_CHECK_WRONG_DOC = 5017
8820 XML_CHECK_NO_PREV = 5018
8821 XML_CHECK_WRONG_PREV = 5019
8822 XML_CHECK_NO_NEXT = 5020
8823 XML_CHECK_WRONG_NEXT = 5021
8824 XML_CHECK_NOT_DTD = 5022
8825 XML_CHECK_NOT_ATTR = 5023
8826 XML_CHECK_NOT_ATTR_DECL = 5024
8827 XML_CHECK_NOT_ELEM_DECL = 5025
8828 XML_CHECK_NOT_ENTITY_DECL = 5026
8829 XML_CHECK_NOT_NS_DECL = 5027
8830 XML_CHECK_NO_HREF = 5028
8831 XML_CHECK_WRONG_PARENT = 5029
8832 XML_CHECK_NS_SCOPE = 5030
8833 XML_CHECK_NS_ANCESTOR = 5031
8834 XML_CHECK_NOT_UTF8 = 5032
8835 XML_CHECK_NO_DICT = 5033
8836 XML_CHECK_NOT_NCNAME = 5034
8837 XML_CHECK_OUTSIDE_DICT = 5035
8838 XML_CHECK_WRONG_NAME = 5036
8839 XML_CHECK_NAME_NOT_NULL = 5037
8840 XML_I18N_NO_NAME = 6000
8841 XML_I18N_NO_HANDLER = 6001
8842 XML_I18N_EXCESS_HANDLER = 6002
8843 XML_I18N_CONV_FAILED = 6003
8844 XML_I18N_NO_OUTPUT = 6004
8845 XML_BUF_OVERFLOW = 7000
8846
8847 # xmlExpNodeType
8848 XML_EXP_EMPTY = 0
8849 XML_EXP_FORBID = 1
8850 XML_EXP_ATOM = 2
8851 XML_EXP_SEQ = 3
8852 XML_EXP_OR = 4
8853 XML_EXP_COUNT = 5
8854
8855 # xmlElementContentType
8856 XML_ELEMENT_CONTENT_PCDATA = 1
8857 XML_ELEMENT_CONTENT_ELEMENT = 2
8858 XML_ELEMENT_CONTENT_SEQ = 3
8859 XML_ELEMENT_CONTENT_OR = 4
8860
8861 # xmlParserProperties
8862 XML_PARSER_LOADDTD = 1
8863 XML_PARSER_DEFAULTATTRS = 2
8864 XML_PARSER_VALIDATE = 3
8865 XML_PARSER_SUBST_ENTITIES = 4
8866
8867 # xmlReaderTypes
8868 XML_READER_TYPE_NONE = 0
8869 XML_READER_TYPE_ELEMENT = 1
8870 XML_READER_TYPE_ATTRIBUTE = 2
8871 XML_READER_TYPE_TEXT = 3
8872 XML_READER_TYPE_CDATA = 4
8873 XML_READER_TYPE_ENTITY_REFERENCE = 5
8874 XML_READER_TYPE_ENTITY = 6
8875 XML_READER_TYPE_PROCESSING_INSTRUCTION = 7
8876 XML_READER_TYPE_COMMENT = 8
8877 XML_READER_TYPE_DOCUMENT = 9
8878 XML_READER_TYPE_DOCUMENT_TYPE = 10
8879 XML_READER_TYPE_DOCUMENT_FRAGMENT = 11
8880 XML_READER_TYPE_NOTATION = 12
8881 XML_READER_TYPE_WHITESPACE = 13
8882 XML_READER_TYPE_SIGNIFICANT_WHITESPACE = 14
8883 XML_READER_TYPE_END_ELEMENT = 15
8884 XML_READER_TYPE_END_ENTITY = 16
8885 XML_READER_TYPE_XML_DECLARATION = 17
8886
8887 # xmlCatalogPrefer
8888 XML_CATA_PREFER_NONE = 0
8889 XML_CATA_PREFER_PUBLIC = 1
8890 XML_CATA_PREFER_SYSTEM = 2
8891
8892 # xmlElementType
8893 XML_ELEMENT_NODE = 1
8894 XML_ATTRIBUTE_NODE = 2
8895 XML_TEXT_NODE = 3
8896 XML_CDATA_SECTION_NODE = 4
8897 XML_ENTITY_REF_NODE = 5
8898 XML_ENTITY_NODE = 6
8899 XML_PI_NODE = 7
8900 XML_COMMENT_NODE = 8
8901 XML_DOCUMENT_NODE = 9
8902 XML_DOCUMENT_TYPE_NODE = 10
8903 XML_DOCUMENT_FRAG_NODE = 11
8904 XML_NOTATION_NODE = 12
8905 XML_HTML_DOCUMENT_NODE = 13
8906 XML_DTD_NODE = 14
8907 XML_ELEMENT_DECL = 15
8908 XML_ATTRIBUTE_DECL = 16
8909 XML_ENTITY_DECL = 17
8910 XML_NAMESPACE_DECL = 18
8911 XML_XINCLUDE_START = 19
8912 XML_XINCLUDE_END = 20
8913 XML_DOCB_DOCUMENT_NODE = 21
8914
8915 # xlinkActuate
8916 XLINK_ACTUATE_NONE = 0
8917 XLINK_ACTUATE_AUTO = 1
8918 XLINK_ACTUATE_ONREQUEST = 2
8919
8920 # xmlFeature
8921 XML_WITH_THREAD = 1
8922 XML_WITH_TREE = 2
8923 XML_WITH_OUTPUT = 3
8924 XML_WITH_PUSH = 4
8925 XML_WITH_READER = 5
8926 XML_WITH_PATTERN = 6
8927 XML_WITH_WRITER = 7
8928 XML_WITH_SAX1 = 8
8929 XML_WITH_FTP = 9
8930 XML_WITH_HTTP = 10
8931 XML_WITH_VALID = 11
8932 XML_WITH_HTML = 12
8933 XML_WITH_LEGACY = 13
8934 XML_WITH_C14N = 14
8935 XML_WITH_CATALOG = 15
8936 XML_WITH_XPATH = 16
8937 XML_WITH_XPTR = 17
8938 XML_WITH_XINCLUDE = 18
8939 XML_WITH_ICONV = 19
8940 XML_WITH_ISO8859X = 20
8941 XML_WITH_UNICODE = 21
8942 XML_WITH_REGEXP = 22
8943 XML_WITH_AUTOMATA = 23
8944 XML_WITH_EXPR = 24
8945 XML_WITH_SCHEMAS = 25
8946 XML_WITH_SCHEMATRON = 26
8947 XML_WITH_MODULES = 27
8948 XML_WITH_DEBUG = 28
8949 XML_WITH_DEBUG_MEM = 29
8950 XML_WITH_DEBUG_RUN = 30
8951 XML_WITH_ZLIB = 31
8952 XML_WITH_ICU = 32
8953 XML_WITH_LZMA = 33
8954 XML_WITH_NONE = 99999
8955
8956 # xmlElementContentOccur
8957 XML_ELEMENT_CONTENT_ONCE = 1
8958 XML_ELEMENT_CONTENT_OPT = 2
8959 XML_ELEMENT_CONTENT_MULT = 3
8960 XML_ELEMENT_CONTENT_PLUS = 4
8961
8962 # xmlXPathError
8963 XPATH_EXPRESSION_OK = 0
8964 XPATH_NUMBER_ERROR = 1
8965 XPATH_UNFINISHED_LITERAL_ERROR = 2
8966 XPATH_START_LITERAL_ERROR = 3
8967 XPATH_VARIABLE_REF_ERROR = 4
8968 XPATH_UNDEF_VARIABLE_ERROR = 5
8969 XPATH_INVALID_PREDICATE_ERROR = 6
8970 XPATH_EXPR_ERROR = 7
8971 XPATH_UNCLOSED_ERROR = 8
8972 XPATH_UNKNOWN_FUNC_ERROR = 9
8973 XPATH_INVALID_OPERAND = 10
8974 XPATH_INVALID_TYPE = 11
8975 XPATH_INVALID_ARITY = 12
8976 XPATH_INVALID_CTXT_SIZE = 13
8977 XPATH_INVALID_CTXT_POSITION = 14
8978 XPATH_MEMORY_ERROR = 15
8979 XPTR_SYNTAX_ERROR = 16
8980 XPTR_RESOURCE_ERROR = 17
8981 XPTR_SUB_RESOURCE_ERROR = 18
8982 XPATH_UNDEF_PREFIX_ERROR = 19
8983 XPATH_ENCODING_ERROR = 20
8984 XPATH_INVALID_CHAR_ERROR = 21
8985 XPATH_INVALID_CTXT = 22
8986 XPATH_STACK_ERROR = 23
8987 XPATH_FORBID_VARIABLE_ERROR = 24
8988
8989 # xmlTextReaderMode
8990 XML_TEXTREADER_MODE_INITIAL = 0
8991 XML_TEXTREADER_MODE_INTERACTIVE = 1
8992 XML_TEXTREADER_MODE_ERROR = 2
8993 XML_TEXTREADER_MODE_EOF = 3
8994 XML_TEXTREADER_MODE_CLOSED = 4
8995 XML_TEXTREADER_MODE_READING = 5
8996
8997 # xmlErrorLevel
8998 XML_ERR_NONE = 0
8999 XML_ERR_WARNING = 1
9000 XML_ERR_ERROR = 2
9001 XML_ERR_FATAL = 3
9002
9003 # xmlCharEncoding
9004 XML_CHAR_ENCODING_ERROR = -1
9005 XML_CHAR_ENCODING_NONE = 0
9006 XML_CHAR_ENCODING_UTF8 = 1
9007 XML_CHAR_ENCODING_UTF16LE = 2
9008 XML_CHAR_ENCODING_UTF16BE = 3
9009 XML_CHAR_ENCODING_UCS4LE = 4
9010 XML_CHAR_ENCODING_UCS4BE = 5
9011 XML_CHAR_ENCODING_EBCDIC = 6
9012 XML_CHAR_ENCODING_UCS4_2143 = 7
9013 XML_CHAR_ENCODING_UCS4_3412 = 8
9014 XML_CHAR_ENCODING_UCS2 = 9
9015 XML_CHAR_ENCODING_8859_1 = 10
9016 XML_CHAR_ENCODING_8859_2 = 11
9017 XML_CHAR_ENCODING_8859_3 = 12
9018 XML_CHAR_ENCODING_8859_4 = 13
9019 XML_CHAR_ENCODING_8859_5 = 14
9020 XML_CHAR_ENCODING_8859_6 = 15
9021 XML_CHAR_ENCODING_8859_7 = 16
9022 XML_CHAR_ENCODING_8859_8 = 17
9023 XML_CHAR_ENCODING_8859_9 = 18
9024 XML_CHAR_ENCODING_2022_JP = 19
9025 XML_CHAR_ENCODING_SHIFT_JIS = 20
9026 XML_CHAR_ENCODING_EUC_JP = 21
9027 XML_CHAR_ENCODING_ASCII = 22
9028
9029 # xmlErrorDomain
9030 XML_FROM_NONE = 0
9031 XML_FROM_PARSER = 1
9032 XML_FROM_TREE = 2
9033 XML_FROM_NAMESPACE = 3
9034 XML_FROM_DTD = 4
9035 XML_FROM_HTML = 5
9036 XML_FROM_MEMORY = 6
9037 XML_FROM_OUTPUT = 7
9038 XML_FROM_IO = 8
9039 XML_FROM_FTP = 9
9040 XML_FROM_HTTP = 10
9041 XML_FROM_XINCLUDE = 11
9042 XML_FROM_XPATH = 12
9043 XML_FROM_XPOINTER = 13
9044 XML_FROM_REGEXP = 14
9045 XML_FROM_DATATYPE = 15
9046 XML_FROM_SCHEMASP = 16
9047 XML_FROM_SCHEMASV = 17
9048 XML_FROM_RELAXNGP = 18
9049 XML_FROM_RELAXNGV = 19
9050 XML_FROM_CATALOG = 20
9051 XML_FROM_C14N = 21
9052 XML_FROM_XSLT = 22
9053 XML_FROM_VALID = 23
9054 XML_FROM_CHECK = 24
9055 XML_FROM_WRITER = 25
9056 XML_FROM_MODULE = 26
9057 XML_FROM_I18N = 27
9058 XML_FROM_SCHEMATRONV = 28
9059 XML_FROM_BUFFER = 29
9060 XML_FROM_URI = 30
9061
9062 # htmlStatus
9063 HTML_NA = 0
9064 HTML_INVALID = 1
9065 HTML_DEPRECATED = 2
9066 HTML_VALID = 4
9067 HTML_REQUIRED = 12
9068
9069 # xmlSchemaValidOption
9070 XML_SCHEMA_VAL_VC_I_CREATE = 1
9071
9072 # xmlSchemaWhitespaceValueType
9073 XML_SCHEMA_WHITESPACE_UNKNOWN = 0
9074 XML_SCHEMA_WHITESPACE_PRESERVE = 1
9075 XML_SCHEMA_WHITESPACE_REPLACE = 2
9076 XML_SCHEMA_WHITESPACE_COLLAPSE = 3
9077
9078 # htmlParserOption
9079 HTML_PARSE_RECOVER = 1
9080 HTML_PARSE_NODEFDTD = 4
9081 HTML_PARSE_NOERROR = 32
9082 HTML_PARSE_NOWARNING = 64
9083 HTML_PARSE_PEDANTIC = 128
9084 HTML_PARSE_NOBLANKS = 256
9085 HTML_PARSE_NONET = 2048
9086 HTML_PARSE_NOIMPLIED = 8192
9087 HTML_PARSE_COMPACT = 65536
9088 HTML_PARSE_IGNORE_ENC = 2097152
9089
9090 # xmlRelaxNGValidErr
9091 XML_RELAXNG_OK = 0
9092 XML_RELAXNG_ERR_MEMORY = 1
9093 XML_RELAXNG_ERR_TYPE = 2
9094 XML_RELAXNG_ERR_TYPEVAL = 3
9095 XML_RELAXNG_ERR_DUPID = 4
9096 XML_RELAXNG_ERR_TYPECMP = 5
9097 XML_RELAXNG_ERR_NOSTATE = 6
9098 XML_RELAXNG_ERR_NODEFINE = 7
9099 XML_RELAXNG_ERR_LISTEXTRA = 8
9100 XML_RELAXNG_ERR_LISTEMPTY = 9
9101 XML_RELAXNG_ERR_INTERNODATA = 10
9102 XML_RELAXNG_ERR_INTERSEQ = 11
9103 XML_RELAXNG_ERR_INTEREXTRA = 12
9104 XML_RELAXNG_ERR_ELEMNAME = 13
9105 XML_RELAXNG_ERR_ATTRNAME = 14
9106 XML_RELAXNG_ERR_ELEMNONS = 15
9107 XML_RELAXNG_ERR_ATTRNONS = 16
9108 XML_RELAXNG_ERR_ELEMWRONGNS = 17
9109 XML_RELAXNG_ERR_ATTRWRONGNS = 18
9110 XML_RELAXNG_ERR_ELEMEXTRANS = 19
9111 XML_RELAXNG_ERR_ATTREXTRANS = 20
9112 XML_RELAXNG_ERR_ELEMNOTEMPTY = 21
9113 XML_RELAXNG_ERR_NOELEM = 22
9114 XML_RELAXNG_ERR_NOTELEM = 23
9115 XML_RELAXNG_ERR_ATTRVALID = 24
9116 XML_RELAXNG_ERR_CONTENTVALID = 25
9117 XML_RELAXNG_ERR_EXTRACONTENT = 26
9118 XML_RELAXNG_ERR_INVALIDATTR = 27
9119 XML_RELAXNG_ERR_DATAELEM = 28
9120 XML_RELAXNG_ERR_VALELEM = 29
9121 XML_RELAXNG_ERR_LISTELEM = 30
9122 XML_RELAXNG_ERR_DATATYPE = 31
9123 XML_RELAXNG_ERR_VALUE = 32
9124 XML_RELAXNG_ERR_LIST = 33
9125 XML_RELAXNG_ERR_NOGRAMMAR = 34
9126 XML_RELAXNG_ERR_EXTRADATA = 35
9127 XML_RELAXNG_ERR_LACKDATA = 36
9128 XML_RELAXNG_ERR_INTERNAL = 37
9129 XML_RELAXNG_ERR_ELEMWRONG = 38
9130 XML_RELAXNG_ERR_TEXTWRONG = 39
9131
9132 # xmlCatalogAllow
9133 XML_CATA_ALLOW_NONE = 0
9134 XML_CATA_ALLOW_GLOBAL = 1
9135 XML_CATA_ALLOW_DOCUMENT = 2
9136 XML_CATA_ALLOW_ALL = 3
9137
9138 # xmlAttributeType
9139 XML_ATTRIBUTE_CDATA = 1
9140 XML_ATTRIBUTE_ID = 2
9141 XML_ATTRIBUTE_IDREF = 3
9142 XML_ATTRIBUTE_IDREFS = 4
9143 XML_ATTRIBUTE_ENTITY = 5
9144 XML_ATTRIBUTE_ENTITIES = 6
9145 XML_ATTRIBUTE_NMTOKEN = 7
9146 XML_ATTRIBUTE_NMTOKENS = 8
9147 XML_ATTRIBUTE_ENUMERATION = 9
9148 XML_ATTRIBUTE_NOTATION = 10
9149
9150 # xmlSchematronValidOptions
9151 XML_SCHEMATRON_OUT_QUIET = 1
9152 XML_SCHEMATRON_OUT_TEXT = 2
9153 XML_SCHEMATRON_OUT_XML = 4
9154 XML_SCHEMATRON_OUT_ERROR = 8
9155 XML_SCHEMATRON_OUT_FILE = 256
9156 XML_SCHEMATRON_OUT_BUFFER = 512
9157 XML_SCHEMATRON_OUT_IO = 1024
9158
9159 # xmlSchemaContentType
9160 XML_SCHEMA_CONTENT_UNKNOWN = 0
9161 XML_SCHEMA_CONTENT_EMPTY = 1
9162 XML_SCHEMA_CONTENT_ELEMENTS = 2
9163 XML_SCHEMA_CONTENT_MIXED = 3
9164 XML_SCHEMA_CONTENT_SIMPLE = 4
9165 XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS = 5
9166 XML_SCHEMA_CONTENT_BASIC = 6
9167 XML_SCHEMA_CONTENT_ANY = 7
9168
9169 # xmlSchemaTypeType
9170 XML_SCHEMA_TYPE_BASIC = 1
9171 XML_SCHEMA_TYPE_ANY = 2
9172 XML_SCHEMA_TYPE_FACET = 3
9173 XML_SCHEMA_TYPE_SIMPLE = 4
9174 XML_SCHEMA_TYPE_COMPLEX = 5
9175 XML_SCHEMA_TYPE_SEQUENCE = 6
9176 XML_SCHEMA_TYPE_CHOICE = 7
9177 XML_SCHEMA_TYPE_ALL = 8
9178 XML_SCHEMA_TYPE_SIMPLE_CONTENT = 9
9179 XML_SCHEMA_TYPE_COMPLEX_CONTENT = 10
9180 XML_SCHEMA_TYPE_UR = 11
9181 XML_SCHEMA_TYPE_RESTRICTION = 12
9182 XML_SCHEMA_TYPE_EXTENSION = 13
9183 XML_SCHEMA_TYPE_ELEMENT = 14
9184 XML_SCHEMA_TYPE_ATTRIBUTE = 15
9185 XML_SCHEMA_TYPE_ATTRIBUTEGROUP = 16
9186 XML_SCHEMA_TYPE_GROUP = 17
9187 XML_SCHEMA_TYPE_NOTATION = 18
9188 XML_SCHEMA_TYPE_LIST = 19
9189 XML_SCHEMA_TYPE_UNION = 20
9190 XML_SCHEMA_TYPE_ANY_ATTRIBUTE = 21
9191 XML_SCHEMA_TYPE_IDC_UNIQUE = 22
9192 XML_SCHEMA_TYPE_IDC_KEY = 23
9193 XML_SCHEMA_TYPE_IDC_KEYREF = 24
9194 XML_SCHEMA_TYPE_PARTICLE = 25
9195 XML_SCHEMA_TYPE_ATTRIBUTE_USE = 26
9196 XML_SCHEMA_FACET_MININCLUSIVE = 1000
9197 XML_SCHEMA_FACET_MINEXCLUSIVE = 1001
9198 XML_SCHEMA_FACET_MAXINCLUSIVE = 1002
9199 XML_SCHEMA_FACET_MAXEXCLUSIVE = 1003
9200 XML_SCHEMA_FACET_TOTALDIGITS = 1004
9201 XML_SCHEMA_FACET_FRACTIONDIGITS = 1005
9202 XML_SCHEMA_FACET_PATTERN = 1006
9203 XML_SCHEMA_FACET_ENUMERATION = 1007
9204 XML_SCHEMA_FACET_WHITESPACE = 1008
9205 XML_SCHEMA_FACET_LENGTH = 1009
9206 XML_SCHEMA_FACET_MAXLENGTH = 1010
9207 XML_SCHEMA_FACET_MINLENGTH = 1011
9208 XML_SCHEMA_EXTRA_QNAMEREF = 2000
9209 XML_SCHEMA_EXTRA_ATTR_USE_PROHIB = 2001
9210
9211 # xmlModuleOption
9212 XML_MODULE_LAZY = 1
9213 XML_MODULE_LOCAL = 2
9214
9215 # xmlParserMode
9216 XML_PARSE_UNKNOWN = 0
9217 XML_PARSE_DOM = 1
9218 XML_PARSE_SAX = 2
9219 XML_PARSE_PUSH_DOM = 3
9220 XML_PARSE_PUSH_SAX = 4
9221 XML_PARSE_READER = 5
9222
9223 # xmlC14NMode
9224 XML_C14N_1_0 = 0
9225 XML_C14N_EXCLUSIVE_1_0 = 1
9226 XML_C14N_1_1 = 2
9227
9228 # xmlParserOption
9229 XML_PARSE_RECOVER = 1
9230 XML_PARSE_NOENT = 2
9231 XML_PARSE_DTDLOAD = 4
9232 XML_PARSE_DTDATTR = 8
9233 XML_PARSE_DTDVALID = 16
9234 XML_PARSE_NOERROR = 32
9235 XML_PARSE_NOWARNING = 64
9236 XML_PARSE_PEDANTIC = 128
9237 XML_PARSE_NOBLANKS = 256
9238 XML_PARSE_SAX1 = 512
9239 XML_PARSE_XINCLUDE = 1024
9240 XML_PARSE_NONET = 2048
9241 XML_PARSE_NODICT = 4096
9242 XML_PARSE_NSCLEAN = 8192
9243 XML_PARSE_NOCDATA = 16384
9244 XML_PARSE_NOXINCNODE = 32768
9245 XML_PARSE_COMPACT = 65536
9246 XML_PARSE_OLD10 = 131072
9247 XML_PARSE_NOBASEFIX = 262144
9248 XML_PARSE_HUGE = 524288
9249 XML_PARSE_OLDSAX = 1048576
9250 XML_PARSE_IGNORE_ENC = 2097152
9251 XML_PARSE_BIG_LINES = 4194304
9252
9253 # xmlElementTypeVal
9254 XML_ELEMENT_TYPE_UNDEFINED = 0
9255 XML_ELEMENT_TYPE_EMPTY = 1
9256 XML_ELEMENT_TYPE_ANY = 2
9257 XML_ELEMENT_TYPE_MIXED = 3
9258 XML_ELEMENT_TYPE_ELEMENT = 4
9259
9260 # xmlDocProperties
9261 XML_DOC_WELLFORMED = 1
9262 XML_DOC_NSVALID = 2
9263 XML_DOC_OLD10 = 4
9264 XML_DOC_DTDVALID = 8
9265 XML_DOC_XINCLUDE = 16
9266 XML_DOC_USERBUILT = 32
9267 XML_DOC_INTERNAL = 64
9268 XML_DOC_HTML = 128
9269
9270 # xlinkType
9271 XLINK_TYPE_NONE = 0
9272 XLINK_TYPE_SIMPLE = 1
9273 XLINK_TYPE_EXTENDED = 2
9274 XLINK_TYPE_EXTENDED_SET = 3
9275
9276 # xmlXPathObjectType
9277 XPATH_UNDEFINED = 0
9278 XPATH_NODESET = 1
9279 XPATH_BOOLEAN = 2
9280 XPATH_NUMBER = 3
9281 XPATH_STRING = 4
9282 XPATH_POINT = 5
9283 XPATH_RANGE = 6
9284 XPATH_LOCATIONSET = 7
9285 XPATH_USERS = 8
9286 XPATH_XSLT_TREE = 9
9287
9288 # xmlSchemaValidError
9289 XML_SCHEMAS_ERR_OK = 0
9290 XML_SCHEMAS_ERR_NOROOT = 1
9291 XML_SCHEMAS_ERR_UNDECLAREDELEM = 2
9292 XML_SCHEMAS_ERR_NOTTOPLEVEL = 3
9293 XML_SCHEMAS_ERR_MISSING = 4
9294 XML_SCHEMAS_ERR_WRONGELEM = 5
9295 XML_SCHEMAS_ERR_NOTYPE = 6
9296 XML_SCHEMAS_ERR_NOROLLBACK = 7
9297 XML_SCHEMAS_ERR_ISABSTRACT = 8
9298 XML_SCHEMAS_ERR_NOTEMPTY = 9
9299 XML_SCHEMAS_ERR_ELEMCONT = 10
9300 XML_SCHEMAS_ERR_HAVEDEFAULT = 11
9301 XML_SCHEMAS_ERR_NOTNILLABLE = 12
9302 XML_SCHEMAS_ERR_EXTRACONTENT = 13
9303 XML_SCHEMAS_ERR_INVALIDATTR = 14
9304 XML_SCHEMAS_ERR_INVALIDELEM = 15
9305 XML_SCHEMAS_ERR_NOTDETERMINIST = 16
9306 XML_SCHEMAS_ERR_CONSTRUCT = 17
9307 XML_SCHEMAS_ERR_INTERNAL = 18
9308 XML_SCHEMAS_ERR_NOTSIMPLE = 19
9309 XML_SCHEMAS_ERR_ATTRUNKNOWN = 20
9310 XML_SCHEMAS_ERR_ATTRINVALID = 21
9311 XML_SCHEMAS_ERR_VALUE = 22
9312 XML_SCHEMAS_ERR_FACET = 23
9313 XML_SCHEMAS_ERR_ = 24
9314 XML_SCHEMAS_ERR_XXX = 25
9315