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

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

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