Annotation of embedaddon/libxml2/python/libxml2.py, revision 1.1

1.1     ! misho       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: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>