aboutsummaryrefslogtreecommitdiff
path: root/libxml2-2.9.10/python/libxml2.py
diff options
context:
space:
mode:
Diffstat (limited to 'libxml2-2.9.10/python/libxml2.py')
-rw-r--r--libxml2-2.9.10/python/libxml2.py9327
1 files changed, 9327 insertions, 0 deletions
diff --git a/libxml2-2.9.10/python/libxml2.py b/libxml2-2.9.10/python/libxml2.py
new file mode 100644
index 0000000..081a892
--- /dev/null
+++ b/libxml2-2.9.10/python/libxml2.py
@@ -0,0 +1,9327 @@
+import libxml2mod
+import types
+import sys
+
+# The root of all libxml2 errors.
+class libxmlError(Exception): pass
+
+# Type of the wrapper class for the C objects wrappers
+def checkWrapper(obj):
+ try:
+ n = type(_obj).__name__
+ if n != 'PyCObject' and n != 'PyCapsule':
+ return 1
+ except:
+ return 0
+ return 0
+
+#
+# id() is sometimes negative ...
+#
+def pos_id(o):
+ i = id(o)
+ if (i < 0):
+ return (sys.maxsize - i)
+ return i
+
+#
+# Errors raised by the wrappers when some tree handling failed.
+#
+class treeError(libxmlError):
+ def __init__(self, msg):
+ self.msg = msg
+ def __str__(self):
+ return self.msg
+
+class parserError(libxmlError):
+ def __init__(self, msg):
+ self.msg = msg
+ def __str__(self):
+ return self.msg
+
+class uriError(libxmlError):
+ def __init__(self, msg):
+ self.msg = msg
+ def __str__(self):
+ return self.msg
+
+class xpathError(libxmlError):
+ def __init__(self, msg):
+ self.msg = msg
+ def __str__(self):
+ return self.msg
+
+class ioWrapper:
+ def __init__(self, _obj):
+ self.__io = _obj
+ self._o = None
+
+ def io_close(self):
+ if self.__io == None:
+ return(-1)
+ self.__io.close()
+ self.__io = None
+ return(0)
+
+ def io_flush(self):
+ if self.__io == None:
+ return(-1)
+ self.__io.flush()
+ return(0)
+
+ def io_read(self, len = -1):
+ if self.__io == None:
+ return(-1)
+ try:
+ if len < 0:
+ ret = self.__io.read()
+ else:
+ ret = self.__io.read(len)
+ except Exception:
+ import sys
+ e = sys.exc_info()[1]
+ print("failed to read from Python:", type(e))
+ print("on IO:", self.__io)
+ self.__io == None
+ return(-1)
+
+ return(ret)
+
+ def io_write(self, str, len = -1):
+ if self.__io == None:
+ return(-1)
+ if len < 0:
+ return(self.__io.write(str))
+ return(self.__io.write(str, len))
+
+class ioReadWrapper(ioWrapper):
+ def __init__(self, _obj, enc = ""):
+ ioWrapper.__init__(self, _obj)
+ self._o = libxml2mod.xmlCreateInputBuffer(self, enc)
+
+ def __del__(self):
+ print("__del__")
+ self.io_close()
+ if self._o != None:
+ libxml2mod.xmlFreeParserInputBuffer(self._o)
+ self._o = None
+
+ def close(self):
+ self.io_close()
+ if self._o != None:
+ libxml2mod.xmlFreeParserInputBuffer(self._o)
+ self._o = None
+
+class ioWriteWrapper(ioWrapper):
+ def __init__(self, _obj, enc = ""):
+# print "ioWriteWrapper.__init__", _obj
+ if type(_obj) == type(''):
+ print("write io from a string")
+ self.o = None
+ elif type(_obj).__name__ == 'PyCapsule':
+ file = libxml2mod.outputBufferGetPythonFile(_obj)
+ if file != None:
+ ioWrapper.__init__(self, file)
+ else:
+ ioWrapper.__init__(self, _obj)
+ self._o = _obj
+# elif type(_obj) == types.InstanceType:
+# print(("write io from instance of %s" % (_obj.__class__)))
+# ioWrapper.__init__(self, _obj)
+# self._o = libxml2mod.xmlCreateOutputBuffer(self, enc)
+ else:
+ file = libxml2mod.outputBufferGetPythonFile(_obj)
+ if file != None:
+ ioWrapper.__init__(self, file)
+ else:
+ ioWrapper.__init__(self, _obj)
+ self._o = _obj
+
+ def __del__(self):
+# print "__del__"
+ self.io_close()
+ if self._o != None:
+ libxml2mod.xmlOutputBufferClose(self._o)
+ self._o = None
+
+ def flush(self):
+ self.io_flush()
+ if self._o != None:
+ libxml2mod.xmlOutputBufferClose(self._o)
+ self._o = None
+
+ def close(self):
+ self.io_flush()
+ if self._o != None:
+ libxml2mod.xmlOutputBufferClose(self._o)
+ self._o = None
+
+#
+# Example of a class to handle SAX events
+#
+class SAXCallback:
+ """Base class for SAX handlers"""
+ def startDocument(self):
+ """called at the start of the document"""
+ pass
+
+ def endDocument(self):
+ """called at the end of the document"""
+ pass
+
+ def startElement(self, tag, attrs):
+ """called at the start of every element, tag is the name of
+ the element, attrs is a dictionary of the element's attributes"""
+ pass
+
+ def endElement(self, tag):
+ """called at the start of every element, tag is the name of
+ the element"""
+ pass
+
+ def characters(self, data):
+ """called when character data have been read, data is the string
+ containing the data, multiple consecutive characters() callback
+ are possible."""
+ pass
+
+ def cdataBlock(self, data):
+ """called when CDATA section have been read, data is the string
+ containing the data, multiple consecutive cdataBlock() callback
+ are possible."""
+ pass
+
+ def reference(self, name):
+ """called when an entity reference has been found"""
+ pass
+
+ def ignorableWhitespace(self, data):
+ """called when potentially ignorable white spaces have been found"""
+ pass
+
+ def processingInstruction(self, target, data):
+ """called when a PI has been found, target contains the PI name and
+ data is the associated data in the PI"""
+ pass
+
+ def comment(self, content):
+ """called when a comment has been found, content contains the comment"""
+ pass
+
+ def externalSubset(self, name, externalID, systemID):
+ """called when a DOCTYPE declaration has been found, name is the
+ DTD name and externalID, systemID are the DTD public and system
+ identifier for that DTd if available"""
+ pass
+
+ def internalSubset(self, name, externalID, systemID):
+ """called when a DOCTYPE declaration has been found, name is the
+ DTD name and externalID, systemID are the DTD public and system
+ identifier for that DTD if available"""
+ pass
+
+ def entityDecl(self, name, type, externalID, systemID, content):
+ """called when an ENTITY declaration has been found, name is the
+ entity name and externalID, systemID are the entity public and
+ system identifier for that entity if available, type indicates
+ the entity type, and content reports it's string content"""
+ pass
+
+ def notationDecl(self, name, externalID, systemID):
+ """called when an NOTATION declaration has been found, name is the
+ notation name and externalID, systemID are the notation public and
+ system identifier for that notation if available"""
+ pass
+
+ def attributeDecl(self, elem, name, type, defi, defaultValue, nameList):
+ """called when an ATTRIBUTE definition has been found"""
+ pass
+
+ def elementDecl(self, name, type, content):
+ """called when an ELEMENT definition has been found"""
+ pass
+
+ def entityDecl(self, name, publicId, systemID, notationName):
+ """called when an unparsed ENTITY declaration has been found,
+ name is the entity name and publicId,, systemID are the entity
+ public and system identifier for that entity if available,
+ and notationName indicate the associated NOTATION"""
+ pass
+
+ def warning(self, msg):
+ #print msg
+ pass
+
+ def error(self, msg):
+ raise parserError(msg)
+
+ def fatalError(self, msg):
+ raise parserError(msg)
+
+#
+# This class is the ancestor of all the Node classes. It provides
+# the basic functionalities shared by all nodes (and handle
+# gracefylly the exception), like name, navigation in the tree,
+# doc reference, content access and serializing to a string or URI
+#
+class xmlCore:
+ def __init__(self, _obj=None):
+ if _obj != None:
+ self._o = _obj;
+ return
+ self._o = None
+
+ def __eq__(self, other):
+ if other == None:
+ return False
+ ret = libxml2mod.compareNodesEqual(self._o, other._o)
+ if ret == None:
+ return False
+ return ret == True
+ def __ne__(self, other):
+ if other == None:
+ return True
+ ret = libxml2mod.compareNodesEqual(self._o, other._o)
+ return not ret
+ def __hash__(self):
+ ret = libxml2mod.nodeHash(self._o)
+ return ret
+
+ def __str__(self):
+ return self.serialize()
+ def get_parent(self):
+ ret = libxml2mod.parent(self._o)
+ if ret == None:
+ return None
+ return nodeWrap(ret)
+ def get_children(self):
+ ret = libxml2mod.children(self._o)
+ if ret == None:
+ return None
+ return nodeWrap(ret)
+ def get_last(self):
+ ret = libxml2mod.last(self._o)
+ if ret == None:
+ return None
+ return nodeWrap(ret)
+ def get_next(self):
+ ret = libxml2mod.next(self._o)
+ if ret == None:
+ return None
+ return nodeWrap(ret)
+ def get_properties(self):
+ ret = libxml2mod.properties(self._o)
+ if ret == None:
+ return None
+ return xmlAttr(_obj=ret)
+ def get_prev(self):
+ ret = libxml2mod.prev(self._o)
+ if ret == None:
+ return None
+ return nodeWrap(ret)
+ def get_content(self):
+ return libxml2mod.xmlNodeGetContent(self._o)
+ getContent = get_content # why is this duplicate naming needed ?
+ def get_name(self):
+ return libxml2mod.name(self._o)
+ def get_type(self):
+ return libxml2mod.type(self._o)
+ def get_doc(self):
+ ret = libxml2mod.doc(self._o)
+ if ret == None:
+ if self.type in ["document_xml", "document_html"]:
+ return xmlDoc(_obj=self._o)
+ else:
+ return None
+ return xmlDoc(_obj=ret)
+ #
+ # Those are common attributes to nearly all type of nodes
+ # defined as python2 properties
+ #
+ import sys
+ if float(sys.version[0:3]) < 2.2:
+ def __getattr__(self, attr):
+ if attr == "parent":
+ ret = libxml2mod.parent(self._o)
+ if ret == None:
+ return None
+ return nodeWrap(ret)
+ elif attr == "properties":
+ ret = libxml2mod.properties(self._o)
+ if ret == None:
+ return None
+ return xmlAttr(_obj=ret)
+ elif attr == "children":
+ ret = libxml2mod.children(self._o)
+ if ret == None:
+ return None
+ return nodeWrap(ret)
+ elif attr == "last":
+ ret = libxml2mod.last(self._o)
+ if ret == None:
+ return None
+ return nodeWrap(ret)
+ elif attr == "next":
+ ret = libxml2mod.next(self._o)
+ if ret == None:
+ return None
+ return nodeWrap(ret)
+ elif attr == "prev":
+ ret = libxml2mod.prev(self._o)
+ if ret == None:
+ return None
+ return nodeWrap(ret)
+ elif attr == "content":
+ return libxml2mod.xmlNodeGetContent(self._o)
+ elif attr == "name":
+ return libxml2mod.name(self._o)
+ elif attr == "type":
+ return libxml2mod.type(self._o)
+ elif attr == "doc":
+ ret = libxml2mod.doc(self._o)
+ if ret == None:
+ if self.type == "document_xml" or self.type == "document_html":
+ return xmlDoc(_obj=self._o)
+ else:
+ return None
+ return xmlDoc(_obj=ret)
+ raise AttributeError(attr)
+ else:
+ parent = property(get_parent, None, None, "Parent node")
+ children = property(get_children, None, None, "First child node")
+ last = property(get_last, None, None, "Last sibling node")
+ next = property(get_next, None, None, "Next sibling node")
+ prev = property(get_prev, None, None, "Previous sibling node")
+ properties = property(get_properties, None, None, "List of properies")
+ content = property(get_content, None, None, "Content of this node")
+ name = property(get_name, None, None, "Node name")
+ type = property(get_type, None, None, "Node type")
+ doc = property(get_doc, None, None, "The document this node belongs to")
+
+ #
+ # Serialization routines, the optional arguments have the following
+ # meaning:
+ # encoding: string to ask saving in a specific encoding
+ # indent: if 1 the serializer is asked to indent the output
+ #
+ def serialize(self, encoding = None, format = 0):
+ return libxml2mod.serializeNode(self._o, encoding, format)
+ def saveTo(self, file, encoding = None, format = 0):
+ return libxml2mod.saveNodeTo(self._o, file, encoding, format)
+
+ #
+ # Canonicalization routines:
+ #
+ # nodes: the node set (tuple or list) to be included in the
+ # canonized image or None if all document nodes should be
+ # included.
+ # exclusive: the exclusive flag (0 - non-exclusive
+ # canonicalization; otherwise - exclusive canonicalization)
+ # prefixes: the list of inclusive namespace prefixes (strings),
+ # or None if there is no inclusive namespaces (only for
+ # exclusive canonicalization, ignored otherwise)
+ # with_comments: include comments in the result (!=0) or not
+ # (==0)
+ def c14nMemory(self,
+ nodes=None,
+ exclusive=0,
+ prefixes=None,
+ with_comments=0):
+ if nodes:
+ nodes = [n._o for n in nodes]
+ return libxml2mod.xmlC14NDocDumpMemory(
+ self.get_doc()._o,
+ nodes,
+ exclusive != 0,
+ prefixes,
+ with_comments != 0)
+ def c14nSaveTo(self,
+ file,
+ nodes=None,
+ exclusive=0,
+ prefixes=None,
+ with_comments=0):
+ if nodes:
+ nodes = [n._o for n in nodes]
+ return libxml2mod.xmlC14NDocSaveTo(
+ self.get_doc()._o,
+ nodes,
+ exclusive != 0,
+ prefixes,
+ with_comments != 0,
+ file)
+
+ #
+ # Selecting nodes using XPath, a bit slow because the context
+ # is allocated/freed every time but convenient.
+ #
+ def xpathEval(self, expr):
+ doc = self.doc
+ if doc == None:
+ return None
+ ctxt = doc.xpathNewContext()
+ ctxt.setContextNode(self)
+ res = ctxt.xpathEval(expr)
+ ctxt.xpathFreeContext()
+ return res
+
+# #
+# # Selecting nodes using XPath, faster because the context
+# # is allocated just once per xmlDoc.
+# #
+# # Removed: DV memleaks c.f. #126735
+# #
+# def xpathEval2(self, expr):
+# doc = self.doc
+# if doc == None:
+# return None
+# try:
+# doc._ctxt.setContextNode(self)
+# except:
+# doc._ctxt = doc.xpathNewContext()
+# doc._ctxt.setContextNode(self)
+# res = doc._ctxt.xpathEval(expr)
+# return res
+ def xpathEval2(self, expr):
+ return self.xpathEval(expr)
+
+ # Remove namespaces
+ def removeNsDef(self, href):
+ """
+ Remove a namespace definition from a node. If href is None,
+ remove all of the ns definitions on that node. The removed
+ namespaces are returned as a linked list.
+
+ Note: If any child nodes referred to the removed namespaces,
+ they will be left with dangling links. You should call
+ renconciliateNs() to fix those pointers.
+
+ Note: This method does not free memory taken by the ns
+ definitions. You will need to free it manually with the
+ freeNsList() method on the returns xmlNs object.
+ """
+
+ ret = libxml2mod.xmlNodeRemoveNsDef(self._o, href)
+ if ret is None:return None
+ __tmp = xmlNs(_obj=ret)
+ return __tmp
+
+ # support for python2 iterators
+ def walk_depth_first(self):
+ return xmlCoreDepthFirstItertor(self)
+ def walk_breadth_first(self):
+ return xmlCoreBreadthFirstItertor(self)
+ __iter__ = walk_depth_first
+
+ def free(self):
+ try:
+ self.doc._ctxt.xpathFreeContext()
+ except:
+ pass
+ libxml2mod.xmlFreeDoc(self._o)
+
+
+#
+# implements the depth-first iterator for libxml2 DOM tree
+#
+class xmlCoreDepthFirstItertor:
+ def __init__(self, node):
+ self.node = node
+ self.parents = []
+ def __iter__(self):
+ return self
+ def __next__(self):
+ while 1:
+ if self.node:
+ ret = self.node
+ self.parents.append(self.node)
+ self.node = self.node.children
+ return ret
+ try:
+ parent = self.parents.pop()
+ except IndexError:
+ raise StopIteration
+ self.node = parent.next
+ next = __next__
+
+#
+# implements the breadth-first iterator for libxml2 DOM tree
+#
+class xmlCoreBreadthFirstItertor:
+ def __init__(self, node):
+ self.node = node
+ self.parents = []
+ def __iter__(self):
+ return self
+ def __next__(self):
+ while 1:
+ if self.node:
+ ret = self.node
+ self.parents.append(self.node)
+ self.node = self.node.next
+ return ret
+ try:
+ parent = self.parents.pop()
+ except IndexError:
+ raise StopIteration
+ self.node = parent.children
+ next = __next__
+
+#
+# converters to present a nicer view of the XPath returns
+#
+def nodeWrap(o):
+ # TODO try to cast to the most appropriate node class
+ name = libxml2mod.type(o)
+ if name == "element" or name == "text":
+ return xmlNode(_obj=o)
+ if name == "attribute":
+ return xmlAttr(_obj=o)
+ if name[0:8] == "document":
+ return xmlDoc(_obj=o)
+ if name == "namespace":
+ return xmlNs(_obj=o)
+ if name == "elem_decl":
+ return xmlElement(_obj=o)
+ if name == "attribute_decl":
+ return xmlAttribute(_obj=o)
+ if name == "entity_decl":
+ return xmlEntity(_obj=o)
+ if name == "dtd":
+ return xmlDtd(_obj=o)
+ return xmlNode(_obj=o)
+
+def xpathObjectRet(o):
+ otype = type(o)
+ if otype == type([]):
+ ret = list(map(xpathObjectRet, o))
+ return ret
+ elif otype == type(()):
+ ret = list(map(xpathObjectRet, o))
+ return tuple(ret)
+ elif otype == type('') or otype == type(0) or otype == type(0.0):
+ return o
+ else:
+ return nodeWrap(o)
+
+#
+# register an XPath function
+#
+def registerXPathFunction(ctxt, name, ns_uri, f):
+ ret = libxml2mod.xmlRegisterXPathFunction(ctxt, name, ns_uri, f)
+
+#
+# For the xmlTextReader parser configuration
+#
+PARSER_LOADDTD=1
+PARSER_DEFAULTATTRS=2
+PARSER_VALIDATE=3
+PARSER_SUBST_ENTITIES=4
+
+#
+# For the error callback severities
+#
+PARSER_SEVERITY_VALIDITY_WARNING=1
+PARSER_SEVERITY_VALIDITY_ERROR=2
+PARSER_SEVERITY_WARNING=3
+PARSER_SEVERITY_ERROR=4
+
+#
+# register the libxml2 error handler
+#
+def registerErrorHandler(f, ctx):
+ """Register a Python written function to for error reporting.
+ The function is called back as f(ctx, error). """
+ import sys
+ if 'libxslt' not in sys.modules:
+ # normal behaviour when libxslt is not imported
+ ret = libxml2mod.xmlRegisterErrorHandler(f,ctx)
+ else:
+ # when libxslt is already imported, one must
+ # use libxst's error handler instead
+ import libxslt
+ ret = libxslt.registerErrorHandler(f,ctx)
+ return ret
+
+class parserCtxtCore:
+
+ def __init__(self, _obj=None):
+ if _obj != None:
+ self._o = _obj;
+ return
+ self._o = None
+
+ def __del__(self):
+ if self._o != None:
+ libxml2mod.xmlFreeParserCtxt(self._o)
+ self._o = None
+
+ def setErrorHandler(self,f,arg):
+ """Register an error handler that will be called back as
+ f(arg,msg,severity,reserved).
+
+ @reserved is currently always None."""
+ libxml2mod.xmlParserCtxtSetErrorHandler(self._o,f,arg)
+
+ def getErrorHandler(self):
+ """Return (f,arg) as previously registered with setErrorHandler
+ or (None,None)."""
+ return libxml2mod.xmlParserCtxtGetErrorHandler(self._o)
+
+ def addLocalCatalog(self, uri):
+ """Register a local catalog with the parser"""
+ return libxml2mod.addLocalCatalog(self._o, uri)
+
+
+class ValidCtxtCore:
+
+ def __init__(self, *args, **kw):
+ pass
+
+ def setValidityErrorHandler(self, err_func, warn_func, arg=None):
+ """
+ Register error and warning handlers for DTD validation.
+ These will be called back as f(msg,arg)
+ """
+ libxml2mod.xmlSetValidErrors(self._o, err_func, warn_func, arg)
+
+
+class SchemaValidCtxtCore:
+
+ def __init__(self, *args, **kw):
+ pass
+
+ def setValidityErrorHandler(self, err_func, warn_func, arg=None):
+ """
+ Register error and warning handlers for Schema validation.
+ These will be called back as f(msg,arg)
+ """
+ libxml2mod.xmlSchemaSetValidErrors(self._o, err_func, warn_func, arg)
+
+
+class relaxNgValidCtxtCore:
+
+ def __init__(self, *args, **kw):
+ pass
+
+ def setValidityErrorHandler(self, err_func, warn_func, arg=None):
+ """
+ Register error and warning handlers for RelaxNG validation.
+ These will be called back as f(msg,arg)
+ """
+ libxml2mod.xmlRelaxNGSetValidErrors(self._o, err_func, warn_func, arg)
+
+
+def _xmlTextReaderErrorFunc(xxx_todo_changeme,msg,severity,locator):
+ """Intermediate callback to wrap the locator"""
+ (f,arg) = xxx_todo_changeme
+ return f(arg,msg,severity,xmlTextReaderLocator(locator))
+
+class xmlTextReaderCore:
+
+ def __init__(self, _obj=None):
+ self.input = None
+ if _obj != None:self._o = _obj;return
+ self._o = None
+
+ def __del__(self):
+ if self._o != None:
+ libxml2mod.xmlFreeTextReader(self._o)
+ self._o = None
+
+ def SetErrorHandler(self,f,arg):
+ """Register an error handler that will be called back as
+ f(arg,msg,severity,locator)."""
+ if f is None:
+ libxml2mod.xmlTextReaderSetErrorHandler(\
+ self._o,None,None)
+ else:
+ libxml2mod.xmlTextReaderSetErrorHandler(\
+ self._o,_xmlTextReaderErrorFunc,(f,arg))
+
+ def GetErrorHandler(self):
+ """Return (f,arg) as previously registered with setErrorHandler
+ or (None,None)."""
+ f,arg = libxml2mod.xmlTextReaderGetErrorHandler(self._o)
+ if f is None:
+ return None,None
+ else:
+ # assert f is _xmlTextReaderErrorFunc
+ return arg
+
+#
+# The cleanup now goes though a wrapper in libxml.c
+#
+def cleanupParser():
+ libxml2mod.xmlPythonCleanupParser()
+
+#
+# The interface to xmlRegisterInputCallbacks.
+# Since this API does not allow to pass a data object along with
+# match/open callbacks, it is necessary to maintain a list of all
+# Python callbacks.
+#
+__input_callbacks = []
+def registerInputCallback(func):
+ def findOpenCallback(URI):
+ for cb in reversed(__input_callbacks):
+ o = cb(URI)
+ if o is not None:
+ return o
+ libxml2mod.xmlRegisterInputCallback(findOpenCallback)
+ __input_callbacks.append(func)
+
+def popInputCallbacks():
+ # First pop python-level callbacks, when no more available - start
+ # popping built-in ones.
+ if len(__input_callbacks) > 0:
+ __input_callbacks.pop()
+ if len(__input_callbacks) == 0:
+ libxml2mod.xmlUnregisterInputCallback()
+
+# WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
+#
+# Everything before this line comes from libxml.py
+# Everything after this line is automatically generated
+#
+# WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
+
+#
+# Functions from module HTMLparser
+#
+
+def htmlCreateMemoryParserCtxt(buffer, size):
+ """Create a parser context for an HTML in-memory document. """
+ ret = libxml2mod.htmlCreateMemoryParserCtxt(buffer, size)
+ if ret is None:raise parserError('htmlCreateMemoryParserCtxt() failed')
+ return parserCtxt(_obj=ret)
+
+def htmlHandleOmittedElem(val):
+ """Set and return the previous value for handling HTML omitted
+ tags. """
+ ret = libxml2mod.htmlHandleOmittedElem(val)
+ return ret
+
+def htmlIsScriptAttribute(name):
+ """Check if an attribute is of content type Script """
+ ret = libxml2mod.htmlIsScriptAttribute(name)
+ return ret
+
+def htmlNewParserCtxt():
+ """Allocate and initialize a new parser context. """
+ ret = libxml2mod.htmlNewParserCtxt()
+ if ret is None:raise parserError('htmlNewParserCtxt() failed')
+ return parserCtxt(_obj=ret)
+
+def htmlParseDoc(cur, encoding):
+ """parse an HTML in-memory document and build a tree. """
+ ret = libxml2mod.htmlParseDoc(cur, encoding)
+ if ret is None:raise parserError('htmlParseDoc() failed')
+ return xmlDoc(_obj=ret)
+
+def htmlParseFile(filename, encoding):
+ """parse an HTML file and build a tree. Automatic support for
+ ZLIB/Compress compressed document is provided by default if
+ found at compile-time. """
+ ret = libxml2mod.htmlParseFile(filename, encoding)
+ if ret is None:raise parserError('htmlParseFile() failed')
+ return xmlDoc(_obj=ret)
+
+def htmlReadDoc(cur, URL, encoding, options):
+ """parse an XML in-memory document and build a tree. """
+ ret = libxml2mod.htmlReadDoc(cur, URL, encoding, options)
+ if ret is None:raise treeError('htmlReadDoc() failed')
+ return xmlDoc(_obj=ret)
+
+def htmlReadFd(fd, URL, encoding, options):
+ """parse an XML from a file descriptor and build a tree. """
+ ret = libxml2mod.htmlReadFd(fd, URL, encoding, options)
+ if ret is None:raise treeError('htmlReadFd() failed')
+ return xmlDoc(_obj=ret)
+
+def htmlReadFile(filename, encoding, options):
+ """parse an XML file from the filesystem or the network. """
+ ret = libxml2mod.htmlReadFile(filename, encoding, options)
+ if ret is None:raise treeError('htmlReadFile() failed')
+ return xmlDoc(_obj=ret)
+
+def htmlReadMemory(buffer, size, URL, encoding, options):
+ """parse an XML in-memory document and build a tree. """
+ ret = libxml2mod.htmlReadMemory(buffer, size, URL, encoding, options)
+ if ret is None:raise treeError('htmlReadMemory() failed')
+ return xmlDoc(_obj=ret)
+
+#
+# Functions from module HTMLtree
+#
+
+def htmlIsBooleanAttr(name):
+ """Determine if a given attribute is a boolean attribute. """
+ ret = libxml2mod.htmlIsBooleanAttr(name)
+ return ret
+
+def htmlNewDoc(URI, ExternalID):
+ """Creates a new HTML document """
+ ret = libxml2mod.htmlNewDoc(URI, ExternalID)
+ if ret is None:raise treeError('htmlNewDoc() failed')
+ return xmlDoc(_obj=ret)
+
+def htmlNewDocNoDtD(URI, ExternalID):
+ """Creates a new HTML document without a DTD node if @URI and
+ @ExternalID are None """
+ ret = libxml2mod.htmlNewDocNoDtD(URI, ExternalID)
+ if ret is None:raise treeError('htmlNewDocNoDtD() failed')
+ return xmlDoc(_obj=ret)
+
+#
+# Functions from module SAX2
+#
+
+def SAXDefaultVersion(version):
+ """Set the default version of SAX used globally by the
+ library. By default, during initialization the default is
+ set to 2. Note that it is generally a better coding style
+ to use xmlSAXVersion() to set up the version explicitly for
+ a given parsing context. """
+ ret = libxml2mod.xmlSAXDefaultVersion(version)
+ return ret
+
+def defaultSAXHandlerInit():
+ """Initialize the default SAX2 handler """
+ libxml2mod.xmlDefaultSAXHandlerInit()
+
+def docbDefaultSAXHandlerInit():
+ """Initialize the default SAX handler """
+ libxml2mod.docbDefaultSAXHandlerInit()
+
+def htmlDefaultSAXHandlerInit():
+ """Initialize the default SAX handler """
+ libxml2mod.htmlDefaultSAXHandlerInit()
+
+#
+# Functions from module catalog
+#
+
+def catalogAdd(type, orig, replace):
+ """Add an entry in the catalog, it may overwrite existing but
+ different entries. If called before any other catalog
+ routine, allows to override the default shared catalog put
+ in place by xmlInitializeCatalog(); """
+ ret = libxml2mod.xmlCatalogAdd(type, orig, replace)
+ return ret
+
+def catalogCleanup():
+ """Free up all the memory associated with catalogs """
+ libxml2mod.xmlCatalogCleanup()
+
+def catalogConvert():
+ """Convert all the SGML catalog entries as XML ones """
+ ret = libxml2mod.xmlCatalogConvert()
+ return ret
+
+def catalogDump(out):
+ """Dump all the global catalog content to the given file. """
+ if out is not None: out.flush()
+ libxml2mod.xmlCatalogDump(out)
+
+def catalogGetPublic(pubID):
+ """Try to lookup the catalog reference associated to a public
+ ID DEPRECATED, use xmlCatalogResolvePublic() """
+ ret = libxml2mod.xmlCatalogGetPublic(pubID)
+ return ret
+
+def catalogGetSystem(sysID):
+ """Try to lookup the catalog reference associated to a system
+ ID DEPRECATED, use xmlCatalogResolveSystem() """
+ ret = libxml2mod.xmlCatalogGetSystem(sysID)
+ return ret
+
+def catalogRemove(value):
+ """Remove an entry from the catalog """
+ ret = libxml2mod.xmlCatalogRemove(value)
+ return ret
+
+def catalogResolve(pubID, sysID):
+ """Do a complete resolution lookup of an External Identifier """
+ ret = libxml2mod.xmlCatalogResolve(pubID, sysID)
+ return ret
+
+def catalogResolvePublic(pubID):
+ """Try to lookup the catalog reference associated to a public
+ ID """
+ ret = libxml2mod.xmlCatalogResolvePublic(pubID)
+ return ret
+
+def catalogResolveSystem(sysID):
+ """Try to lookup the catalog resource for a system ID """
+ ret = libxml2mod.xmlCatalogResolveSystem(sysID)
+ return ret
+
+def catalogResolveURI(URI):
+ """Do a complete resolution lookup of an URI """
+ ret = libxml2mod.xmlCatalogResolveURI(URI)
+ return ret
+
+def catalogSetDebug(level):
+ """Used to set the debug level for catalog operation, 0
+ disable debugging, 1 enable it """
+ ret = libxml2mod.xmlCatalogSetDebug(level)
+ return ret
+
+def initializeCatalog():
+ """Do the catalog initialization. this function is not thread
+ safe, catalog initialization should preferably be done once
+ at startup """
+ libxml2mod.xmlInitializeCatalog()
+
+def loadACatalog(filename):
+ """Load the catalog and build the associated data structures.
+ This can be either an XML Catalog or an SGML Catalog It
+ will recurse in SGML CATALOG entries. On the other hand XML
+ Catalogs are not handled recursively. """
+ ret = libxml2mod.xmlLoadACatalog(filename)
+ if ret is None:raise treeError('xmlLoadACatalog() failed')
+ return catalog(_obj=ret)
+
+def loadCatalog(filename):
+ """Load the catalog and makes its definitions effective for
+ the default external entity loader. It will recurse in SGML
+ CATALOG entries. this function is not thread safe, catalog
+ initialization should preferably be done once at startup """
+ ret = libxml2mod.xmlLoadCatalog(filename)
+ return ret
+
+def loadCatalogs(pathss):
+ """Load the catalogs and makes their definitions effective for
+ the default external entity loader. this function is not
+ thread safe, catalog initialization should preferably be
+ done once at startup """
+ libxml2mod.xmlLoadCatalogs(pathss)
+
+def loadSGMLSuperCatalog(filename):
+ """Load an SGML super catalog. It won't expand CATALOG or
+ DELEGATE references. This is only needed for manipulating
+ SGML Super Catalogs like adding and removing CATALOG or
+ DELEGATE entries. """
+ ret = libxml2mod.xmlLoadSGMLSuperCatalog(filename)
+ if ret is None:raise treeError('xmlLoadSGMLSuperCatalog() failed')
+ return catalog(_obj=ret)
+
+def newCatalog(sgml):
+ """create a new Catalog. """
+ ret = libxml2mod.xmlNewCatalog(sgml)
+ if ret is None:raise treeError('xmlNewCatalog() failed')
+ return catalog(_obj=ret)
+
+def parseCatalogFile(filename):
+ """parse an XML file and build a tree. It's like
+ xmlParseFile() except it bypass all catalog lookups. """
+ ret = libxml2mod.xmlParseCatalogFile(filename)
+ if ret is None:raise parserError('xmlParseCatalogFile() failed')
+ return xmlDoc(_obj=ret)
+
+#
+# Functions from module chvalid
+#
+
+def isBaseChar(ch):
+ """This function is DEPRECATED. Use xmlIsBaseChar_ch or
+ xmlIsBaseCharQ instead """
+ ret = libxml2mod.xmlIsBaseChar(ch)
+ return ret
+
+def isBlank(ch):
+ """This function is DEPRECATED. Use xmlIsBlank_ch or
+ xmlIsBlankQ instead """
+ ret = libxml2mod.xmlIsBlank(ch)
+ return ret
+
+def isChar(ch):
+ """This function is DEPRECATED. Use xmlIsChar_ch or xmlIsCharQ
+ instead """
+ ret = libxml2mod.xmlIsChar(ch)
+ return ret
+
+def isCombining(ch):
+ """This function is DEPRECATED. Use xmlIsCombiningQ instead """
+ ret = libxml2mod.xmlIsCombining(ch)
+ return ret
+
+def isDigit(ch):
+ """This function is DEPRECATED. Use xmlIsDigit_ch or
+ xmlIsDigitQ instead """
+ ret = libxml2mod.xmlIsDigit(ch)
+ return ret
+
+def isExtender(ch):
+ """This function is DEPRECATED. Use xmlIsExtender_ch or
+ xmlIsExtenderQ instead """
+ ret = libxml2mod.xmlIsExtender(ch)
+ return ret
+
+def isIdeographic(ch):
+ """This function is DEPRECATED. Use xmlIsIdeographicQ instead """
+ ret = libxml2mod.xmlIsIdeographic(ch)
+ return ret
+
+def isPubidChar(ch):
+ """This function is DEPRECATED. Use xmlIsPubidChar_ch or
+ xmlIsPubidCharQ instead """
+ ret = libxml2mod.xmlIsPubidChar(ch)
+ return ret
+
+#
+# Functions from module debugXML
+#
+
+def boolToText(boolval):
+ """Convenient way to turn bool into text """
+ ret = libxml2mod.xmlBoolToText(boolval)
+ return ret
+
+def debugDumpString(output, str):
+ """Dumps informations about the string, shorten it if necessary """
+ if output is not None: output.flush()
+ libxml2mod.xmlDebugDumpString(output, str)
+
+def shellPrintXPathError(errorType, arg):
+ """Print the xpath error to libxml default error channel """
+ libxml2mod.xmlShellPrintXPathError(errorType, arg)
+
+#
+# Functions from module dict
+#
+
+def dictCleanup():
+ """Free the dictionary mutex. Do not call unless sure the
+ library is not in use anymore ! """
+ libxml2mod.xmlDictCleanup()
+
+def initializeDict():
+ """Do the dictionary mutex initialization. this function is
+ deprecated """
+ ret = libxml2mod.xmlInitializeDict()
+ return ret
+
+#
+# Functions from module encoding
+#
+
+def addEncodingAlias(name, alias):
+ """Registers an alias @alias for an encoding named @name.
+ Existing alias will be overwritten. """
+ ret = libxml2mod.xmlAddEncodingAlias(name, alias)
+ return ret
+
+def cleanupCharEncodingHandlers():
+ """Cleanup the memory allocated for the char encoding support,
+ it unregisters all the encoding handlers and the aliases. """
+ libxml2mod.xmlCleanupCharEncodingHandlers()
+
+def cleanupEncodingAliases():
+ """Unregisters all aliases """
+ libxml2mod.xmlCleanupEncodingAliases()
+
+def delEncodingAlias(alias):
+ """Unregisters an encoding alias @alias """
+ ret = libxml2mod.xmlDelEncodingAlias(alias)
+ return ret
+
+def encodingAlias(alias):
+ """Lookup an encoding name for the given alias. """
+ ret = libxml2mod.xmlGetEncodingAlias(alias)
+ return ret
+
+def initCharEncodingHandlers():
+ """Initialize the char encoding support, it registers the
+ default encoding supported. NOTE: while public, this
+ function usually doesn't need to be called in normal
+ processing. """
+ libxml2mod.xmlInitCharEncodingHandlers()
+
+#
+# Functions from module entities
+#
+
+def cleanupPredefinedEntities():
+ """Cleanup up the predefined entities table. Deprecated call """
+ libxml2mod.xmlCleanupPredefinedEntities()
+
+def initializePredefinedEntities():
+ """Set up the predefined entities. Deprecated call """
+ libxml2mod.xmlInitializePredefinedEntities()
+
+def predefinedEntity(name):
+ """Check whether this name is an predefined entity. """
+ ret = libxml2mod.xmlGetPredefinedEntity(name)
+ if ret is None:raise treeError('xmlGetPredefinedEntity() failed')
+ return xmlEntity(_obj=ret)
+
+#
+# Functions from module globals
+#
+
+def cleanupGlobals():
+ """Additional cleanup for multi-threading """
+ libxml2mod.xmlCleanupGlobals()
+
+def initGlobals():
+ """Additional initialisation for multi-threading """
+ libxml2mod.xmlInitGlobals()
+
+def thrDefDefaultBufferSize(v):
+ ret = libxml2mod.xmlThrDefDefaultBufferSize(v)
+ return ret
+
+def thrDefDoValidityCheckingDefaultValue(v):
+ ret = libxml2mod.xmlThrDefDoValidityCheckingDefaultValue(v)
+ return ret
+
+def thrDefGetWarningsDefaultValue(v):
+ ret = libxml2mod.xmlThrDefGetWarningsDefaultValue(v)
+ return ret
+
+def thrDefIndentTreeOutput(v):
+ ret = libxml2mod.xmlThrDefIndentTreeOutput(v)
+ return ret
+
+def thrDefKeepBlanksDefaultValue(v):
+ ret = libxml2mod.xmlThrDefKeepBlanksDefaultValue(v)
+ return ret
+
+def thrDefLineNumbersDefaultValue(v):
+ ret = libxml2mod.xmlThrDefLineNumbersDefaultValue(v)
+ return ret
+
+def thrDefLoadExtDtdDefaultValue(v):
+ ret = libxml2mod.xmlThrDefLoadExtDtdDefaultValue(v)
+ return ret
+
+def thrDefParserDebugEntities(v):
+ ret = libxml2mod.xmlThrDefParserDebugEntities(v)
+ return ret
+
+def thrDefPedanticParserDefaultValue(v):
+ ret = libxml2mod.xmlThrDefPedanticParserDefaultValue(v)
+ return ret
+
+def thrDefSaveNoEmptyTags(v):
+ ret = libxml2mod.xmlThrDefSaveNoEmptyTags(v)
+ return ret
+
+def thrDefSubstituteEntitiesDefaultValue(v):
+ ret = libxml2mod.xmlThrDefSubstituteEntitiesDefaultValue(v)
+ return ret
+
+def thrDefTreeIndentString(v):
+ ret = libxml2mod.xmlThrDefTreeIndentString(v)
+ return ret
+
+#
+# Functions from module nanoftp
+#
+
+def nanoFTPCleanup():
+ """Cleanup the FTP protocol layer. This cleanup proxy
+ informations. """
+ libxml2mod.xmlNanoFTPCleanup()
+
+def nanoFTPInit():
+ """Initialize the FTP protocol layer. Currently it just checks
+ for proxy informations, and get the hostname """
+ libxml2mod.xmlNanoFTPInit()
+
+def nanoFTPProxy(host, port, user, passwd, type):
+ """Setup the FTP proxy informations. This can also be done by
+ using ftp_proxy ftp_proxy_user and ftp_proxy_password
+ environment variables. """
+ libxml2mod.xmlNanoFTPProxy(host, port, user, passwd, type)
+
+def nanoFTPScanProxy(URL):
+ """(Re)Initialize the FTP Proxy context by parsing the URL and
+ finding the protocol host port it indicates. Should be like
+ ftp://myproxy/ or ftp://myproxy:3128/ A None URL cleans up
+ proxy informations. """
+ libxml2mod.xmlNanoFTPScanProxy(URL)
+
+#
+# Functions from module nanohttp
+#
+
+def nanoHTTPCleanup():
+ """Cleanup the HTTP protocol layer. """
+ libxml2mod.xmlNanoHTTPCleanup()
+
+def nanoHTTPInit():
+ """Initialize the HTTP protocol layer. Currently it just
+ checks for proxy informations """
+ libxml2mod.xmlNanoHTTPInit()
+
+def nanoHTTPScanProxy(URL):
+ """(Re)Initialize the HTTP Proxy context by parsing the URL
+ and finding the protocol host port it indicates. Should be
+ like http://myproxy/ or http://myproxy:3128/ A None URL
+ cleans up proxy informations. """
+ libxml2mod.xmlNanoHTTPScanProxy(URL)
+
+#
+# Functions from module parser
+#
+
+def createDocParserCtxt(cur):
+ """Creates a parser context for an XML in-memory document. """
+ ret = libxml2mod.xmlCreateDocParserCtxt(cur)
+ if ret is None:raise parserError('xmlCreateDocParserCtxt() failed')
+ return parserCtxt(_obj=ret)
+
+def initParser():
+ """Initialization function for the XML parser. This is not
+ reentrant. Call once before processing in case of use in
+ multithreaded programs. """
+ libxml2mod.xmlInitParser()
+
+def keepBlanksDefault(val):
+ """Set and return the previous value for default blanks text
+ nodes support. The 1.x version of the parser used an
+ heuristic to try to detect ignorable white spaces. As a
+ result the SAX callback was generating
+ xmlSAX2IgnorableWhitespace() callbacks instead of
+ characters() one, and when using the DOM output text nodes
+ containing those blanks were not generated. The 2.x and
+ later version will switch to the XML standard way and
+ ignorableWhitespace() are only generated when running the
+ parser in validating mode and when the current element
+ doesn't allow CDATA or mixed content. This function is
+ provided as a way to force the standard behavior on 1.X
+ libs and to switch back to the old mode for compatibility
+ when running 1.X client code on 2.X . Upgrade of 1.X code
+ should be done by using xmlIsBlankNode() commodity function
+ to detect the "empty" nodes generated. This value also
+ affect autogeneration of indentation when saving code if
+ blanks sections are kept, indentation is not generated. """
+ ret = libxml2mod.xmlKeepBlanksDefault(val)
+ return ret
+
+def lineNumbersDefault(val):
+ """Set and return the previous value for enabling line numbers
+ in elements contents. This may break on old application and
+ is turned off by default. """
+ ret = libxml2mod.xmlLineNumbersDefault(val)
+ return ret
+
+def newParserCtxt():
+ """Allocate and initialize a new parser context. """
+ ret = libxml2mod.xmlNewParserCtxt()
+ if ret is None:raise parserError('xmlNewParserCtxt() failed')
+ return parserCtxt(_obj=ret)
+
+def parseDTD(ExternalID, SystemID):
+ """Load and parse an external subset. """
+ ret = libxml2mod.xmlParseDTD(ExternalID, SystemID)
+ if ret is None:raise parserError('xmlParseDTD() failed')
+ return xmlDtd(_obj=ret)
+
+def parseDoc(cur):
+ """parse an XML in-memory document and build a tree. """
+ ret = libxml2mod.xmlParseDoc(cur)
+ if ret is None:raise parserError('xmlParseDoc() failed')
+ return xmlDoc(_obj=ret)
+
+def parseEntity(filename):
+ """parse an XML external entity out of context and build a
+ tree. [78] extParsedEnt ::= TextDecl? content This
+ correspond to a "Well Balanced" chunk """
+ ret = libxml2mod.xmlParseEntity(filename)
+ if ret is None:raise parserError('xmlParseEntity() failed')
+ return xmlDoc(_obj=ret)
+
+def parseFile(filename):
+ """parse an XML file and build a tree. Automatic support for
+ ZLIB/Compress compressed document is provided by default if
+ found at compile-time. """
+ ret = libxml2mod.xmlParseFile(filename)
+ if ret is None:raise parserError('xmlParseFile() failed')
+ return xmlDoc(_obj=ret)
+
+def parseMemory(buffer, size):
+ """parse an XML in-memory block and build a tree. """
+ ret = libxml2mod.xmlParseMemory(buffer, size)
+ if ret is None:raise parserError('xmlParseMemory() failed')
+ return xmlDoc(_obj=ret)
+
+def pedanticParserDefault(val):
+ """Set and return the previous value for enabling pedantic
+ warnings. """
+ ret = libxml2mod.xmlPedanticParserDefault(val)
+ return ret
+
+def readDoc(cur, URL, encoding, options):
+ """parse an XML in-memory document and build a tree. """
+ ret = libxml2mod.xmlReadDoc(cur, URL, encoding, options)
+ if ret is None:raise treeError('xmlReadDoc() failed')
+ return xmlDoc(_obj=ret)
+
+def readFd(fd, URL, encoding, options):
+ """parse an XML from a file descriptor and build a tree. NOTE
+ that the file descriptor will not be closed when the reader
+ is closed or reset. """
+ ret = libxml2mod.xmlReadFd(fd, URL, encoding, options)
+ if ret is None:raise treeError('xmlReadFd() failed')
+ return xmlDoc(_obj=ret)
+
+def readFile(filename, encoding, options):
+ """parse an XML file from the filesystem or the network. """
+ ret = libxml2mod.xmlReadFile(filename, encoding, options)
+ if ret is None:raise treeError('xmlReadFile() failed')
+ return xmlDoc(_obj=ret)
+
+def readMemory(buffer, size, URL, encoding, options):
+ """parse an XML in-memory document and build a tree. """
+ ret = libxml2mod.xmlReadMemory(buffer, size, URL, encoding, options)
+ if ret is None:raise treeError('xmlReadMemory() failed')
+ return xmlDoc(_obj=ret)
+
+def recoverDoc(cur):
+ """parse an XML in-memory document and build a tree. In the
+ case the document is not Well Formed, a attempt to build a
+ tree is tried anyway """
+ ret = libxml2mod.xmlRecoverDoc(cur)
+ if ret is None:raise treeError('xmlRecoverDoc() failed')
+ return xmlDoc(_obj=ret)
+
+def recoverFile(filename):
+ """parse an XML file and build a tree. Automatic support for
+ ZLIB/Compress compressed document is provided by default if
+ found at compile-time. In the case the document is not Well
+ Formed, it attempts to build a tree anyway """
+ ret = libxml2mod.xmlRecoverFile(filename)
+ if ret is None:raise treeError('xmlRecoverFile() failed')
+ return xmlDoc(_obj=ret)
+
+def recoverMemory(buffer, size):
+ """parse an XML in-memory block and build a tree. In the case
+ the document is not Well Formed, an attempt to build a tree
+ is tried anyway """
+ ret = libxml2mod.xmlRecoverMemory(buffer, size)
+ if ret is None:raise treeError('xmlRecoverMemory() failed')
+ return xmlDoc(_obj=ret)
+
+def substituteEntitiesDefault(val):
+ """Set and return the previous value for default entity
+ support. Initially the parser always keep entity references
+ instead of substituting entity values in the output. This
+ function has to be used to change the default parser
+ behavior SAX::substituteEntities() has to be used for
+ changing that on a file by file basis. """
+ ret = libxml2mod.xmlSubstituteEntitiesDefault(val)
+ return ret
+
+#
+# Functions from module parserInternals
+#
+
+def checkLanguageID(lang):
+ """Checks that the value conforms to the LanguageID
+ production: NOTE: this is somewhat deprecated, those
+ productions were removed from the XML Second edition. [33]
+ LanguageID ::= Langcode ('-' Subcode)* [34] Langcode ::=
+ ISO639Code | IanaCode | UserCode [35] ISO639Code ::=
+ ([a-z] | [A-Z]) ([a-z] | [A-Z]) [36] IanaCode ::= ('i' |
+ 'I') '-' ([a-z] | [A-Z])+ [37] UserCode ::= ('x' | 'X') '-'
+ ([a-z] | [A-Z])+ [38] Subcode ::= ([a-z] | [A-Z])+ The
+ current REC reference the successors of RFC 1766, currently
+ 5646 http://www.rfc-editor.org/rfc/rfc5646.txt langtag
+ = language ["-" script] ["-" region] *("-" variant) *("-"
+ extension) ["-" privateuse] language = 2*3ALPHA
+ ; shortest ISO 639 code ["-" extlang] ; sometimes
+ followed by ; extended language subtags / 4ALPHA
+ ; or reserved for future use / 5*8ALPHA ; or
+ registered language subtag extlang = 3ALPHA
+ ; selected ISO 639 codes *2("-" 3ALPHA) ; permanently
+ reserved script = 4ALPHA ; ISO 15924
+ code region = 2ALPHA ; ISO 3166-1 code
+ / 3DIGIT ; UN M.49 code variant =
+ 5*8alphanum ; registered variants / (DIGIT
+ 3alphanum) extension = singleton 1*("-" (2*8alphanum))
+ ; Single alphanumerics ; "x" reserved for private use
+ singleton = DIGIT ; 0 - 9 / %x41-57
+ ; A - W / %x59-5A ; Y - Z / %x61-77
+ ; a - w / %x79-7A ; y - z it sounds right to
+ still allow Irregular i-xxx IANA and user codes too The
+ parser below doesn't try to cope with extension or
+ privateuse that could be added but that's not interoperable
+ anyway """
+ ret = libxml2mod.xmlCheckLanguageID(lang)
+ return ret
+
+def copyChar(len, out, val):
+ """append the char value in the array """
+ ret = libxml2mod.xmlCopyChar(len, out, val)
+ return ret
+
+def copyCharMultiByte(out, val):
+ """append the char value in the array """
+ ret = libxml2mod.xmlCopyCharMultiByte(out, val)
+ return ret
+
+def createEntityParserCtxt(URL, ID, base):
+ """Create a parser context for an external entity Automatic
+ support for ZLIB/Compress compressed document is provided
+ by default if found at compile-time. """
+ ret = libxml2mod.xmlCreateEntityParserCtxt(URL, ID, base)
+ if ret is None:raise parserError('xmlCreateEntityParserCtxt() failed')
+ return parserCtxt(_obj=ret)
+
+def createFileParserCtxt(filename):
+ """Create a parser context for a file content. Automatic
+ support for ZLIB/Compress compressed document is provided
+ by default if found at compile-time. """
+ ret = libxml2mod.xmlCreateFileParserCtxt(filename)
+ if ret is None:raise parserError('xmlCreateFileParserCtxt() failed')
+ return parserCtxt(_obj=ret)
+
+def createMemoryParserCtxt(buffer, size):
+ """Create a parser context for an XML in-memory document. """
+ ret = libxml2mod.xmlCreateMemoryParserCtxt(buffer, size)
+ if ret is None:raise parserError('xmlCreateMemoryParserCtxt() failed')
+ return parserCtxt(_obj=ret)
+
+def createURLParserCtxt(filename, options):
+ """Create a parser context for a file or URL content.
+ Automatic support for ZLIB/Compress compressed document is
+ provided by default if found at compile-time and for file
+ accesses """
+ ret = libxml2mod.xmlCreateURLParserCtxt(filename, options)
+ if ret is None:raise parserError('xmlCreateURLParserCtxt() failed')
+ return parserCtxt(_obj=ret)
+
+def htmlCreateFileParserCtxt(filename, encoding):
+ """Create a parser context for a file content. Automatic
+ support for ZLIB/Compress compressed document is provided
+ by default if found at compile-time. """
+ ret = libxml2mod.htmlCreateFileParserCtxt(filename, encoding)
+ if ret is None:raise parserError('htmlCreateFileParserCtxt() failed')
+ return parserCtxt(_obj=ret)
+
+def htmlInitAutoClose():
+ """Initialize the htmlStartCloseIndex for fast lookup of
+ closing tags names. This is not reentrant. Call
+ xmlInitParser() once before processing in case of use in
+ multithreaded programs. """
+ libxml2mod.htmlInitAutoClose()
+
+def isLetter(c):
+ """Check whether the character is allowed by the production
+ [84] Letter ::= BaseChar | Ideographic """
+ ret = libxml2mod.xmlIsLetter(c)
+ return ret
+
+def namePop(ctxt):
+ """Pops the top element name from the name stack """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ ret = libxml2mod.namePop(ctxt__o)
+ return ret
+
+def namePush(ctxt, value):
+ """Pushes a new element name on top of the name stack """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ ret = libxml2mod.namePush(ctxt__o, value)
+ return ret
+
+def nodePop(ctxt):
+ """Pops the top element node from the node stack """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ ret = libxml2mod.nodePop(ctxt__o)
+ if ret is None:raise treeError('nodePop() failed')
+ return xmlNode(_obj=ret)
+
+def nodePush(ctxt, value):
+ """Pushes a new element node on top of the node stack """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ if value is None: value__o = None
+ else: value__o = value._o
+ ret = libxml2mod.nodePush(ctxt__o, value__o)
+ return ret
+
+#
+# Functions from module python
+#
+
+def SAXParseFile(SAX, URI, recover):
+ """Interface to parse an XML file or resource pointed by an
+ URI to build an event flow to the SAX object """
+ libxml2mod.xmlSAXParseFile(SAX, URI, recover)
+
+def createInputBuffer(file, encoding):
+ """Create a libxml2 input buffer from a Python file """
+ ret = libxml2mod.xmlCreateInputBuffer(file, encoding)
+ if ret is None:raise treeError('xmlCreateInputBuffer() failed')
+ return inputBuffer(_obj=ret)
+
+def createOutputBuffer(file, encoding):
+ """Create a libxml2 output buffer from a Python file """
+ ret = libxml2mod.xmlCreateOutputBuffer(file, encoding)
+ if ret is None:raise treeError('xmlCreateOutputBuffer() failed')
+ return outputBuffer(_obj=ret)
+
+def createPushParser(SAX, chunk, size, URI):
+ """Create a progressive XML parser context to build either an
+ event flow if the SAX object is not None, or a DOM tree
+ otherwise. """
+ ret = libxml2mod.xmlCreatePushParser(SAX, chunk, size, URI)
+ if ret is None:raise parserError('xmlCreatePushParser() failed')
+ return parserCtxt(_obj=ret)
+
+def debugMemory(activate):
+ """Switch on the generation of line number for elements nodes.
+ Also returns the number of bytes allocated and not freed by
+ libxml2 since memory debugging was switched on. """
+ ret = libxml2mod.xmlDebugMemory(activate)
+ return ret
+
+def dumpMemory():
+ """dump the memory allocated in the file .memdump """
+ libxml2mod.xmlDumpMemory()
+
+def htmlCreatePushParser(SAX, chunk, size, URI):
+ """Create a progressive HTML parser context to build either an
+ event flow if the SAX object is not None, or a DOM tree
+ otherwise. """
+ ret = libxml2mod.htmlCreatePushParser(SAX, chunk, size, URI)
+ if ret is None:raise parserError('htmlCreatePushParser() failed')
+ return parserCtxt(_obj=ret)
+
+def htmlSAXParseFile(SAX, URI, encoding):
+ """Interface to parse an HTML file or resource pointed by an
+ URI to build an event flow to the SAX object """
+ libxml2mod.htmlSAXParseFile(SAX, URI, encoding)
+
+def memoryUsed():
+ """Returns the total amount of memory allocated by libxml2 """
+ ret = libxml2mod.xmlMemoryUsed()
+ return ret
+
+def newNode(name):
+ """Create a new Node """
+ ret = libxml2mod.xmlNewNode(name)
+ if ret is None:raise treeError('xmlNewNode() failed')
+ return xmlNode(_obj=ret)
+
+def pythonCleanupParser():
+ """Cleanup function for the XML library. It tries to reclaim
+ all parsing related global memory allocated for the library
+ processing. It doesn't deallocate any document related
+ memory. Calling this function should not prevent reusing
+ the library but one should call xmlCleanupParser() only
+ when the process has finished using the library or XML
+ document built with it. """
+ libxml2mod.xmlPythonCleanupParser()
+
+def setEntityLoader(resolver):
+ """Set the entity resolver as a python function """
+ ret = libxml2mod.xmlSetEntityLoader(resolver)
+ return ret
+
+#
+# Functions from module relaxng
+#
+
+def relaxNGCleanupTypes():
+ """Cleanup the default Schemas type library associated to
+ RelaxNG """
+ libxml2mod.xmlRelaxNGCleanupTypes()
+
+def relaxNGInitTypes():
+ """Initialize the default type libraries. """
+ ret = libxml2mod.xmlRelaxNGInitTypes()
+ return ret
+
+def relaxNGNewMemParserCtxt(buffer, size):
+ """Create an XML RelaxNGs parse context for that memory buffer
+ expected to contain an XML RelaxNGs file. """
+ ret = libxml2mod.xmlRelaxNGNewMemParserCtxt(buffer, size)
+ if ret is None:raise parserError('xmlRelaxNGNewMemParserCtxt() failed')
+ return relaxNgParserCtxt(_obj=ret)
+
+def relaxNGNewParserCtxt(URL):
+ """Create an XML RelaxNGs parse context for that file/resource
+ expected to contain an XML RelaxNGs file. """
+ ret = libxml2mod.xmlRelaxNGNewParserCtxt(URL)
+ if ret is None:raise parserError('xmlRelaxNGNewParserCtxt() failed')
+ return relaxNgParserCtxt(_obj=ret)
+
+#
+# Functions from module tree
+#
+
+def buildQName(ncname, prefix, memory, len):
+ """Builds the QName @prefix:@ncname in @memory if there is
+ enough space and prefix is not None nor empty, otherwise
+ allocate a new string. If prefix is None or empty it
+ returns ncname. """
+ ret = libxml2mod.xmlBuildQName(ncname, prefix, memory, len)
+ return ret
+
+def compressMode():
+ """get the default compression mode used, ZLIB based. """
+ ret = libxml2mod.xmlGetCompressMode()
+ return ret
+
+def isXHTML(systemID, publicID):
+ """Try to find if the document correspond to an XHTML DTD """
+ ret = libxml2mod.xmlIsXHTML(systemID, publicID)
+ return ret
+
+def newComment(content):
+ """Creation of a new node containing a comment. """
+ ret = libxml2mod.xmlNewComment(content)
+ if ret is None:raise treeError('xmlNewComment() failed')
+ return xmlNode(_obj=ret)
+
+def newDoc(version):
+ """Creates a new XML document """
+ ret = libxml2mod.xmlNewDoc(version)
+ if ret is None:raise treeError('xmlNewDoc() failed')
+ return xmlDoc(_obj=ret)
+
+def newPI(name, content):
+ """Creation of a processing instruction element. Use
+ xmlDocNewPI preferably to get string interning """
+ ret = libxml2mod.xmlNewPI(name, content)
+ if ret is None:raise treeError('xmlNewPI() failed')
+ return xmlNode(_obj=ret)
+
+def newText(content):
+ """Creation of a new text node. """
+ ret = libxml2mod.xmlNewText(content)
+ if ret is None:raise treeError('xmlNewText() failed')
+ return xmlNode(_obj=ret)
+
+def newTextLen(content, len):
+ """Creation of a new text node with an extra parameter for the
+ content's length """
+ ret = libxml2mod.xmlNewTextLen(content, len)
+ if ret is None:raise treeError('xmlNewTextLen() failed')
+ return xmlNode(_obj=ret)
+
+def setCompressMode(mode):
+ """set the default compression mode used, ZLIB based Correct
+ values: 0 (uncompressed) to 9 (max compression) """
+ libxml2mod.xmlSetCompressMode(mode)
+
+def validateNCName(value, space):
+ """Check that a value conforms to the lexical space of NCName """
+ ret = libxml2mod.xmlValidateNCName(value, space)
+ return ret
+
+def validateNMToken(value, space):
+ """Check that a value conforms to the lexical space of NMToken """
+ ret = libxml2mod.xmlValidateNMToken(value, space)
+ return ret
+
+def validateName(value, space):
+ """Check that a value conforms to the lexical space of Name """
+ ret = libxml2mod.xmlValidateName(value, space)
+ return ret
+
+def validateQName(value, space):
+ """Check that a value conforms to the lexical space of QName """
+ ret = libxml2mod.xmlValidateQName(value, space)
+ return ret
+
+#
+# Functions from module uri
+#
+
+def URIEscape(str):
+ """Escaping routine, does not do validity checks ! It will try
+ to escape the chars needing this, but this is heuristic
+ based it's impossible to be sure. """
+ ret = libxml2mod.xmlURIEscape(str)
+ return ret
+
+def URIEscapeStr(str, list):
+ """This routine escapes a string to hex, ignoring reserved
+ characters (a-z) and the characters in the exception list. """
+ ret = libxml2mod.xmlURIEscapeStr(str, list)
+ return ret
+
+def URIUnescapeString(str, len, target):
+ """Unescaping routine, but does not check that the string is
+ an URI. The output is a direct unsigned char translation of
+ %XX values (no encoding) Note that the length of the result
+ can only be smaller or same size as the input string. """
+ ret = libxml2mod.xmlURIUnescapeString(str, len, target)
+ return ret
+
+def buildRelativeURI(URI, base):
+ """Expresses the URI of the reference in terms relative to the
+ base. Some examples of this operation include: base =
+ "http://site1.com/docs/book1.html" URI input
+ URI returned docs/pic1.gif pic1.gif
+ docs/img/pic1.gif img/pic1.gif img/pic1.gif
+ ../img/pic1.gif http://site1.com/docs/pic1.gif pic1.gif
+ http://site2.com/docs/pic1.gif
+ http://site2.com/docs/pic1.gif base = "docs/book1.html"
+ URI input URI returned docs/pic1.gif
+ pic1.gif docs/img/pic1.gif img/pic1.gif
+ img/pic1.gif ../img/pic1.gif
+ http://site1.com/docs/pic1.gif
+ http://site1.com/docs/pic1.gif Note: if the URI reference
+ is really weird or complicated, it may be worthwhile to
+ first convert it into a "nice" one by calling xmlBuildURI
+ (using 'base') before calling this routine, since this
+ routine (for reasonable efficiency) assumes URI has already
+ been through some validation. """
+ ret = libxml2mod.xmlBuildRelativeURI(URI, base)
+ return ret
+
+def buildURI(URI, base):
+ """Computes he final URI of the reference done by checking
+ that the given URI is valid, and building the final URI
+ using the base URI. This is processed according to section
+ 5.2 of the RFC 2396 5.2. Resolving Relative References to
+ Absolute Form """
+ ret = libxml2mod.xmlBuildURI(URI, base)
+ return ret
+
+def canonicPath(path):
+ """Constructs a canonic path from the specified path. """
+ ret = libxml2mod.xmlCanonicPath(path)
+ return ret
+
+def createURI():
+ """Simply creates an empty xmlURI """
+ ret = libxml2mod.xmlCreateURI()
+ if ret is None:raise uriError('xmlCreateURI() failed')
+ return URI(_obj=ret)
+
+def normalizeURIPath(path):
+ """Applies the 5 normalization steps to a path string--that
+ is, RFC 2396 Section 5.2, steps 6.c through 6.g.
+ Normalization occurs directly on the string, no new
+ allocation is done """
+ ret = libxml2mod.xmlNormalizeURIPath(path)
+ return ret
+
+def parseURI(str):
+ """Parse an URI based on RFC 3986 URI-reference = [
+ absoluteURI | relativeURI ] [ "#" fragment ] """
+ ret = libxml2mod.xmlParseURI(str)
+ if ret is None:raise uriError('xmlParseURI() failed')
+ return URI(_obj=ret)
+
+def parseURIRaw(str, raw):
+ """Parse an URI but allows to keep intact the original
+ fragments. URI-reference = URI / relative-ref """
+ ret = libxml2mod.xmlParseURIRaw(str, raw)
+ if ret is None:raise uriError('xmlParseURIRaw() failed')
+ return URI(_obj=ret)
+
+def pathToURI(path):
+ """Constructs an URI expressing the existing path """
+ ret = libxml2mod.xmlPathToURI(path)
+ return ret
+
+#
+# Functions from module valid
+#
+
+def newValidCtxt():
+ """Allocate a validation context structure. """
+ ret = libxml2mod.xmlNewValidCtxt()
+ if ret is None:raise treeError('xmlNewValidCtxt() failed')
+ return ValidCtxt(_obj=ret)
+
+def validateNameValue(value):
+ """Validate that the given value match Name production """
+ ret = libxml2mod.xmlValidateNameValue(value)
+ return ret
+
+def validateNamesValue(value):
+ """Validate that the given value match Names production """
+ ret = libxml2mod.xmlValidateNamesValue(value)
+ return ret
+
+def validateNmtokenValue(value):
+ """Validate that the given value match Nmtoken production [
+ VC: Name Token ] """
+ ret = libxml2mod.xmlValidateNmtokenValue(value)
+ return ret
+
+def validateNmtokensValue(value):
+ """Validate that the given value match Nmtokens production [
+ VC: Name Token ] """
+ ret = libxml2mod.xmlValidateNmtokensValue(value)
+ return ret
+
+#
+# Functions from module xmlIO
+#
+
+def checkFilename(path):
+ """function checks to see if @path is a valid source (file,
+ socket...) for XML. if stat is not available on the target
+ machine, """
+ ret = libxml2mod.xmlCheckFilename(path)
+ return ret
+
+def cleanupInputCallbacks():
+ """clears the entire input callback table. this includes the
+ compiled-in I/O. """
+ libxml2mod.xmlCleanupInputCallbacks()
+
+def cleanupOutputCallbacks():
+ """clears the entire output callback table. this includes the
+ compiled-in I/O callbacks. """
+ libxml2mod.xmlCleanupOutputCallbacks()
+
+def fileMatch(filename):
+ """input from FILE * """
+ ret = libxml2mod.xmlFileMatch(filename)
+ return ret
+
+def iOFTPMatch(filename):
+ """check if the URI matches an FTP one """
+ ret = libxml2mod.xmlIOFTPMatch(filename)
+ return ret
+
+def iOHTTPMatch(filename):
+ """check if the URI matches an HTTP one """
+ ret = libxml2mod.xmlIOHTTPMatch(filename)
+ return ret
+
+def normalizeWindowsPath(path):
+ """This function is obsolete. Please see xmlURIFromPath in
+ uri.c for a better solution. """
+ ret = libxml2mod.xmlNormalizeWindowsPath(path)
+ return ret
+
+def parserGetDirectory(filename):
+ """lookup the directory for that file """
+ ret = libxml2mod.xmlParserGetDirectory(filename)
+ return ret
+
+def registerDefaultInputCallbacks():
+ """Registers the default compiled-in I/O handlers. """
+ libxml2mod.xmlRegisterDefaultInputCallbacks()
+
+def registerDefaultOutputCallbacks():
+ """Registers the default compiled-in I/O handlers. """
+ libxml2mod.xmlRegisterDefaultOutputCallbacks()
+
+def registerHTTPPostCallbacks():
+ """By default, libxml submits HTTP output requests using the
+ "PUT" method. Calling this method changes the HTTP output
+ method to use the "POST" method instead. """
+ libxml2mod.xmlRegisterHTTPPostCallbacks()
+
+#
+# Functions from module xmlerror
+#
+
+def lastError():
+ """Get the last global error registered. This is per thread if
+ compiled with thread support. """
+ ret = libxml2mod.xmlGetLastError()
+ if ret is None:raise treeError('xmlGetLastError() failed')
+ return Error(_obj=ret)
+
+def resetLastError():
+ """Cleanup the last global error registered. For parsing error
+ this does not change the well-formedness result. """
+ libxml2mod.xmlResetLastError()
+
+#
+# Functions from module xmlreader
+#
+
+def newTextReaderFilename(URI):
+ """Create an xmlTextReader structure fed with the resource at
+ @URI """
+ ret = libxml2mod.xmlNewTextReaderFilename(URI)
+ if ret is None:raise treeError('xmlNewTextReaderFilename() failed')
+ return xmlTextReader(_obj=ret)
+
+def readerForDoc(cur, URL, encoding, options):
+ """Create an xmltextReader for an XML in-memory document. The
+ parsing flags @options are a combination of xmlParserOption. """
+ ret = libxml2mod.xmlReaderForDoc(cur, URL, encoding, options)
+ if ret is None:raise treeError('xmlReaderForDoc() failed')
+ return xmlTextReader(_obj=ret)
+
+def readerForFd(fd, URL, encoding, options):
+ """Create an xmltextReader for an XML from a file descriptor.
+ The parsing flags @options are a combination of
+ xmlParserOption. NOTE that the file descriptor will not be
+ closed when the reader is closed or reset. """
+ ret = libxml2mod.xmlReaderForFd(fd, URL, encoding, options)
+ if ret is None:raise treeError('xmlReaderForFd() failed')
+ return xmlTextReader(_obj=ret)
+
+def readerForFile(filename, encoding, options):
+ """parse an XML file from the filesystem or the network. The
+ parsing flags @options are a combination of xmlParserOption. """
+ ret = libxml2mod.xmlReaderForFile(filename, encoding, options)
+ if ret is None:raise treeError('xmlReaderForFile() failed')
+ return xmlTextReader(_obj=ret)
+
+def readerForMemory(buffer, size, URL, encoding, options):
+ """Create an xmltextReader for an XML in-memory document. The
+ parsing flags @options are a combination of xmlParserOption. """
+ ret = libxml2mod.xmlReaderForMemory(buffer, size, URL, encoding, options)
+ if ret is None:raise treeError('xmlReaderForMemory() failed')
+ return xmlTextReader(_obj=ret)
+
+#
+# Functions from module xmlregexp
+#
+
+def regexpCompile(regexp):
+ """Parses a regular expression conforming to XML Schemas Part
+ 2 Datatype Appendix F and builds an automata suitable for
+ testing strings against that regular expression """
+ ret = libxml2mod.xmlRegexpCompile(regexp)
+ if ret is None:raise treeError('xmlRegexpCompile() failed')
+ return xmlReg(_obj=ret)
+
+#
+# Functions from module xmlschemas
+#
+
+def schemaNewMemParserCtxt(buffer, size):
+ """Create an XML Schemas parse context for that memory buffer
+ expected to contain an XML Schemas file. """
+ ret = libxml2mod.xmlSchemaNewMemParserCtxt(buffer, size)
+ if ret is None:raise parserError('xmlSchemaNewMemParserCtxt() failed')
+ return SchemaParserCtxt(_obj=ret)
+
+def schemaNewParserCtxt(URL):
+ """Create an XML Schemas parse context for that file/resource
+ expected to contain an XML Schemas file. """
+ ret = libxml2mod.xmlSchemaNewParserCtxt(URL)
+ if ret is None:raise parserError('xmlSchemaNewParserCtxt() failed')
+ return SchemaParserCtxt(_obj=ret)
+
+#
+# Functions from module xmlschemastypes
+#
+
+def schemaCleanupTypes():
+ """Cleanup the default XML Schemas type library """
+ libxml2mod.xmlSchemaCleanupTypes()
+
+def schemaCollapseString(value):
+ """Removes and normalize white spaces in the string """
+ ret = libxml2mod.xmlSchemaCollapseString(value)
+ return ret
+
+def schemaInitTypes():
+ """Initialize the default XML Schemas type library """
+ libxml2mod.xmlSchemaInitTypes()
+
+def schemaWhiteSpaceReplace(value):
+ """Replaces 0xd, 0x9 and 0xa with a space. """
+ ret = libxml2mod.xmlSchemaWhiteSpaceReplace(value)
+ return ret
+
+#
+# Functions from module xmlstring
+#
+
+def UTF8Charcmp(utf1, utf2):
+ """compares the two UCS4 values """
+ ret = libxml2mod.xmlUTF8Charcmp(utf1, utf2)
+ return ret
+
+def UTF8Size(utf):
+ """calculates the internal size of a UTF8 character """
+ ret = libxml2mod.xmlUTF8Size(utf)
+ return ret
+
+def UTF8Strlen(utf):
+ """compute the length of an UTF8 string, it doesn't do a full
+ UTF8 checking of the content of the string. """
+ ret = libxml2mod.xmlUTF8Strlen(utf)
+ return ret
+
+def UTF8Strloc(utf, utfchar):
+ """a function to provide the relative location of a UTF8 char """
+ ret = libxml2mod.xmlUTF8Strloc(utf, utfchar)
+ return ret
+
+def UTF8Strndup(utf, len):
+ """a strndup for array of UTF8's """
+ ret = libxml2mod.xmlUTF8Strndup(utf, len)
+ return ret
+
+def UTF8Strpos(utf, pos):
+ """a function to provide the equivalent of fetching a
+ character from a string array """
+ ret = libxml2mod.xmlUTF8Strpos(utf, pos)
+ return ret
+
+def UTF8Strsize(utf, len):
+ """storage size of an UTF8 string the behaviour is not
+ guaranteed if the input string is not UTF-8 """
+ ret = libxml2mod.xmlUTF8Strsize(utf, len)
+ return ret
+
+def UTF8Strsub(utf, start, len):
+ """Create a substring from a given UTF-8 string Note:
+ positions are given in units of UTF-8 chars """
+ ret = libxml2mod.xmlUTF8Strsub(utf, start, len)
+ return ret
+
+def checkUTF8(utf):
+ """Checks @utf for being valid UTF-8. @utf is assumed to be
+ null-terminated. This function is not super-strict, as it
+ will allow longer UTF-8 sequences than necessary. Note that
+ Java is capable of producing these sequences if provoked.
+ Also note, this routine checks for the 4-byte maximum size,
+ but does not check for 0x10ffff maximum value. """
+ ret = libxml2mod.xmlCheckUTF8(utf)
+ return ret
+
+#
+# Functions from module xmlunicode
+#
+
+def uCSIsAegeanNumbers(code):
+ """Check whether the character is part of AegeanNumbers UCS
+ Block """
+ ret = libxml2mod.xmlUCSIsAegeanNumbers(code)
+ return ret
+
+def uCSIsAlphabeticPresentationForms(code):
+ """Check whether the character is part of
+ AlphabeticPresentationForms UCS Block """
+ ret = libxml2mod.xmlUCSIsAlphabeticPresentationForms(code)
+ return ret
+
+def uCSIsArabic(code):
+ """Check whether the character is part of Arabic UCS Block """
+ ret = libxml2mod.xmlUCSIsArabic(code)
+ return ret
+
+def uCSIsArabicPresentationFormsA(code):
+ """Check whether the character is part of
+ ArabicPresentationForms-A UCS Block """
+ ret = libxml2mod.xmlUCSIsArabicPresentationFormsA(code)
+ return ret
+
+def uCSIsArabicPresentationFormsB(code):
+ """Check whether the character is part of
+ ArabicPresentationForms-B UCS Block """
+ ret = libxml2mod.xmlUCSIsArabicPresentationFormsB(code)
+ return ret
+
+def uCSIsArmenian(code):
+ """Check whether the character is part of Armenian UCS Block """
+ ret = libxml2mod.xmlUCSIsArmenian(code)
+ return ret
+
+def uCSIsArrows(code):
+ """Check whether the character is part of Arrows UCS Block """
+ ret = libxml2mod.xmlUCSIsArrows(code)
+ return ret
+
+def uCSIsBasicLatin(code):
+ """Check whether the character is part of BasicLatin UCS Block """
+ ret = libxml2mod.xmlUCSIsBasicLatin(code)
+ return ret
+
+def uCSIsBengali(code):
+ """Check whether the character is part of Bengali UCS Block """
+ ret = libxml2mod.xmlUCSIsBengali(code)
+ return ret
+
+def uCSIsBlock(code, block):
+ """Check whether the character is part of the UCS Block """
+ ret = libxml2mod.xmlUCSIsBlock(code, block)
+ return ret
+
+def uCSIsBlockElements(code):
+ """Check whether the character is part of BlockElements UCS
+ Block """
+ ret = libxml2mod.xmlUCSIsBlockElements(code)
+ return ret
+
+def uCSIsBopomofo(code):
+ """Check whether the character is part of Bopomofo UCS Block """
+ ret = libxml2mod.xmlUCSIsBopomofo(code)
+ return ret
+
+def uCSIsBopomofoExtended(code):
+ """Check whether the character is part of BopomofoExtended UCS
+ Block """
+ ret = libxml2mod.xmlUCSIsBopomofoExtended(code)
+ return ret
+
+def uCSIsBoxDrawing(code):
+ """Check whether the character is part of BoxDrawing UCS Block """
+ ret = libxml2mod.xmlUCSIsBoxDrawing(code)
+ return ret
+
+def uCSIsBraillePatterns(code):
+ """Check whether the character is part of BraillePatterns UCS
+ Block """
+ ret = libxml2mod.xmlUCSIsBraillePatterns(code)
+ return ret
+
+def uCSIsBuhid(code):
+ """Check whether the character is part of Buhid UCS Block """
+ ret = libxml2mod.xmlUCSIsBuhid(code)
+ return ret
+
+def uCSIsByzantineMusicalSymbols(code):
+ """Check whether the character is part of
+ ByzantineMusicalSymbols UCS Block """
+ ret = libxml2mod.xmlUCSIsByzantineMusicalSymbols(code)
+ return ret
+
+def uCSIsCJKCompatibility(code):
+ """Check whether the character is part of CJKCompatibility UCS
+ Block """
+ ret = libxml2mod.xmlUCSIsCJKCompatibility(code)
+ return ret
+
+def uCSIsCJKCompatibilityForms(code):
+ """Check whether the character is part of
+ CJKCompatibilityForms UCS Block """
+ ret = libxml2mod.xmlUCSIsCJKCompatibilityForms(code)
+ return ret
+
+def uCSIsCJKCompatibilityIdeographs(code):
+ """Check whether the character is part of
+ CJKCompatibilityIdeographs UCS Block """
+ ret = libxml2mod.xmlUCSIsCJKCompatibilityIdeographs(code)
+ return ret
+
+def uCSIsCJKCompatibilityIdeographsSupplement(code):
+ """Check whether the character is part of
+ CJKCompatibilityIdeographsSupplement UCS Block """
+ ret = libxml2mod.xmlUCSIsCJKCompatibilityIdeographsSupplement(code)
+ return ret
+
+def uCSIsCJKRadicalsSupplement(code):
+ """Check whether the character is part of
+ CJKRadicalsSupplement UCS Block """
+ ret = libxml2mod.xmlUCSIsCJKRadicalsSupplement(code)
+ return ret
+
+def uCSIsCJKSymbolsandPunctuation(code):
+ """Check whether the character is part of
+ CJKSymbolsandPunctuation UCS Block """
+ ret = libxml2mod.xmlUCSIsCJKSymbolsandPunctuation(code)
+ return ret
+
+def uCSIsCJKUnifiedIdeographs(code):
+ """Check whether the character is part of CJKUnifiedIdeographs
+ UCS Block """
+ ret = libxml2mod.xmlUCSIsCJKUnifiedIdeographs(code)
+ return ret
+
+def uCSIsCJKUnifiedIdeographsExtensionA(code):
+ """Check whether the character is part of
+ CJKUnifiedIdeographsExtensionA UCS Block """
+ ret = libxml2mod.xmlUCSIsCJKUnifiedIdeographsExtensionA(code)
+ return ret
+
+def uCSIsCJKUnifiedIdeographsExtensionB(code):
+ """Check whether the character is part of
+ CJKUnifiedIdeographsExtensionB UCS Block """
+ ret = libxml2mod.xmlUCSIsCJKUnifiedIdeographsExtensionB(code)
+ return ret
+
+def uCSIsCat(code, cat):
+ """Check whether the character is part of the UCS Category """
+ ret = libxml2mod.xmlUCSIsCat(code, cat)
+ return ret
+
+def uCSIsCatC(code):
+ """Check whether the character is part of C UCS Category """
+ ret = libxml2mod.xmlUCSIsCatC(code)
+ return ret
+
+def uCSIsCatCc(code):
+ """Check whether the character is part of Cc UCS Category """
+ ret = libxml2mod.xmlUCSIsCatCc(code)
+ return ret
+
+def uCSIsCatCf(code):
+ """Check whether the character is part of Cf UCS Category """
+ ret = libxml2mod.xmlUCSIsCatCf(code)
+ return ret
+
+def uCSIsCatCo(code):
+ """Check whether the character is part of Co UCS Category """
+ ret = libxml2mod.xmlUCSIsCatCo(code)
+ return ret
+
+def uCSIsCatCs(code):
+ """Check whether the character is part of Cs UCS Category """
+ ret = libxml2mod.xmlUCSIsCatCs(code)
+ return ret
+
+def uCSIsCatL(code):
+ """Check whether the character is part of L UCS Category """
+ ret = libxml2mod.xmlUCSIsCatL(code)
+ return ret
+
+def uCSIsCatLl(code):
+ """Check whether the character is part of Ll UCS Category """
+ ret = libxml2mod.xmlUCSIsCatLl(code)
+ return ret
+
+def uCSIsCatLm(code):
+ """Check whether the character is part of Lm UCS Category """
+ ret = libxml2mod.xmlUCSIsCatLm(code)
+ return ret
+
+def uCSIsCatLo(code):
+ """Check whether the character is part of Lo UCS Category """
+ ret = libxml2mod.xmlUCSIsCatLo(code)
+ return ret
+
+def uCSIsCatLt(code):
+ """Check whether the character is part of Lt UCS Category """
+ ret = libxml2mod.xmlUCSIsCatLt(code)
+ return ret
+
+def uCSIsCatLu(code):
+ """Check whether the character is part of Lu UCS Category """
+ ret = libxml2mod.xmlUCSIsCatLu(code)
+ return ret
+
+def uCSIsCatM(code):
+ """Check whether the character is part of M UCS Category """
+ ret = libxml2mod.xmlUCSIsCatM(code)
+ return ret
+
+def uCSIsCatMc(code):
+ """Check whether the character is part of Mc UCS Category """
+ ret = libxml2mod.xmlUCSIsCatMc(code)
+ return ret
+
+def uCSIsCatMe(code):
+ """Check whether the character is part of Me UCS Category """
+ ret = libxml2mod.xmlUCSIsCatMe(code)
+ return ret
+
+def uCSIsCatMn(code):
+ """Check whether the character is part of Mn UCS Category """
+ ret = libxml2mod.xmlUCSIsCatMn(code)
+ return ret
+
+def uCSIsCatN(code):
+ """Check whether the character is part of N UCS Category """
+ ret = libxml2mod.xmlUCSIsCatN(code)
+ return ret
+
+def uCSIsCatNd(code):
+ """Check whether the character is part of Nd UCS Category """
+ ret = libxml2mod.xmlUCSIsCatNd(code)
+ return ret
+
+def uCSIsCatNl(code):
+ """Check whether the character is part of Nl UCS Category """
+ ret = libxml2mod.xmlUCSIsCatNl(code)
+ return ret
+
+def uCSIsCatNo(code):
+ """Check whether the character is part of No UCS Category """
+ ret = libxml2mod.xmlUCSIsCatNo(code)
+ return ret
+
+def uCSIsCatP(code):
+ """Check whether the character is part of P UCS Category """
+ ret = libxml2mod.xmlUCSIsCatP(code)
+ return ret
+
+def uCSIsCatPc(code):
+ """Check whether the character is part of Pc UCS Category """
+ ret = libxml2mod.xmlUCSIsCatPc(code)
+ return ret
+
+def uCSIsCatPd(code):
+ """Check whether the character is part of Pd UCS Category """
+ ret = libxml2mod.xmlUCSIsCatPd(code)
+ return ret
+
+def uCSIsCatPe(code):
+ """Check whether the character is part of Pe UCS Category """
+ ret = libxml2mod.xmlUCSIsCatPe(code)
+ return ret
+
+def uCSIsCatPf(code):
+ """Check whether the character is part of Pf UCS Category """
+ ret = libxml2mod.xmlUCSIsCatPf(code)
+ return ret
+
+def uCSIsCatPi(code):
+ """Check whether the character is part of Pi UCS Category """
+ ret = libxml2mod.xmlUCSIsCatPi(code)
+ return ret
+
+def uCSIsCatPo(code):
+ """Check whether the character is part of Po UCS Category """
+ ret = libxml2mod.xmlUCSIsCatPo(code)
+ return ret
+
+def uCSIsCatPs(code):
+ """Check whether the character is part of Ps UCS Category """
+ ret = libxml2mod.xmlUCSIsCatPs(code)
+ return ret
+
+def uCSIsCatS(code):
+ """Check whether the character is part of S UCS Category """
+ ret = libxml2mod.xmlUCSIsCatS(code)
+ return ret
+
+def uCSIsCatSc(code):
+ """Check whether the character is part of Sc UCS Category """
+ ret = libxml2mod.xmlUCSIsCatSc(code)
+ return ret
+
+def uCSIsCatSk(code):
+ """Check whether the character is part of Sk UCS Category """
+ ret = libxml2mod.xmlUCSIsCatSk(code)
+ return ret
+
+def uCSIsCatSm(code):
+ """Check whether the character is part of Sm UCS Category """
+ ret = libxml2mod.xmlUCSIsCatSm(code)
+ return ret
+
+def uCSIsCatSo(code):
+ """Check whether the character is part of So UCS Category """
+ ret = libxml2mod.xmlUCSIsCatSo(code)
+ return ret
+
+def uCSIsCatZ(code):
+ """Check whether the character is part of Z UCS Category """
+ ret = libxml2mod.xmlUCSIsCatZ(code)
+ return ret
+
+def uCSIsCatZl(code):
+ """Check whether the character is part of Zl UCS Category """
+ ret = libxml2mod.xmlUCSIsCatZl(code)
+ return ret
+
+def uCSIsCatZp(code):
+ """Check whether the character is part of Zp UCS Category """
+ ret = libxml2mod.xmlUCSIsCatZp(code)
+ return ret
+
+def uCSIsCatZs(code):
+ """Check whether the character is part of Zs UCS Category """
+ ret = libxml2mod.xmlUCSIsCatZs(code)
+ return ret
+
+def uCSIsCherokee(code):
+ """Check whether the character is part of Cherokee UCS Block """
+ ret = libxml2mod.xmlUCSIsCherokee(code)
+ return ret
+
+def uCSIsCombiningDiacriticalMarks(code):
+ """Check whether the character is part of
+ CombiningDiacriticalMarks UCS Block """
+ ret = libxml2mod.xmlUCSIsCombiningDiacriticalMarks(code)
+ return ret
+
+def uCSIsCombiningDiacriticalMarksforSymbols(code):
+ """Check whether the character is part of
+ CombiningDiacriticalMarksforSymbols UCS Block """
+ ret = libxml2mod.xmlUCSIsCombiningDiacriticalMarksforSymbols(code)
+ return ret
+
+def uCSIsCombiningHalfMarks(code):
+ """Check whether the character is part of CombiningHalfMarks
+ UCS Block """
+ ret = libxml2mod.xmlUCSIsCombiningHalfMarks(code)
+ return ret
+
+def uCSIsCombiningMarksforSymbols(code):
+ """Check whether the character is part of
+ CombiningMarksforSymbols UCS Block """
+ ret = libxml2mod.xmlUCSIsCombiningMarksforSymbols(code)
+ return ret
+
+def uCSIsControlPictures(code):
+ """Check whether the character is part of ControlPictures UCS
+ Block """
+ ret = libxml2mod.xmlUCSIsControlPictures(code)
+ return ret
+
+def uCSIsCurrencySymbols(code):
+ """Check whether the character is part of CurrencySymbols UCS
+ Block """
+ ret = libxml2mod.xmlUCSIsCurrencySymbols(code)
+ return ret
+
+def uCSIsCypriotSyllabary(code):
+ """Check whether the character is part of CypriotSyllabary UCS
+ Block """
+ ret = libxml2mod.xmlUCSIsCypriotSyllabary(code)
+ return ret
+
+def uCSIsCyrillic(code):
+ """Check whether the character is part of Cyrillic UCS Block """
+ ret = libxml2mod.xmlUCSIsCyrillic(code)
+ return ret
+
+def uCSIsCyrillicSupplement(code):
+ """Check whether the character is part of CyrillicSupplement
+ UCS Block """
+ ret = libxml2mod.xmlUCSIsCyrillicSupplement(code)
+ return ret
+
+def uCSIsDeseret(code):
+ """Check whether the character is part of Deseret UCS Block """
+ ret = libxml2mod.xmlUCSIsDeseret(code)
+ return ret
+
+def uCSIsDevanagari(code):
+ """Check whether the character is part of Devanagari UCS Block """
+ ret = libxml2mod.xmlUCSIsDevanagari(code)
+ return ret
+
+def uCSIsDingbats(code):
+ """Check whether the character is part of Dingbats UCS Block """
+ ret = libxml2mod.xmlUCSIsDingbats(code)
+ return ret
+
+def uCSIsEnclosedAlphanumerics(code):
+ """Check whether the character is part of
+ EnclosedAlphanumerics UCS Block """
+ ret = libxml2mod.xmlUCSIsEnclosedAlphanumerics(code)
+ return ret
+
+def uCSIsEnclosedCJKLettersandMonths(code):
+ """Check whether the character is part of
+ EnclosedCJKLettersandMonths UCS Block """
+ ret = libxml2mod.xmlUCSIsEnclosedCJKLettersandMonths(code)
+ return ret
+
+def uCSIsEthiopic(code):
+ """Check whether the character is part of Ethiopic UCS Block """
+ ret = libxml2mod.xmlUCSIsEthiopic(code)
+ return ret
+
+def uCSIsGeneralPunctuation(code):
+ """Check whether the character is part of GeneralPunctuation
+ UCS Block """
+ ret = libxml2mod.xmlUCSIsGeneralPunctuation(code)
+ return ret
+
+def uCSIsGeometricShapes(code):
+ """Check whether the character is part of GeometricShapes UCS
+ Block """
+ ret = libxml2mod.xmlUCSIsGeometricShapes(code)
+ return ret
+
+def uCSIsGeorgian(code):
+ """Check whether the character is part of Georgian UCS Block """
+ ret = libxml2mod.xmlUCSIsGeorgian(code)
+ return ret
+
+def uCSIsGothic(code):
+ """Check whether the character is part of Gothic UCS Block """
+ ret = libxml2mod.xmlUCSIsGothic(code)
+ return ret
+
+def uCSIsGreek(code):
+ """Check whether the character is part of Greek UCS Block """
+ ret = libxml2mod.xmlUCSIsGreek(code)
+ return ret
+
+def uCSIsGreekExtended(code):
+ """Check whether the character is part of GreekExtended UCS
+ Block """
+ ret = libxml2mod.xmlUCSIsGreekExtended(code)
+ return ret
+
+def uCSIsGreekandCoptic(code):
+ """Check whether the character is part of GreekandCoptic UCS
+ Block """
+ ret = libxml2mod.xmlUCSIsGreekandCoptic(code)
+ return ret
+
+def uCSIsGujarati(code):
+ """Check whether the character is part of Gujarati UCS Block """
+ ret = libxml2mod.xmlUCSIsGujarati(code)
+ return ret
+
+def uCSIsGurmukhi(code):
+ """Check whether the character is part of Gurmukhi UCS Block """
+ ret = libxml2mod.xmlUCSIsGurmukhi(code)
+ return ret
+
+def uCSIsHalfwidthandFullwidthForms(code):
+ """Check whether the character is part of
+ HalfwidthandFullwidthForms UCS Block """
+ ret = libxml2mod.xmlUCSIsHalfwidthandFullwidthForms(code)
+ return ret
+
+def uCSIsHangulCompatibilityJamo(code):
+ """Check whether the character is part of
+ HangulCompatibilityJamo UCS Block """
+ ret = libxml2mod.xmlUCSIsHangulCompatibilityJamo(code)
+ return ret
+
+def uCSIsHangulJamo(code):
+ """Check whether the character is part of HangulJamo UCS Block """
+ ret = libxml2mod.xmlUCSIsHangulJamo(code)
+ return ret
+
+def uCSIsHangulSyllables(code):
+ """Check whether the character is part of HangulSyllables UCS
+ Block """
+ ret = libxml2mod.xmlUCSIsHangulSyllables(code)
+ return ret
+
+def uCSIsHanunoo(code):
+ """Check whether the character is part of Hanunoo UCS Block """
+ ret = libxml2mod.xmlUCSIsHanunoo(code)
+ return ret
+
+def uCSIsHebrew(code):
+ """Check whether the character is part of Hebrew UCS Block """
+ ret = libxml2mod.xmlUCSIsHebrew(code)
+ return ret
+
+def uCSIsHighPrivateUseSurrogates(code):
+ """Check whether the character is part of
+ HighPrivateUseSurrogates UCS Block """
+ ret = libxml2mod.xmlUCSIsHighPrivateUseSurrogates(code)
+ return ret
+
+def uCSIsHighSurrogates(code):
+ """Check whether the character is part of HighSurrogates UCS
+ Block """
+ ret = libxml2mod.xmlUCSIsHighSurrogates(code)
+ return ret
+
+def uCSIsHiragana(code):
+ """Check whether the character is part of Hiragana UCS Block """
+ ret = libxml2mod.xmlUCSIsHiragana(code)
+ return ret
+
+def uCSIsIPAExtensions(code):
+ """Check whether the character is part of IPAExtensions UCS
+ Block """
+ ret = libxml2mod.xmlUCSIsIPAExtensions(code)
+ return ret
+
+def uCSIsIdeographicDescriptionCharacters(code):
+ """Check whether the character is part of
+ IdeographicDescriptionCharacters UCS Block """
+ ret = libxml2mod.xmlUCSIsIdeographicDescriptionCharacters(code)
+ return ret
+
+def uCSIsKanbun(code):
+ """Check whether the character is part of Kanbun UCS Block """
+ ret = libxml2mod.xmlUCSIsKanbun(code)
+ return ret
+
+def uCSIsKangxiRadicals(code):
+ """Check whether the character is part of KangxiRadicals UCS
+ Block """
+ ret = libxml2mod.xmlUCSIsKangxiRadicals(code)
+ return ret
+
+def uCSIsKannada(code):
+ """Check whether the character is part of Kannada UCS Block """
+ ret = libxml2mod.xmlUCSIsKannada(code)
+ return ret
+
+def uCSIsKatakana(code):
+ """Check whether the character is part of Katakana UCS Block """
+ ret = libxml2mod.xmlUCSIsKatakana(code)
+ return ret
+
+def uCSIsKatakanaPhoneticExtensions(code):
+ """Check whether the character is part of
+ KatakanaPhoneticExtensions UCS Block """
+ ret = libxml2mod.xmlUCSIsKatakanaPhoneticExtensions(code)
+ return ret
+
+def uCSIsKhmer(code):
+ """Check whether the character is part of Khmer UCS Block """
+ ret = libxml2mod.xmlUCSIsKhmer(code)
+ return ret
+
+def uCSIsKhmerSymbols(code):
+ """Check whether the character is part of KhmerSymbols UCS
+ Block """
+ ret = libxml2mod.xmlUCSIsKhmerSymbols(code)
+ return ret
+
+def uCSIsLao(code):
+ """Check whether the character is part of Lao UCS Block """
+ ret = libxml2mod.xmlUCSIsLao(code)
+ return ret
+
+def uCSIsLatin1Supplement(code):
+ """Check whether the character is part of Latin-1Supplement
+ UCS Block """
+ ret = libxml2mod.xmlUCSIsLatin1Supplement(code)
+ return ret
+
+def uCSIsLatinExtendedA(code):
+ """Check whether the character is part of LatinExtended-A UCS
+ Block """
+ ret = libxml2mod.xmlUCSIsLatinExtendedA(code)
+ return ret
+
+def uCSIsLatinExtendedAdditional(code):
+ """Check whether the character is part of
+ LatinExtendedAdditional UCS Block """
+ ret = libxml2mod.xmlUCSIsLatinExtendedAdditional(code)
+ return ret
+
+def uCSIsLatinExtendedB(code):
+ """Check whether the character is part of LatinExtended-B UCS
+ Block """
+ ret = libxml2mod.xmlUCSIsLatinExtendedB(code)
+ return ret
+
+def uCSIsLetterlikeSymbols(code):
+ """Check whether the character is part of LetterlikeSymbols
+ UCS Block """
+ ret = libxml2mod.xmlUCSIsLetterlikeSymbols(code)
+ return ret
+
+def uCSIsLimbu(code):
+ """Check whether the character is part of Limbu UCS Block """
+ ret = libxml2mod.xmlUCSIsLimbu(code)
+ return ret
+
+def uCSIsLinearBIdeograms(code):
+ """Check whether the character is part of LinearBIdeograms UCS
+ Block """
+ ret = libxml2mod.xmlUCSIsLinearBIdeograms(code)
+ return ret
+
+def uCSIsLinearBSyllabary(code):
+ """Check whether the character is part of LinearBSyllabary UCS
+ Block """
+ ret = libxml2mod.xmlUCSIsLinearBSyllabary(code)
+ return ret
+
+def uCSIsLowSurrogates(code):
+ """Check whether the character is part of LowSurrogates UCS
+ Block """
+ ret = libxml2mod.xmlUCSIsLowSurrogates(code)
+ return ret
+
+def uCSIsMalayalam(code):
+ """Check whether the character is part of Malayalam UCS Block """
+ ret = libxml2mod.xmlUCSIsMalayalam(code)
+ return ret
+
+def uCSIsMathematicalAlphanumericSymbols(code):
+ """Check whether the character is part of
+ MathematicalAlphanumericSymbols UCS Block """
+ ret = libxml2mod.xmlUCSIsMathematicalAlphanumericSymbols(code)
+ return ret
+
+def uCSIsMathematicalOperators(code):
+ """Check whether the character is part of
+ MathematicalOperators UCS Block """
+ ret = libxml2mod.xmlUCSIsMathematicalOperators(code)
+ return ret
+
+def uCSIsMiscellaneousMathematicalSymbolsA(code):
+ """Check whether the character is part of
+ MiscellaneousMathematicalSymbols-A UCS Block """
+ ret = libxml2mod.xmlUCSIsMiscellaneousMathematicalSymbolsA(code)
+ return ret
+
+def uCSIsMiscellaneousMathematicalSymbolsB(code):
+ """Check whether the character is part of
+ MiscellaneousMathematicalSymbols-B UCS Block """
+ ret = libxml2mod.xmlUCSIsMiscellaneousMathematicalSymbolsB(code)
+ return ret
+
+def uCSIsMiscellaneousSymbols(code):
+ """Check whether the character is part of MiscellaneousSymbols
+ UCS Block """
+ ret = libxml2mod.xmlUCSIsMiscellaneousSymbols(code)
+ return ret
+
+def uCSIsMiscellaneousSymbolsandArrows(code):
+ """Check whether the character is part of
+ MiscellaneousSymbolsandArrows UCS Block """
+ ret = libxml2mod.xmlUCSIsMiscellaneousSymbolsandArrows(code)
+ return ret
+
+def uCSIsMiscellaneousTechnical(code):
+ """Check whether the character is part of
+ MiscellaneousTechnical UCS Block """
+ ret = libxml2mod.xmlUCSIsMiscellaneousTechnical(code)
+ return ret
+
+def uCSIsMongolian(code):
+ """Check whether the character is part of Mongolian UCS Block """
+ ret = libxml2mod.xmlUCSIsMongolian(code)
+ return ret
+
+def uCSIsMusicalSymbols(code):
+ """Check whether the character is part of MusicalSymbols UCS
+ Block """
+ ret = libxml2mod.xmlUCSIsMusicalSymbols(code)
+ return ret
+
+def uCSIsMyanmar(code):
+ """Check whether the character is part of Myanmar UCS Block """
+ ret = libxml2mod.xmlUCSIsMyanmar(code)
+ return ret
+
+def uCSIsNumberForms(code):
+ """Check whether the character is part of NumberForms UCS Block """
+ ret = libxml2mod.xmlUCSIsNumberForms(code)
+ return ret
+
+def uCSIsOgham(code):
+ """Check whether the character is part of Ogham UCS Block """
+ ret = libxml2mod.xmlUCSIsOgham(code)
+ return ret
+
+def uCSIsOldItalic(code):
+ """Check whether the character is part of OldItalic UCS Block """
+ ret = libxml2mod.xmlUCSIsOldItalic(code)
+ return ret
+
+def uCSIsOpticalCharacterRecognition(code):
+ """Check whether the character is part of
+ OpticalCharacterRecognition UCS Block """
+ ret = libxml2mod.xmlUCSIsOpticalCharacterRecognition(code)
+ return ret
+
+def uCSIsOriya(code):
+ """Check whether the character is part of Oriya UCS Block """
+ ret = libxml2mod.xmlUCSIsOriya(code)
+ return ret
+
+def uCSIsOsmanya(code):
+ """Check whether the character is part of Osmanya UCS Block """
+ ret = libxml2mod.xmlUCSIsOsmanya(code)
+ return ret
+
+def uCSIsPhoneticExtensions(code):
+ """Check whether the character is part of PhoneticExtensions
+ UCS Block """
+ ret = libxml2mod.xmlUCSIsPhoneticExtensions(code)
+ return ret
+
+def uCSIsPrivateUse(code):
+ """Check whether the character is part of PrivateUse UCS Block """
+ ret = libxml2mod.xmlUCSIsPrivateUse(code)
+ return ret
+
+def uCSIsPrivateUseArea(code):
+ """Check whether the character is part of PrivateUseArea UCS
+ Block """
+ ret = libxml2mod.xmlUCSIsPrivateUseArea(code)
+ return ret
+
+def uCSIsRunic(code):
+ """Check whether the character is part of Runic UCS Block """
+ ret = libxml2mod.xmlUCSIsRunic(code)
+ return ret
+
+def uCSIsShavian(code):
+ """Check whether the character is part of Shavian UCS Block """
+ ret = libxml2mod.xmlUCSIsShavian(code)
+ return ret
+
+def uCSIsSinhala(code):
+ """Check whether the character is part of Sinhala UCS Block """
+ ret = libxml2mod.xmlUCSIsSinhala(code)
+ return ret
+
+def uCSIsSmallFormVariants(code):
+ """Check whether the character is part of SmallFormVariants
+ UCS Block """
+ ret = libxml2mod.xmlUCSIsSmallFormVariants(code)
+ return ret
+
+def uCSIsSpacingModifierLetters(code):
+ """Check whether the character is part of
+ SpacingModifierLetters UCS Block """
+ ret = libxml2mod.xmlUCSIsSpacingModifierLetters(code)
+ return ret
+
+def uCSIsSpecials(code):
+ """Check whether the character is part of Specials UCS Block """
+ ret = libxml2mod.xmlUCSIsSpecials(code)
+ return ret
+
+def uCSIsSuperscriptsandSubscripts(code):
+ """Check whether the character is part of
+ SuperscriptsandSubscripts UCS Block """
+ ret = libxml2mod.xmlUCSIsSuperscriptsandSubscripts(code)
+ return ret
+
+def uCSIsSupplementalArrowsA(code):
+ """Check whether the character is part of SupplementalArrows-A
+ UCS Block """
+ ret = libxml2mod.xmlUCSIsSupplementalArrowsA(code)
+ return ret
+
+def uCSIsSupplementalArrowsB(code):
+ """Check whether the character is part of SupplementalArrows-B
+ UCS Block """
+ ret = libxml2mod.xmlUCSIsSupplementalArrowsB(code)
+ return ret
+
+def uCSIsSupplementalMathematicalOperators(code):
+ """Check whether the character is part of
+ SupplementalMathematicalOperators UCS Block """
+ ret = libxml2mod.xmlUCSIsSupplementalMathematicalOperators(code)
+ return ret
+
+def uCSIsSupplementaryPrivateUseAreaA(code):
+ """Check whether the character is part of
+ SupplementaryPrivateUseArea-A UCS Block """
+ ret = libxml2mod.xmlUCSIsSupplementaryPrivateUseAreaA(code)
+ return ret
+
+def uCSIsSupplementaryPrivateUseAreaB(code):
+ """Check whether the character is part of
+ SupplementaryPrivateUseArea-B UCS Block """
+ ret = libxml2mod.xmlUCSIsSupplementaryPrivateUseAreaB(code)
+ return ret
+
+def uCSIsSyriac(code):
+ """Check whether the character is part of Syriac UCS Block """
+ ret = libxml2mod.xmlUCSIsSyriac(code)
+ return ret
+
+def uCSIsTagalog(code):
+ """Check whether the character is part of Tagalog UCS Block """
+ ret = libxml2mod.xmlUCSIsTagalog(code)
+ return ret
+
+def uCSIsTagbanwa(code):
+ """Check whether the character is part of Tagbanwa UCS Block """
+ ret = libxml2mod.xmlUCSIsTagbanwa(code)
+ return ret
+
+def uCSIsTags(code):
+ """Check whether the character is part of Tags UCS Block """
+ ret = libxml2mod.xmlUCSIsTags(code)
+ return ret
+
+def uCSIsTaiLe(code):
+ """Check whether the character is part of TaiLe UCS Block """
+ ret = libxml2mod.xmlUCSIsTaiLe(code)
+ return ret
+
+def uCSIsTaiXuanJingSymbols(code):
+ """Check whether the character is part of TaiXuanJingSymbols
+ UCS Block """
+ ret = libxml2mod.xmlUCSIsTaiXuanJingSymbols(code)
+ return ret
+
+def uCSIsTamil(code):
+ """Check whether the character is part of Tamil UCS Block """
+ ret = libxml2mod.xmlUCSIsTamil(code)
+ return ret
+
+def uCSIsTelugu(code):
+ """Check whether the character is part of Telugu UCS Block """
+ ret = libxml2mod.xmlUCSIsTelugu(code)
+ return ret
+
+def uCSIsThaana(code):
+ """Check whether the character is part of Thaana UCS Block """
+ ret = libxml2mod.xmlUCSIsThaana(code)
+ return ret
+
+def uCSIsThai(code):
+ """Check whether the character is part of Thai UCS Block """
+ ret = libxml2mod.xmlUCSIsThai(code)
+ return ret
+
+def uCSIsTibetan(code):
+ """Check whether the character is part of Tibetan UCS Block """
+ ret = libxml2mod.xmlUCSIsTibetan(code)
+ return ret
+
+def uCSIsUgaritic(code):
+ """Check whether the character is part of Ugaritic UCS Block """
+ ret = libxml2mod.xmlUCSIsUgaritic(code)
+ return ret
+
+def uCSIsUnifiedCanadianAboriginalSyllabics(code):
+ """Check whether the character is part of
+ UnifiedCanadianAboriginalSyllabics UCS Block """
+ ret = libxml2mod.xmlUCSIsUnifiedCanadianAboriginalSyllabics(code)
+ return ret
+
+def uCSIsVariationSelectors(code):
+ """Check whether the character is part of VariationSelectors
+ UCS Block """
+ ret = libxml2mod.xmlUCSIsVariationSelectors(code)
+ return ret
+
+def uCSIsVariationSelectorsSupplement(code):
+ """Check whether the character is part of
+ VariationSelectorsSupplement UCS Block """
+ ret = libxml2mod.xmlUCSIsVariationSelectorsSupplement(code)
+ return ret
+
+def uCSIsYiRadicals(code):
+ """Check whether the character is part of YiRadicals UCS Block """
+ ret = libxml2mod.xmlUCSIsYiRadicals(code)
+ return ret
+
+def uCSIsYiSyllables(code):
+ """Check whether the character is part of YiSyllables UCS Block """
+ ret = libxml2mod.xmlUCSIsYiSyllables(code)
+ return ret
+
+def uCSIsYijingHexagramSymbols(code):
+ """Check whether the character is part of
+ YijingHexagramSymbols UCS Block """
+ ret = libxml2mod.xmlUCSIsYijingHexagramSymbols(code)
+ return ret
+
+#
+# Functions from module xmlversion
+#
+
+def checkVersion(version):
+ """check the compiled lib version against the include one.
+ This can warn or immediately kill the application """
+ libxml2mod.xmlCheckVersion(version)
+
+#
+# Functions from module xpathInternals
+#
+
+def valuePop(ctxt):
+ """Pops the top XPath object from the value stack """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ ret = libxml2mod.valuePop(ctxt__o)
+ return ret
+
+class xmlNode(xmlCore):
+ def __init__(self, _obj=None):
+ if checkWrapper(_obj) != 0: raise TypeError('xmlNode got a wrong wrapper object type')
+ self._o = _obj
+ xmlCore.__init__(self, _obj=_obj)
+
+ def __repr__(self):
+ return "<xmlNode (%s) object at 0x%x>" % (self.name, int(pos_id (self)))
+
+ # accessors for xmlNode
+ def ns(self):
+ """Get the namespace of a node """
+ ret = libxml2mod.xmlNodeGetNs(self._o)
+ if ret is None:return None
+ __tmp = xmlNs(_obj=ret)
+ return __tmp
+
+ def nsDefs(self):
+ """Get the namespace of a node """
+ ret = libxml2mod.xmlNodeGetNsDefs(self._o)
+ if ret is None:return None
+ __tmp = xmlNs(_obj=ret)
+ return __tmp
+
+ #
+ # xmlNode functions from module debugXML
+ #
+
+ def debugDumpNode(self, output, depth):
+ """Dumps debug information for the element node, it is
+ recursive """
+ libxml2mod.xmlDebugDumpNode(output, self._o, depth)
+
+ def debugDumpNodeList(self, output, depth):
+ """Dumps debug information for the list of element node, it is
+ recursive """
+ libxml2mod.xmlDebugDumpNodeList(output, self._o, depth)
+
+ def debugDumpOneNode(self, output, depth):
+ """Dumps debug information for the element node, it is not
+ recursive """
+ libxml2mod.xmlDebugDumpOneNode(output, self._o, depth)
+
+ def lsCountNode(self):
+ """Count the children of @node. """
+ ret = libxml2mod.xmlLsCountNode(self._o)
+ return ret
+
+ def lsOneNode(self, output):
+ """Dump to @output the type and name of @node. """
+ libxml2mod.xmlLsOneNode(output, self._o)
+
+ def shellPrintNode(self):
+ """Print node to the output FILE """
+ libxml2mod.xmlShellPrintNode(self._o)
+
+ #
+ # xmlNode functions from module tree
+ #
+
+ def addChild(self, cur):
+ """Add a new node to @parent, at the end of the child (or
+ property) list merging adjacent TEXT nodes (in which case
+ @cur is freed) If the new node is ATTRIBUTE, it is added
+ into properties instead of children. If there is an
+ attribute with equal name, it is first destroyed. """
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ ret = libxml2mod.xmlAddChild(self._o, cur__o)
+ if ret is None:raise treeError('xmlAddChild() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def addChildList(self, cur):
+ """Add a list of node at the end of the child list of the
+ parent merging adjacent TEXT nodes (@cur may be freed) """
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ ret = libxml2mod.xmlAddChildList(self._o, cur__o)
+ if ret is None:raise treeError('xmlAddChildList() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def addContent(self, content):
+ """Append the extra substring to the node content. NOTE: In
+ contrast to xmlNodeSetContent(), @content is supposed to be
+ raw text, so unescaped XML special chars are allowed,
+ entity references are not supported. """
+ libxml2mod.xmlNodeAddContent(self._o, content)
+
+ def addContentLen(self, content, len):
+ """Append the extra substring to the node content. NOTE: In
+ contrast to xmlNodeSetContentLen(), @content is supposed to
+ be raw text, so unescaped XML special chars are allowed,
+ entity references are not supported. """
+ libxml2mod.xmlNodeAddContentLen(self._o, content, len)
+
+ def addNextSibling(self, elem):
+ """Add a new node @elem as the next sibling of @cur If the new
+ node was already inserted in a document it is first
+ unlinked from its existing context. As a result of text
+ merging @elem may be freed. If the new node is ATTRIBUTE,
+ it is added into properties instead of children. If there
+ is an attribute with equal name, it is first destroyed. """
+ if elem is None: elem__o = None
+ else: elem__o = elem._o
+ ret = libxml2mod.xmlAddNextSibling(self._o, elem__o)
+ if ret is None:raise treeError('xmlAddNextSibling() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def addPrevSibling(self, elem):
+ """Add a new node @elem as the previous sibling of @cur
+ merging adjacent TEXT nodes (@elem may be freed) If the new
+ node was already inserted in a document it is first
+ unlinked from its existing context. If the new node is
+ ATTRIBUTE, it is added into properties instead of children.
+ If there is an attribute with equal name, it is first
+ destroyed. """
+ if elem is None: elem__o = None
+ else: elem__o = elem._o
+ ret = libxml2mod.xmlAddPrevSibling(self._o, elem__o)
+ if ret is None:raise treeError('xmlAddPrevSibling() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def addSibling(self, elem):
+ """Add a new element @elem to the list of siblings of @cur
+ merging adjacent TEXT nodes (@elem may be freed) If the new
+ element was already inserted in a document it is first
+ unlinked from its existing context. """
+ if elem is None: elem__o = None
+ else: elem__o = elem._o
+ ret = libxml2mod.xmlAddSibling(self._o, elem__o)
+ if ret is None:raise treeError('xmlAddSibling() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def copyNode(self, extended):
+ """Do a copy of the node. """
+ ret = libxml2mod.xmlCopyNode(self._o, extended)
+ if ret is None:raise treeError('xmlCopyNode() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def copyNodeList(self):
+ """Do a recursive copy of the node list. Use
+ xmlDocCopyNodeList() if possible to ensure string interning. """
+ ret = libxml2mod.xmlCopyNodeList(self._o)
+ if ret is None:raise treeError('xmlCopyNodeList() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def copyProp(self, cur):
+ """Do a copy of the attribute. """
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ ret = libxml2mod.xmlCopyProp(self._o, cur__o)
+ if ret is None:raise treeError('xmlCopyProp() failed')
+ __tmp = xmlAttr(_obj=ret)
+ return __tmp
+
+ def copyPropList(self, cur):
+ """Do a copy of an attribute list. """
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ ret = libxml2mod.xmlCopyPropList(self._o, cur__o)
+ if ret is None:raise treeError('xmlCopyPropList() failed')
+ __tmp = xmlAttr(_obj=ret)
+ return __tmp
+
+ def docCopyNode(self, doc, extended):
+ """Do a copy of the node to a given document. """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ ret = libxml2mod.xmlDocCopyNode(self._o, doc__o, extended)
+ if ret is None:raise treeError('xmlDocCopyNode() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def docCopyNodeList(self, doc):
+ """Do a recursive copy of the node list. """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ ret = libxml2mod.xmlDocCopyNodeList(doc__o, self._o)
+ if ret is None:raise treeError('xmlDocCopyNodeList() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def docSetRootElement(self, doc):
+ """Set the root element of the document (doc->children is a
+ list containing possibly comments, PIs, etc ...). """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ ret = libxml2mod.xmlDocSetRootElement(doc__o, self._o)
+ if ret is None:return None
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def firstElementChild(self):
+ """Finds the first child node of that element which is a
+ Element node Note the handling of entities references is
+ different than in the W3C DOM element traversal spec since
+ we don't have back reference from entities content to
+ entities references. """
+ ret = libxml2mod.xmlFirstElementChild(self._o)
+ if ret is None:return None
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def freeNode(self):
+ """Free a node, this is a recursive behaviour, all the
+ children are freed too. This doesn't unlink the child from
+ the list, use xmlUnlinkNode() first. """
+ libxml2mod.xmlFreeNode(self._o)
+
+ def freeNodeList(self):
+ """Free a node and all its siblings, this is a recursive
+ behaviour, all the children are freed too. """
+ libxml2mod.xmlFreeNodeList(self._o)
+
+ def getBase(self, doc):
+ """Searches for the BASE URL. The code should work on both XML
+ and HTML document even if base mechanisms are completely
+ different. It returns the base as defined in RFC 2396
+ sections 5.1.1. Base URI within Document Content and 5.1.2.
+ Base URI from the Encapsulating Entity However it does not
+ return the document base (5.1.3), use doc->URL in this case """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ ret = libxml2mod.xmlNodeGetBase(doc__o, self._o)
+ return ret
+
+ def getContent(self):
+ """Read the value of a node, this can be either the text
+ carried directly by this node if it's a TEXT node or the
+ aggregate string of the values carried by this node child's
+ (TEXT and ENTITY_REF). Entity references are substituted. """
+ ret = libxml2mod.xmlNodeGetContent(self._o)
+ return ret
+
+ def getLang(self):
+ """Searches the language of a node, i.e. the values of the
+ xml:lang attribute or the one carried by the nearest
+ ancestor. """
+ ret = libxml2mod.xmlNodeGetLang(self._o)
+ return ret
+
+ def getSpacePreserve(self):
+ """Searches the space preserving behaviour of a node, i.e. the
+ values of the xml:space attribute or the one carried by the
+ nearest ancestor. """
+ ret = libxml2mod.xmlNodeGetSpacePreserve(self._o)
+ return ret
+
+ def hasNsProp(self, name, nameSpace):
+ """Search for an attribute associated to a node This attribute
+ has to be anchored in the namespace specified. This does
+ the entity substitution. This function looks in DTD
+ attribute declaration for #FIXED or default declaration
+ values unless DTD use has been turned off. Note that a
+ namespace of None indicates to use the default namespace. """
+ ret = libxml2mod.xmlHasNsProp(self._o, name, nameSpace)
+ if ret is None:return None
+ __tmp = xmlAttr(_obj=ret)
+ return __tmp
+
+ def hasProp(self, name):
+ """Search an attribute associated to a node This function also
+ looks in DTD attribute declaration for #FIXED or default
+ declaration values unless DTD use has been turned off. """
+ ret = libxml2mod.xmlHasProp(self._o, name)
+ if ret is None:return None
+ __tmp = xmlAttr(_obj=ret)
+ return __tmp
+
+ def isBlankNode(self):
+ """Checks whether this node is an empty or whitespace only
+ (and possibly ignorable) text-node. """
+ ret = libxml2mod.xmlIsBlankNode(self._o)
+ return ret
+
+ def isText(self):
+ """Is this node a Text node ? """
+ ret = libxml2mod.xmlNodeIsText(self._o)
+ return ret
+
+ def lastChild(self):
+ """Search the last child of a node. """
+ ret = libxml2mod.xmlGetLastChild(self._o)
+ if ret is None:raise treeError('xmlGetLastChild() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def lastElementChild(self):
+ """Finds the last child node of that element which is a
+ Element node Note the handling of entities references is
+ different than in the W3C DOM element traversal spec since
+ we don't have back reference from entities content to
+ entities references. """
+ ret = libxml2mod.xmlLastElementChild(self._o)
+ if ret is None:return None
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def lineNo(self):
+ """Get line number of @node. Try to override the limitation of
+ lines being store in 16 bits ints if XML_PARSE_BIG_LINES
+ parser option was used """
+ ret = libxml2mod.xmlGetLineNo(self._o)
+ return ret
+
+ def listGetRawString(self, doc, inLine):
+ """Builds the string equivalent to the text contained in the
+ Node list made of TEXTs and ENTITY_REFs, contrary to
+ xmlNodeListGetString() this function doesn't do any
+ character encoding handling. """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ ret = libxml2mod.xmlNodeListGetRawString(doc__o, self._o, inLine)
+ return ret
+
+ def listGetString(self, doc, inLine):
+ """Build the string equivalent to the text contained in the
+ Node list made of TEXTs and ENTITY_REFs """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ ret = libxml2mod.xmlNodeListGetString(doc__o, self._o, inLine)
+ return ret
+
+ def newChild(self, ns, name, content):
+ """Creation of a new child element, added at the end of
+ @parent children list. @ns and @content parameters are
+ optional (None). If @ns is None, the newly created element
+ inherits the namespace of @parent. If @content is non None,
+ a child list containing the TEXTs and ENTITY_REFs node will
+ be created. NOTE: @content is supposed to be a piece of XML
+ CDATA, so it allows entity references. XML special chars
+ must be escaped first by using
+ xmlEncodeEntitiesReentrant(), or xmlNewTextChild() should
+ be used. """
+ if ns is None: ns__o = None
+ else: ns__o = ns._o
+ ret = libxml2mod.xmlNewChild(self._o, ns__o, name, content)
+ if ret is None:raise treeError('xmlNewChild() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def newNs(self, href, prefix):
+ """Creation of a new Namespace. This function will refuse to
+ create a namespace with a similar prefix than an existing
+ one present on this node. Note that for a default
+ namespace, @prefix should be None. We use href==None in
+ the case of an element creation where the namespace was not
+ defined. """
+ ret = libxml2mod.xmlNewNs(self._o, href, prefix)
+ if ret is None:raise treeError('xmlNewNs() failed')
+ __tmp = xmlNs(_obj=ret)
+ return __tmp
+
+ def newNsProp(self, ns, name, value):
+ """Create a new property tagged with a namespace and carried
+ by a node. """
+ if ns is None: ns__o = None
+ else: ns__o = ns._o
+ ret = libxml2mod.xmlNewNsProp(self._o, ns__o, name, value)
+ if ret is None:raise treeError('xmlNewNsProp() failed')
+ __tmp = xmlAttr(_obj=ret)
+ return __tmp
+
+ def newNsPropEatName(self, ns, name, value):
+ """Create a new property tagged with a namespace and carried
+ by a node. """
+ if ns is None: ns__o = None
+ else: ns__o = ns._o
+ ret = libxml2mod.xmlNewNsPropEatName(self._o, ns__o, name, value)
+ if ret is None:raise treeError('xmlNewNsPropEatName() failed')
+ __tmp = xmlAttr(_obj=ret)
+ return __tmp
+
+ def newProp(self, name, value):
+ """Create a new property carried by a node. """
+ ret = libxml2mod.xmlNewProp(self._o, name, value)
+ if ret is None:raise treeError('xmlNewProp() failed')
+ __tmp = xmlAttr(_obj=ret)
+ return __tmp
+
+ def newTextChild(self, ns, name, content):
+ """Creation of a new child element, added at the end of
+ @parent children list. @ns and @content parameters are
+ optional (None). If @ns is None, the newly created element
+ inherits the namespace of @parent. If @content is non None,
+ a child TEXT node will be created containing the string
+ @content. NOTE: Use xmlNewChild() if @content will contain
+ entities that need to be preserved. Use this function,
+ xmlNewTextChild(), if you need to ensure that reserved XML
+ chars that might appear in @content, such as the ampersand,
+ greater-than or less-than signs, are automatically replaced
+ by their XML escaped entity representations. """
+ if ns is None: ns__o = None
+ else: ns__o = ns._o
+ ret = libxml2mod.xmlNewTextChild(self._o, ns__o, name, content)
+ if ret is None:raise treeError('xmlNewTextChild() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def nextElementSibling(self):
+ """Finds the first closest next sibling of the node which is
+ an element node. Note the handling of entities references
+ is different than in the W3C DOM element traversal spec
+ since we don't have back reference from entities content to
+ entities references. """
+ ret = libxml2mod.xmlNextElementSibling(self._o)
+ if ret is None:return None
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def noNsProp(self, name):
+ """Search and get the value of an attribute associated to a
+ node This does the entity substitution. This function looks
+ in DTD attribute declaration for #FIXED or default
+ declaration values unless DTD use has been turned off. This
+ function is similar to xmlGetProp except it will accept
+ only an attribute in no namespace. """
+ ret = libxml2mod.xmlGetNoNsProp(self._o, name)
+ return ret
+
+ def nodePath(self):
+ """Build a structure based Path for the given node """
+ ret = libxml2mod.xmlGetNodePath(self._o)
+ return ret
+
+ def nsProp(self, name, nameSpace):
+ """Search and get the value of an attribute associated to a
+ node This attribute has to be anchored in the namespace
+ specified. This does the entity substitution. This function
+ looks in DTD attribute declaration for #FIXED or default
+ declaration values unless DTD use has been turned off. """
+ ret = libxml2mod.xmlGetNsProp(self._o, name, nameSpace)
+ return ret
+
+ def previousElementSibling(self):
+ """Finds the first closest previous sibling of the node which
+ is an element node. Note the handling of entities
+ references is different than in the W3C DOM element
+ traversal spec since we don't have back reference from
+ entities content to entities references. """
+ ret = libxml2mod.xmlPreviousElementSibling(self._o)
+ if ret is None:return None
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def prop(self, name):
+ """Search and get the value of an attribute associated to a
+ node This does the entity substitution. This function looks
+ in DTD attribute declaration for #FIXED or default
+ declaration values unless DTD use has been turned off.
+ NOTE: this function acts independently of namespaces
+ associated to the attribute. Use xmlGetNsProp() or
+ xmlGetNoNsProp() for namespace aware processing. """
+ ret = libxml2mod.xmlGetProp(self._o, name)
+ return ret
+
+ def reconciliateNs(self, doc):
+ """This function checks that all the namespaces declared
+ within the given tree are properly declared. This is needed
+ for example after Copy or Cut and then paste operations.
+ The subtree may still hold pointers to namespace
+ declarations outside the subtree or invalid/masked. As much
+ as possible the function try to reuse the existing
+ namespaces found in the new environment. If not possible
+ the new namespaces are redeclared on @tree at the top of
+ the given subtree. """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ ret = libxml2mod.xmlReconciliateNs(doc__o, self._o)
+ return ret
+
+ def replaceNode(self, cur):
+ """Unlink the old node from its current context, prune the new
+ one at the same place. If @cur was already inserted in a
+ document it is first unlinked from its existing context. """
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ ret = libxml2mod.xmlReplaceNode(self._o, cur__o)
+ if ret is None:raise treeError('xmlReplaceNode() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def searchNs(self, doc, nameSpace):
+ """Search a Ns registered under a given name space for a
+ document. recurse on the parents until it finds the defined
+ namespace or return None otherwise. @nameSpace can be None,
+ this is a search for the default namespace. We don't allow
+ to cross entities boundaries. If you don't declare the
+ namespace within those you will be in troubles !!! A
+ warning is generated to cover this case. """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ ret = libxml2mod.xmlSearchNs(doc__o, self._o, nameSpace)
+ if ret is None:raise treeError('xmlSearchNs() failed')
+ __tmp = xmlNs(_obj=ret)
+ return __tmp
+
+ def searchNsByHref(self, doc, href):
+ """Search a Ns aliasing a given URI. Recurse on the parents
+ until it finds the defined namespace or return None
+ otherwise. """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ ret = libxml2mod.xmlSearchNsByHref(doc__o, self._o, href)
+ if ret is None:raise treeError('xmlSearchNsByHref() failed')
+ __tmp = xmlNs(_obj=ret)
+ return __tmp
+
+ def setBase(self, uri):
+ """Set (or reset) the base URI of a node, i.e. the value of
+ the xml:base attribute. """
+ libxml2mod.xmlNodeSetBase(self._o, uri)
+
+ def setContent(self, content):
+ """Replace the content of a node. NOTE: @content is supposed
+ to be a piece of XML CDATA, so it allows entity references,
+ but XML special chars need to be escaped first by using
+ xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars(). """
+ libxml2mod.xmlNodeSetContent(self._o, content)
+
+ def setContentLen(self, content, len):
+ """Replace the content of a node. NOTE: @content is supposed
+ to be a piece of XML CDATA, so it allows entity references,
+ but XML special chars need to be escaped first by using
+ xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars(). """
+ libxml2mod.xmlNodeSetContentLen(self._o, content, len)
+
+ def setLang(self, lang):
+ """Set the language of a node, i.e. the values of the xml:lang
+ attribute. """
+ libxml2mod.xmlNodeSetLang(self._o, lang)
+
+ def setListDoc(self, doc):
+ """update all nodes in the list to point to the right document """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ libxml2mod.xmlSetListDoc(self._o, doc__o)
+
+ def setName(self, name):
+ """Set (or reset) the name of a node. """
+ libxml2mod.xmlNodeSetName(self._o, name)
+
+ def setNs(self, ns):
+ """Associate a namespace to a node, a posteriori. """
+ if ns is None: ns__o = None
+ else: ns__o = ns._o
+ libxml2mod.xmlSetNs(self._o, ns__o)
+
+ def setNsProp(self, ns, name, value):
+ """Set (or reset) an attribute carried by a node. The ns
+ structure must be in scope, this is not checked """
+ if ns is None: ns__o = None
+ else: ns__o = ns._o
+ ret = libxml2mod.xmlSetNsProp(self._o, ns__o, name, value)
+ if ret is None:raise treeError('xmlSetNsProp() failed')
+ __tmp = xmlAttr(_obj=ret)
+ return __tmp
+
+ def setProp(self, name, value):
+ """Set (or reset) an attribute carried by a node. If @name has
+ a prefix, then the corresponding namespace-binding will be
+ used, if in scope; it is an error it there's no such
+ ns-binding for the prefix in scope. """
+ ret = libxml2mod.xmlSetProp(self._o, name, value)
+ if ret is None:raise treeError('xmlSetProp() failed')
+ __tmp = xmlAttr(_obj=ret)
+ return __tmp
+
+ def setSpacePreserve(self, val):
+ """Set (or reset) the space preserving behaviour of a node,
+ i.e. the value of the xml:space attribute. """
+ libxml2mod.xmlNodeSetSpacePreserve(self._o, val)
+
+ def setTreeDoc(self, doc):
+ """update all nodes under the tree to point to the right
+ document """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ libxml2mod.xmlSetTreeDoc(self._o, doc__o)
+
+ def textConcat(self, content, len):
+ """Concat the given string at the end of the existing node
+ content """
+ ret = libxml2mod.xmlTextConcat(self._o, content, len)
+ return ret
+
+ def textMerge(self, second):
+ """Merge two text nodes into one """
+ if second is None: second__o = None
+ else: second__o = second._o
+ ret = libxml2mod.xmlTextMerge(self._o, second__o)
+ if ret is None:raise treeError('xmlTextMerge() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def unlinkNode(self):
+ """Unlink a node from it's current context, the node is not
+ freed If one need to free the node, use xmlFreeNode()
+ routine after the unlink to discard it. Note that namespace
+ nodes can't be unlinked as they do not have pointer to
+ their parent. """
+ libxml2mod.xmlUnlinkNode(self._o)
+
+ def unsetNsProp(self, ns, name):
+ """Remove an attribute carried by a node. """
+ if ns is None: ns__o = None
+ else: ns__o = ns._o
+ ret = libxml2mod.xmlUnsetNsProp(self._o, ns__o, name)
+ return ret
+
+ def unsetProp(self, name):
+ """Remove an attribute carried by a node. This handles only
+ attributes in no namespace. """
+ ret = libxml2mod.xmlUnsetProp(self._o, name)
+ return ret
+
+ #
+ # xmlNode functions from module valid
+ #
+
+ def isID(self, doc, attr):
+ """Determine whether an attribute is of type ID. In case we
+ have DTD(s) then this is done if DTD loading has been
+ requested. In the case of HTML documents parsed with the
+ HTML parser, then ID detection is done systematically. """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ if attr is None: attr__o = None
+ else: attr__o = attr._o
+ ret = libxml2mod.xmlIsID(doc__o, self._o, attr__o)
+ return ret
+
+ def isRef(self, doc, attr):
+ """Determine whether an attribute is of type Ref. In case we
+ have DTD(s) then this is simple, otherwise we use an
+ heuristic: name Ref (upper or lowercase). """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ if attr is None: attr__o = None
+ else: attr__o = attr._o
+ ret = libxml2mod.xmlIsRef(doc__o, self._o, attr__o)
+ return ret
+
+ def validNormalizeAttributeValue(self, doc, name, value):
+ """Does the validation related extra step of the normalization
+ of attribute values: If the declared value is not CDATA,
+ then the XML processor must further process the normalized
+ attribute value by discarding any leading and trailing
+ space (#x20) characters, and by replacing sequences of
+ space (#x20) characters by single space (#x20) character. """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ ret = libxml2mod.xmlValidNormalizeAttributeValue(doc__o, self._o, name, value)
+ return ret
+
+ #
+ # xmlNode functions from module xinclude
+ #
+
+ def xincludeProcessTree(self):
+ """Implement the XInclude substitution for the given subtree """
+ ret = libxml2mod.xmlXIncludeProcessTree(self._o)
+ return ret
+
+ def xincludeProcessTreeFlags(self, flags):
+ """Implement the XInclude substitution for the given subtree """
+ ret = libxml2mod.xmlXIncludeProcessTreeFlags(self._o, flags)
+ return ret
+
+ #
+ # xmlNode functions from module xmlschemas
+ #
+
+ def schemaValidateOneElement(self, ctxt):
+ """Validate a branch of a tree, starting with the given @elem. """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ ret = libxml2mod.xmlSchemaValidateOneElement(ctxt__o, self._o)
+ return ret
+
+ #
+ # xmlNode functions from module xpath
+ #
+
+ def xpathCastNodeToNumber(self):
+ """Converts a node to its number value """
+ ret = libxml2mod.xmlXPathCastNodeToNumber(self._o)
+ return ret
+
+ def xpathCastNodeToString(self):
+ """Converts a node to its string value. """
+ ret = libxml2mod.xmlXPathCastNodeToString(self._o)
+ return ret
+
+ def xpathCmpNodes(self, node2):
+ """Compare two nodes w.r.t document order """
+ if node2 is None: node2__o = None
+ else: node2__o = node2._o
+ ret = libxml2mod.xmlXPathCmpNodes(self._o, node2__o)
+ return ret
+
+ def xpathNodeEval(self, str, ctx):
+ """Evaluate the XPath Location Path in the given context. The
+ node 'node' is set as the context node. The context node is
+ not restored. """
+ if ctx is None: ctx__o = None
+ else: ctx__o = ctx._o
+ ret = libxml2mod.xmlXPathNodeEval(self._o, str, ctx__o)
+ if ret is None:raise xpathError('xmlXPathNodeEval() failed')
+ return xpathObjectRet(ret)
+
+ #
+ # xmlNode functions from module xpathInternals
+ #
+
+ def xpathNewNodeSet(self):
+ """Create a new xmlXPathObjectPtr of type NodeSet and
+ initialize it with the single Node @val """
+ ret = libxml2mod.xmlXPathNewNodeSet(self._o)
+ if ret is None:raise xpathError('xmlXPathNewNodeSet() failed')
+ return xpathObjectRet(ret)
+
+ def xpathNewValueTree(self):
+ """Create a new xmlXPathObjectPtr of type Value Tree (XSLT)
+ and initialize it with the tree root @val """
+ ret = libxml2mod.xmlXPathNewValueTree(self._o)
+ if ret is None:raise xpathError('xmlXPathNewValueTree() failed')
+ return xpathObjectRet(ret)
+
+ def xpathNextAncestor(self, ctxt):
+ """Traversal function for the "ancestor" direction the
+ ancestor axis contains the ancestors of the context node;
+ the ancestors of the context node consist of the parent of
+ context node and the parent's parent and so on; the nodes
+ are ordered in reverse document order; thus the parent is
+ the first node on the axis, and the parent's parent is the
+ second node on the axis """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ ret = libxml2mod.xmlXPathNextAncestor(ctxt__o, self._o)
+ if ret is None:raise xpathError('xmlXPathNextAncestor() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def xpathNextAncestorOrSelf(self, ctxt):
+ """Traversal function for the "ancestor-or-self" direction he
+ ancestor-or-self axis contains the context node and
+ ancestors of the context node in reverse document order;
+ thus the context node is the first node on the axis, and
+ the context node's parent the second; parent here is
+ defined the same as with the parent axis. """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ ret = libxml2mod.xmlXPathNextAncestorOrSelf(ctxt__o, self._o)
+ if ret is None:raise xpathError('xmlXPathNextAncestorOrSelf() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def xpathNextAttribute(self, ctxt):
+ """Traversal function for the "attribute" direction TODO:
+ support DTD inherited default attributes """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ ret = libxml2mod.xmlXPathNextAttribute(ctxt__o, self._o)
+ if ret is None:raise xpathError('xmlXPathNextAttribute() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def xpathNextChild(self, ctxt):
+ """Traversal function for the "child" direction The child axis
+ contains the children of the context node in document order. """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ ret = libxml2mod.xmlXPathNextChild(ctxt__o, self._o)
+ if ret is None:raise xpathError('xmlXPathNextChild() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def xpathNextDescendant(self, ctxt):
+ """Traversal function for the "descendant" direction the
+ descendant axis contains the descendants of the context
+ node in document order; a descendant is a child or a child
+ of a child and so on. """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ ret = libxml2mod.xmlXPathNextDescendant(ctxt__o, self._o)
+ if ret is None:raise xpathError('xmlXPathNextDescendant() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def xpathNextDescendantOrSelf(self, ctxt):
+ """Traversal function for the "descendant-or-self" direction
+ the descendant-or-self axis contains the context node and
+ the descendants of the context node in document order; thus
+ the context node is the first node on the axis, and the
+ first child of the context node is the second node on the
+ axis """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ ret = libxml2mod.xmlXPathNextDescendantOrSelf(ctxt__o, self._o)
+ if ret is None:raise xpathError('xmlXPathNextDescendantOrSelf() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def xpathNextFollowing(self, ctxt):
+ """Traversal function for the "following" direction The
+ following axis contains all nodes in the same document as
+ the context node that are after the context node in
+ document order, excluding any descendants and excluding
+ attribute nodes and namespace nodes; the nodes are ordered
+ in document order """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ ret = libxml2mod.xmlXPathNextFollowing(ctxt__o, self._o)
+ if ret is None:raise xpathError('xmlXPathNextFollowing() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def xpathNextFollowingSibling(self, ctxt):
+ """Traversal function for the "following-sibling" direction
+ The following-sibling axis contains the following siblings
+ of the context node in document order. """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ ret = libxml2mod.xmlXPathNextFollowingSibling(ctxt__o, self._o)
+ if ret is None:raise xpathError('xmlXPathNextFollowingSibling() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def xpathNextNamespace(self, ctxt):
+ """Traversal function for the "namespace" direction the
+ namespace axis contains the namespace nodes of the context
+ node; the order of nodes on this axis is
+ implementation-defined; the axis will be empty unless the
+ context node is an element We keep the XML namespace node
+ at the end of the list. """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ ret = libxml2mod.xmlXPathNextNamespace(ctxt__o, self._o)
+ if ret is None:raise xpathError('xmlXPathNextNamespace() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def xpathNextParent(self, ctxt):
+ """Traversal function for the "parent" direction The parent
+ axis contains the parent of the context node, if there is
+ one. """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ ret = libxml2mod.xmlXPathNextParent(ctxt__o, self._o)
+ if ret is None:raise xpathError('xmlXPathNextParent() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def xpathNextPreceding(self, ctxt):
+ """Traversal function for the "preceding" direction the
+ preceding axis contains all nodes in the same document as
+ the context node that are before the context node in
+ document order, excluding any ancestors and excluding
+ attribute nodes and namespace nodes; the nodes are ordered
+ in reverse document order """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ ret = libxml2mod.xmlXPathNextPreceding(ctxt__o, self._o)
+ if ret is None:raise xpathError('xmlXPathNextPreceding() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def xpathNextPrecedingSibling(self, ctxt):
+ """Traversal function for the "preceding-sibling" direction
+ The preceding-sibling axis contains the preceding siblings
+ of the context node in reverse document order; the first
+ preceding sibling is first on the axis; the sibling
+ preceding that node is the second on the axis and so on. """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ ret = libxml2mod.xmlXPathNextPrecedingSibling(ctxt__o, self._o)
+ if ret is None:raise xpathError('xmlXPathNextPrecedingSibling() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def xpathNextSelf(self, ctxt):
+ """Traversal function for the "self" direction The self axis
+ contains just the context node itself """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ ret = libxml2mod.xmlXPathNextSelf(ctxt__o, self._o)
+ if ret is None:raise xpathError('xmlXPathNextSelf() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ #
+ # xmlNode functions from module xpointer
+ #
+
+ def xpointerNewCollapsedRange(self):
+ """Create a new xmlXPathObjectPtr of type range using a single
+ nodes """
+ ret = libxml2mod.xmlXPtrNewCollapsedRange(self._o)
+ if ret is None:raise treeError('xmlXPtrNewCollapsedRange() failed')
+ return xpathObjectRet(ret)
+
+ def xpointerNewContext(self, doc, origin):
+ """Create a new XPointer context """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ if origin is None: origin__o = None
+ else: origin__o = origin._o
+ ret = libxml2mod.xmlXPtrNewContext(doc__o, self._o, origin__o)
+ if ret is None:raise treeError('xmlXPtrNewContext() failed')
+ __tmp = xpathContext(_obj=ret)
+ return __tmp
+
+ def xpointerNewLocationSetNodes(self, end):
+ """Create a new xmlXPathObjectPtr of type LocationSet and
+ initialize it with the single range made of the two nodes
+ @start and @end """
+ if end is None: end__o = None
+ else: end__o = end._o
+ ret = libxml2mod.xmlXPtrNewLocationSetNodes(self._o, end__o)
+ if ret is None:raise treeError('xmlXPtrNewLocationSetNodes() failed')
+ return xpathObjectRet(ret)
+
+ def xpointerNewRange(self, startindex, end, endindex):
+ """Create a new xmlXPathObjectPtr of type range """
+ if end is None: end__o = None
+ else: end__o = end._o
+ ret = libxml2mod.xmlXPtrNewRange(self._o, startindex, end__o, endindex)
+ if ret is None:raise treeError('xmlXPtrNewRange() failed')
+ return xpathObjectRet(ret)
+
+ def xpointerNewRangeNodes(self, end):
+ """Create a new xmlXPathObjectPtr of type range using 2 nodes """
+ if end is None: end__o = None
+ else: end__o = end._o
+ ret = libxml2mod.xmlXPtrNewRangeNodes(self._o, end__o)
+ if ret is None:raise treeError('xmlXPtrNewRangeNodes() failed')
+ return xpathObjectRet(ret)
+
+class xmlDoc(xmlNode):
+ def __init__(self, _obj=None):
+ if checkWrapper(_obj) != 0: raise TypeError('xmlDoc got a wrong wrapper object type')
+ self._o = _obj
+ xmlNode.__init__(self, _obj=_obj)
+
+ def __repr__(self):
+ return "<xmlDoc (%s) object at 0x%x>" % (self.name, int(pos_id (self)))
+
+ #
+ # xmlDoc functions from module HTMLparser
+ #
+
+ def htmlAutoCloseTag(self, name, elem):
+ """The HTML DTD allows a tag to implicitly close other tags.
+ The list is kept in htmlStartClose array. This function
+ checks if the element or one of it's children would
+ autoclose the given tag. """
+ ret = libxml2mod.htmlAutoCloseTag(self._o, name, elem)
+ return ret
+
+ def htmlIsAutoClosed(self, elem):
+ """The HTML DTD allows a tag to implicitly close other tags.
+ The list is kept in htmlStartClose array. This function
+ checks if a tag is autoclosed by one of it's child """
+ ret = libxml2mod.htmlIsAutoClosed(self._o, elem)
+ return ret
+
+ #
+ # xmlDoc functions from module HTMLtree
+ #
+
+ def htmlDocContentDumpFormatOutput(self, buf, encoding, format):
+ """Dump an HTML document. """
+ if buf is None: buf__o = None
+ else: buf__o = buf._o
+ libxml2mod.htmlDocContentDumpFormatOutput(buf__o, self._o, encoding, format)
+
+ def htmlDocContentDumpOutput(self, buf, encoding):
+ """Dump an HTML document. Formatting return/spaces are added. """
+ if buf is None: buf__o = None
+ else: buf__o = buf._o
+ libxml2mod.htmlDocContentDumpOutput(buf__o, self._o, encoding)
+
+ def htmlDocDump(self, f):
+ """Dump an HTML document to an open FILE. """
+ ret = libxml2mod.htmlDocDump(f, self._o)
+ return ret
+
+ def htmlGetMetaEncoding(self):
+ """Encoding definition lookup in the Meta tags """
+ ret = libxml2mod.htmlGetMetaEncoding(self._o)
+ return ret
+
+ def htmlNodeDumpFile(self, out, cur):
+ """Dump an HTML node, recursive behaviour,children are printed
+ too, and formatting returns are added. """
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ libxml2mod.htmlNodeDumpFile(out, self._o, cur__o)
+
+ def htmlNodeDumpFileFormat(self, out, cur, encoding, format):
+ """Dump an HTML node, recursive behaviour,children are printed
+ too. TODO: if encoding == None try to save in the doc
+ encoding """
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ ret = libxml2mod.htmlNodeDumpFileFormat(out, self._o, cur__o, encoding, format)
+ return ret
+
+ def htmlNodeDumpFormatOutput(self, buf, cur, encoding, format):
+ """Dump an HTML node, recursive behaviour,children are printed
+ too. """
+ if buf is None: buf__o = None
+ else: buf__o = buf._o
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ libxml2mod.htmlNodeDumpFormatOutput(buf__o, self._o, cur__o, encoding, format)
+
+ def htmlNodeDumpOutput(self, buf, cur, encoding):
+ """Dump an HTML node, recursive behaviour,children are printed
+ too, and formatting returns/spaces are added. """
+ if buf is None: buf__o = None
+ else: buf__o = buf._o
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ libxml2mod.htmlNodeDumpOutput(buf__o, self._o, cur__o, encoding)
+
+ def htmlSaveFile(self, filename):
+ """Dump an HTML document to a file. If @filename is "-" the
+ stdout file is used. """
+ ret = libxml2mod.htmlSaveFile(filename, self._o)
+ return ret
+
+ def htmlSaveFileEnc(self, filename, encoding):
+ """Dump an HTML document to a file using a given encoding and
+ formatting returns/spaces are added. """
+ ret = libxml2mod.htmlSaveFileEnc(filename, self._o, encoding)
+ return ret
+
+ def htmlSaveFileFormat(self, filename, encoding, format):
+ """Dump an HTML document to a file using a given encoding. """
+ ret = libxml2mod.htmlSaveFileFormat(filename, self._o, encoding, format)
+ return ret
+
+ def htmlSetMetaEncoding(self, encoding):
+ """Sets the current encoding in the Meta tags NOTE: this will
+ not change the document content encoding, just the META
+ flag associated. """
+ ret = libxml2mod.htmlSetMetaEncoding(self._o, encoding)
+ return ret
+
+ #
+ # xmlDoc functions from module debugXML
+ #
+
+ def debugCheckDocument(self, output):
+ """Check the document for potential content problems, and
+ output the errors to @output """
+ ret = libxml2mod.xmlDebugCheckDocument(output, self._o)
+ return ret
+
+ def debugDumpDocument(self, output):
+ """Dumps debug information for the document, it's recursive """
+ libxml2mod.xmlDebugDumpDocument(output, self._o)
+
+ def debugDumpDocumentHead(self, output):
+ """Dumps debug information concerning the document, not
+ recursive """
+ libxml2mod.xmlDebugDumpDocumentHead(output, self._o)
+
+ def debugDumpEntities(self, output):
+ """Dumps debug information for all the entities in use by the
+ document """
+ libxml2mod.xmlDebugDumpEntities(output, self._o)
+
+ #
+ # xmlDoc functions from module entities
+ #
+
+ def addDocEntity(self, name, type, ExternalID, SystemID, content):
+ """Register a new entity for this document. """
+ ret = libxml2mod.xmlAddDocEntity(self._o, name, type, ExternalID, SystemID, content)
+ if ret is None:raise treeError('xmlAddDocEntity() failed')
+ __tmp = xmlEntity(_obj=ret)
+ return __tmp
+
+ def addDtdEntity(self, name, type, ExternalID, SystemID, content):
+ """Register a new entity for this document DTD external subset. """
+ ret = libxml2mod.xmlAddDtdEntity(self._o, name, type, ExternalID, SystemID, content)
+ if ret is None:raise treeError('xmlAddDtdEntity() failed')
+ __tmp = xmlEntity(_obj=ret)
+ return __tmp
+
+ def docEntity(self, name):
+ """Do an entity lookup in the document entity hash table and """
+ ret = libxml2mod.xmlGetDocEntity(self._o, name)
+ if ret is None:raise treeError('xmlGetDocEntity() failed')
+ __tmp = xmlEntity(_obj=ret)
+ return __tmp
+
+ def dtdEntity(self, name):
+ """Do an entity lookup in the DTD entity hash table and """
+ ret = libxml2mod.xmlGetDtdEntity(self._o, name)
+ if ret is None:raise treeError('xmlGetDtdEntity() failed')
+ __tmp = xmlEntity(_obj=ret)
+ return __tmp
+
+ def encodeEntities(self, input):
+ """TODO: remove xmlEncodeEntities, once we are not afraid of
+ breaking binary compatibility People must migrate their
+ code to xmlEncodeEntitiesReentrant ! This routine will
+ issue a warning when encountered. """
+ ret = libxml2mod.xmlEncodeEntities(self._o, input)
+ return ret
+
+ def encodeEntitiesReentrant(self, input):
+ """Do a global encoding of a string, replacing the predefined
+ entities and non ASCII values with their entities and
+ CharRef counterparts. Contrary to xmlEncodeEntities, this
+ routine is reentrant, and result must be deallocated. """
+ ret = libxml2mod.xmlEncodeEntitiesReentrant(self._o, input)
+ return ret
+
+ def encodeSpecialChars(self, input):
+ """Do a global encoding of a string, replacing the predefined
+ entities this routine is reentrant, and result must be
+ deallocated. """
+ ret = libxml2mod.xmlEncodeSpecialChars(self._o, input)
+ return ret
+
+ def newEntity(self, name, type, ExternalID, SystemID, content):
+ """Create a new entity, this differs from xmlAddDocEntity()
+ that if the document is None or has no internal subset
+ defined, then an unlinked entity structure will be
+ returned, it is then the responsibility of the caller to
+ link it to the document later or free it when not needed
+ anymore. """
+ ret = libxml2mod.xmlNewEntity(self._o, name, type, ExternalID, SystemID, content)
+ if ret is None:raise treeError('xmlNewEntity() failed')
+ __tmp = xmlEntity(_obj=ret)
+ return __tmp
+
+ def parameterEntity(self, name):
+ """Do an entity lookup in the internal and external subsets and """
+ ret = libxml2mod.xmlGetParameterEntity(self._o, name)
+ if ret is None:raise treeError('xmlGetParameterEntity() failed')
+ __tmp = xmlEntity(_obj=ret)
+ return __tmp
+
+ #
+ # xmlDoc functions from module relaxng
+ #
+
+ def relaxNGNewDocParserCtxt(self):
+ """Create an XML RelaxNGs parser context for that document.
+ Note: since the process of compiling a RelaxNG schemas
+ modifies the document, the @doc parameter is duplicated
+ internally. """
+ ret = libxml2mod.xmlRelaxNGNewDocParserCtxt(self._o)
+ if ret is None:raise parserError('xmlRelaxNGNewDocParserCtxt() failed')
+ __tmp = relaxNgParserCtxt(_obj=ret)
+ return __tmp
+
+ def relaxNGValidateDoc(self, ctxt):
+ """Validate a document tree in memory. """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ ret = libxml2mod.xmlRelaxNGValidateDoc(ctxt__o, self._o)
+ return ret
+
+ def relaxNGValidateFullElement(self, ctxt, elem):
+ """Validate a full subtree when
+ xmlRelaxNGValidatePushElement() returned 0 and the content
+ of the node has been expanded. """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ if elem is None: elem__o = None
+ else: elem__o = elem._o
+ ret = libxml2mod.xmlRelaxNGValidateFullElement(ctxt__o, self._o, elem__o)
+ return ret
+
+ def relaxNGValidatePopElement(self, ctxt, elem):
+ """Pop the element end from the RelaxNG validation stack. """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ if elem is None: elem__o = None
+ else: elem__o = elem._o
+ ret = libxml2mod.xmlRelaxNGValidatePopElement(ctxt__o, self._o, elem__o)
+ return ret
+
+ def relaxNGValidatePushElement(self, ctxt, elem):
+ """Push a new element start on the RelaxNG validation stack. """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ if elem is None: elem__o = None
+ else: elem__o = elem._o
+ ret = libxml2mod.xmlRelaxNGValidatePushElement(ctxt__o, self._o, elem__o)
+ return ret
+
+ #
+ # xmlDoc functions from module tree
+ #
+
+ def copyDoc(self, recursive):
+ """Do a copy of the document info. If recursive, the content
+ tree will be copied too as well as DTD, namespaces and
+ entities. """
+ ret = libxml2mod.xmlCopyDoc(self._o, recursive)
+ if ret is None:raise treeError('xmlCopyDoc() failed')
+ __tmp = xmlDoc(_obj=ret)
+ return __tmp
+
+ def copyNode(self, node, extended):
+ """Do a copy of the node to a given document. """
+ if node is None: node__o = None
+ else: node__o = node._o
+ ret = libxml2mod.xmlDocCopyNode(node__o, self._o, extended)
+ if ret is None:raise treeError('xmlDocCopyNode() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def copyNodeList(self, node):
+ """Do a recursive copy of the node list. """
+ if node is None: node__o = None
+ else: node__o = node._o
+ ret = libxml2mod.xmlDocCopyNodeList(self._o, node__o)
+ if ret is None:raise treeError('xmlDocCopyNodeList() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def createIntSubset(self, name, ExternalID, SystemID):
+ """Create the internal subset of a document """
+ ret = libxml2mod.xmlCreateIntSubset(self._o, name, ExternalID, SystemID)
+ if ret is None:raise treeError('xmlCreateIntSubset() failed')
+ __tmp = xmlDtd(_obj=ret)
+ return __tmp
+
+ def docCompressMode(self):
+ """get the compression ratio for a document, ZLIB based """
+ ret = libxml2mod.xmlGetDocCompressMode(self._o)
+ return ret
+
+ def dump(self, f):
+ """Dump an XML document to an open FILE. """
+ ret = libxml2mod.xmlDocDump(f, self._o)
+ return ret
+
+ def elemDump(self, f, cur):
+ """Dump an XML/HTML node, recursive behaviour, children are
+ printed too. """
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ libxml2mod.xmlElemDump(f, self._o, cur__o)
+
+ def formatDump(self, f, format):
+ """Dump an XML document to an open FILE. """
+ ret = libxml2mod.xmlDocFormatDump(f, self._o, format)
+ return ret
+
+ def freeDoc(self):
+ """Free up all the structures used by a document, tree
+ included. """
+ libxml2mod.xmlFreeDoc(self._o)
+
+ def getRootElement(self):
+ """Get the root element of the document (doc->children is a
+ list containing possibly comments, PIs, etc ...). """
+ ret = libxml2mod.xmlDocGetRootElement(self._o)
+ if ret is None:raise treeError('xmlDocGetRootElement() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def intSubset(self):
+ """Get the internal subset of a document """
+ ret = libxml2mod.xmlGetIntSubset(self._o)
+ if ret is None:raise treeError('xmlGetIntSubset() failed')
+ __tmp = xmlDtd(_obj=ret)
+ return __tmp
+
+ def newCDataBlock(self, content, len):
+ """Creation of a new node containing a CDATA block. """
+ ret = libxml2mod.xmlNewCDataBlock(self._o, content, len)
+ if ret is None:raise treeError('xmlNewCDataBlock() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def newCharRef(self, name):
+ """Creation of a new character reference node. """
+ ret = libxml2mod.xmlNewCharRef(self._o, name)
+ if ret is None:raise treeError('xmlNewCharRef() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def newDocComment(self, content):
+ """Creation of a new node containing a comment within a
+ document. """
+ ret = libxml2mod.xmlNewDocComment(self._o, content)
+ if ret is None:raise treeError('xmlNewDocComment() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def newDocFragment(self):
+ """Creation of a new Fragment node. """
+ ret = libxml2mod.xmlNewDocFragment(self._o)
+ if ret is None:raise treeError('xmlNewDocFragment() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def newDocNode(self, ns, name, content):
+ """Creation of a new node element within a document. @ns and
+ @content are optional (None). NOTE: @content is supposed to
+ be a piece of XML CDATA, so it allow entities references,
+ but XML special chars need to be escaped first by using
+ xmlEncodeEntitiesReentrant(). Use xmlNewDocRawNode() if you
+ don't need entities support. """
+ if ns is None: ns__o = None
+ else: ns__o = ns._o
+ ret = libxml2mod.xmlNewDocNode(self._o, ns__o, name, content)
+ if ret is None:raise treeError('xmlNewDocNode() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def newDocNodeEatName(self, ns, name, content):
+ """Creation of a new node element within a document. @ns and
+ @content are optional (None). NOTE: @content is supposed to
+ be a piece of XML CDATA, so it allow entities references,
+ but XML special chars need to be escaped first by using
+ xmlEncodeEntitiesReentrant(). Use xmlNewDocRawNode() if you
+ don't need entities support. """
+ if ns is None: ns__o = None
+ else: ns__o = ns._o
+ ret = libxml2mod.xmlNewDocNodeEatName(self._o, ns__o, name, content)
+ if ret is None:raise treeError('xmlNewDocNodeEatName() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def newDocPI(self, name, content):
+ """Creation of a processing instruction element. """
+ ret = libxml2mod.xmlNewDocPI(self._o, name, content)
+ if ret is None:raise treeError('xmlNewDocPI() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def newDocProp(self, name, value):
+ """Create a new property carried by a document. """
+ ret = libxml2mod.xmlNewDocProp(self._o, name, value)
+ if ret is None:raise treeError('xmlNewDocProp() failed')
+ __tmp = xmlAttr(_obj=ret)
+ return __tmp
+
+ def newDocRawNode(self, ns, name, content):
+ """Creation of a new node element within a document. @ns and
+ @content are optional (None). """
+ if ns is None: ns__o = None
+ else: ns__o = ns._o
+ ret = libxml2mod.xmlNewDocRawNode(self._o, ns__o, name, content)
+ if ret is None:raise treeError('xmlNewDocRawNode() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def newDocText(self, content):
+ """Creation of a new text node within a document. """
+ ret = libxml2mod.xmlNewDocText(self._o, content)
+ if ret is None:raise treeError('xmlNewDocText() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def newDocTextLen(self, content, len):
+ """Creation of a new text node with an extra content length
+ parameter. The text node pertain to a given document. """
+ ret = libxml2mod.xmlNewDocTextLen(self._o, content, len)
+ if ret is None:raise treeError('xmlNewDocTextLen() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def newDtd(self, name, ExternalID, SystemID):
+ """Creation of a new DTD for the external subset. To create an
+ internal subset, use xmlCreateIntSubset(). """
+ ret = libxml2mod.xmlNewDtd(self._o, name, ExternalID, SystemID)
+ if ret is None:raise treeError('xmlNewDtd() failed')
+ __tmp = xmlDtd(_obj=ret)
+ return __tmp
+
+ def newGlobalNs(self, href, prefix):
+ """Creation of a Namespace, the old way using PI and without
+ scoping DEPRECATED !!! """
+ ret = libxml2mod.xmlNewGlobalNs(self._o, href, prefix)
+ if ret is None:raise treeError('xmlNewGlobalNs() failed')
+ __tmp = xmlNs(_obj=ret)
+ return __tmp
+
+ def newReference(self, name):
+ """Creation of a new reference node. """
+ ret = libxml2mod.xmlNewReference(self._o, name)
+ if ret is None:raise treeError('xmlNewReference() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def nodeDumpOutput(self, buf, cur, level, format, encoding):
+ """Dump an XML node, recursive behaviour, children are printed
+ too. Note that @format = 1 provide node indenting only if
+ xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was
+ called """
+ if buf is None: buf__o = None
+ else: buf__o = buf._o
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ libxml2mod.xmlNodeDumpOutput(buf__o, self._o, cur__o, level, format, encoding)
+
+ def nodeGetBase(self, cur):
+ """Searches for the BASE URL. The code should work on both XML
+ and HTML document even if base mechanisms are completely
+ different. It returns the base as defined in RFC 2396
+ sections 5.1.1. Base URI within Document Content and 5.1.2.
+ Base URI from the Encapsulating Entity However it does not
+ return the document base (5.1.3), use doc->URL in this case """
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ ret = libxml2mod.xmlNodeGetBase(self._o, cur__o)
+ return ret
+
+ def nodeListGetRawString(self, list, inLine):
+ """Builds the string equivalent to the text contained in the
+ Node list made of TEXTs and ENTITY_REFs, contrary to
+ xmlNodeListGetString() this function doesn't do any
+ character encoding handling. """
+ if list is None: list__o = None
+ else: list__o = list._o
+ ret = libxml2mod.xmlNodeListGetRawString(self._o, list__o, inLine)
+ return ret
+
+ def nodeListGetString(self, list, inLine):
+ """Build the string equivalent to the text contained in the
+ Node list made of TEXTs and ENTITY_REFs """
+ if list is None: list__o = None
+ else: list__o = list._o
+ ret = libxml2mod.xmlNodeListGetString(self._o, list__o, inLine)
+ return ret
+
+ def reconciliateNs(self, tree):
+ """This function checks that all the namespaces declared
+ within the given tree are properly declared. This is needed
+ for example after Copy or Cut and then paste operations.
+ The subtree may still hold pointers to namespace
+ declarations outside the subtree or invalid/masked. As much
+ as possible the function try to reuse the existing
+ namespaces found in the new environment. If not possible
+ the new namespaces are redeclared on @tree at the top of
+ the given subtree. """
+ if tree is None: tree__o = None
+ else: tree__o = tree._o
+ ret = libxml2mod.xmlReconciliateNs(self._o, tree__o)
+ return ret
+
+ def saveFile(self, filename):
+ """Dump an XML document to a file. Will use compression if
+ compiled in and enabled. If @filename is "-" the stdout
+ file is used. """
+ ret = libxml2mod.xmlSaveFile(filename, self._o)
+ return ret
+
+ def saveFileEnc(self, filename, encoding):
+ """Dump an XML document, converting it to the given encoding """
+ ret = libxml2mod.xmlSaveFileEnc(filename, self._o, encoding)
+ return ret
+
+ def saveFileTo(self, buf, encoding):
+ """Dump an XML document to an I/O buffer. Warning ! This call
+ xmlOutputBufferClose() on buf which is not available after
+ this call. """
+ if buf is None: buf__o = None
+ else: buf__o = buf._o
+ ret = libxml2mod.xmlSaveFileTo(buf__o, self._o, encoding)
+ return ret
+
+ def saveFormatFile(self, filename, format):
+ """Dump an XML document to a file. Will use compression if
+ compiled in and enabled. If @filename is "-" the stdout
+ file is used. If @format is set then the document will be
+ indented on output. Note that @format = 1 provide node
+ indenting only if xmlIndentTreeOutput = 1 or
+ xmlKeepBlanksDefault(0) was called """
+ ret = libxml2mod.xmlSaveFormatFile(filename, self._o, format)
+ return ret
+
+ def saveFormatFileEnc(self, filename, encoding, format):
+ """Dump an XML document to a file or an URL. """
+ ret = libxml2mod.xmlSaveFormatFileEnc(filename, self._o, encoding, format)
+ return ret
+
+ def saveFormatFileTo(self, buf, encoding, format):
+ """Dump an XML document to an I/O buffer. Warning ! This call
+ xmlOutputBufferClose() on buf which is not available after
+ this call. """
+ if buf is None: buf__o = None
+ else: buf__o = buf._o
+ ret = libxml2mod.xmlSaveFormatFileTo(buf__o, self._o, encoding, format)
+ return ret
+
+ def searchNs(self, node, nameSpace):
+ """Search a Ns registered under a given name space for a
+ document. recurse on the parents until it finds the defined
+ namespace or return None otherwise. @nameSpace can be None,
+ this is a search for the default namespace. We don't allow
+ to cross entities boundaries. If you don't declare the
+ namespace within those you will be in troubles !!! A
+ warning is generated to cover this case. """
+ if node is None: node__o = None
+ else: node__o = node._o
+ ret = libxml2mod.xmlSearchNs(self._o, node__o, nameSpace)
+ if ret is None:raise treeError('xmlSearchNs() failed')
+ __tmp = xmlNs(_obj=ret)
+ return __tmp
+
+ def searchNsByHref(self, node, href):
+ """Search a Ns aliasing a given URI. Recurse on the parents
+ until it finds the defined namespace or return None
+ otherwise. """
+ if node is None: node__o = None
+ else: node__o = node._o
+ ret = libxml2mod.xmlSearchNsByHref(self._o, node__o, href)
+ if ret is None:raise treeError('xmlSearchNsByHref() failed')
+ __tmp = xmlNs(_obj=ret)
+ return __tmp
+
+ def setDocCompressMode(self, mode):
+ """set the compression ratio for a document, ZLIB based
+ Correct values: 0 (uncompressed) to 9 (max compression) """
+ libxml2mod.xmlSetDocCompressMode(self._o, mode)
+
+ def setListDoc(self, list):
+ """update all nodes in the list to point to the right document """
+ if list is None: list__o = None
+ else: list__o = list._o
+ libxml2mod.xmlSetListDoc(list__o, self._o)
+
+ def setRootElement(self, root):
+ """Set the root element of the document (doc->children is a
+ list containing possibly comments, PIs, etc ...). """
+ if root is None: root__o = None
+ else: root__o = root._o
+ ret = libxml2mod.xmlDocSetRootElement(self._o, root__o)
+ if ret is None:return None
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def setTreeDoc(self, tree):
+ """update all nodes under the tree to point to the right
+ document """
+ if tree is None: tree__o = None
+ else: tree__o = tree._o
+ libxml2mod.xmlSetTreeDoc(tree__o, self._o)
+
+ def stringGetNodeList(self, value):
+ """Parse the value string and build the node list associated.
+ Should produce a flat tree with only TEXTs and ENTITY_REFs. """
+ ret = libxml2mod.xmlStringGetNodeList(self._o, value)
+ if ret is None:raise treeError('xmlStringGetNodeList() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def stringLenGetNodeList(self, value, len):
+ """Parse the value string and build the node list associated.
+ Should produce a flat tree with only TEXTs and ENTITY_REFs. """
+ ret = libxml2mod.xmlStringLenGetNodeList(self._o, value, len)
+ if ret is None:raise treeError('xmlStringLenGetNodeList() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ #
+ # xmlDoc functions from module valid
+ #
+
+ def ID(self, ID):
+ """Search the attribute declaring the given ID """
+ ret = libxml2mod.xmlGetID(self._o, ID)
+ if ret is None:raise treeError('xmlGetID() failed')
+ __tmp = xmlAttr(_obj=ret)
+ return __tmp
+
+ def isID(self, elem, attr):
+ """Determine whether an attribute is of type ID. In case we
+ have DTD(s) then this is done if DTD loading has been
+ requested. In the case of HTML documents parsed with the
+ HTML parser, then ID detection is done systematically. """
+ if elem is None: elem__o = None
+ else: elem__o = elem._o
+ if attr is None: attr__o = None
+ else: attr__o = attr._o
+ ret = libxml2mod.xmlIsID(self._o, elem__o, attr__o)
+ return ret
+
+ def isMixedElement(self, name):
+ """Search in the DtDs whether an element accept Mixed content
+ (or ANY) basically if it is supposed to accept text childs """
+ ret = libxml2mod.xmlIsMixedElement(self._o, name)
+ return ret
+
+ def isRef(self, elem, attr):
+ """Determine whether an attribute is of type Ref. In case we
+ have DTD(s) then this is simple, otherwise we use an
+ heuristic: name Ref (upper or lowercase). """
+ if elem is None: elem__o = None
+ else: elem__o = elem._o
+ if attr is None: attr__o = None
+ else: attr__o = attr._o
+ ret = libxml2mod.xmlIsRef(self._o, elem__o, attr__o)
+ return ret
+
+ def removeID(self, attr):
+ """Remove the given attribute from the ID table maintained
+ internally. """
+ if attr is None: attr__o = None
+ else: attr__o = attr._o
+ ret = libxml2mod.xmlRemoveID(self._o, attr__o)
+ return ret
+
+ def removeRef(self, attr):
+ """Remove the given attribute from the Ref table maintained
+ internally. """
+ if attr is None: attr__o = None
+ else: attr__o = attr._o
+ ret = libxml2mod.xmlRemoveRef(self._o, attr__o)
+ return ret
+
+ def validCtxtNormalizeAttributeValue(self, ctxt, elem, name, value):
+ """Does the validation related extra step of the normalization
+ of attribute values: If the declared value is not CDATA,
+ then the XML processor must further process the normalized
+ attribute value by discarding any leading and trailing
+ space (#x20) characters, and by replacing sequences of
+ space (#x20) characters by single space (#x20) character.
+ Also check VC: Standalone Document Declaration in P32, and
+ update ctxt->valid accordingly """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ if elem is None: elem__o = None
+ else: elem__o = elem._o
+ ret = libxml2mod.xmlValidCtxtNormalizeAttributeValue(ctxt__o, self._o, elem__o, name, value)
+ return ret
+
+ def validNormalizeAttributeValue(self, elem, name, value):
+ """Does the validation related extra step of the normalization
+ of attribute values: If the declared value is not CDATA,
+ then the XML processor must further process the normalized
+ attribute value by discarding any leading and trailing
+ space (#x20) characters, and by replacing sequences of
+ space (#x20) characters by single space (#x20) character. """
+ if elem is None: elem__o = None
+ else: elem__o = elem._o
+ ret = libxml2mod.xmlValidNormalizeAttributeValue(self._o, elem__o, name, value)
+ return ret
+
+ def validateDocument(self, ctxt):
+ """Try to validate the document instance basically it does
+ the all the checks described by the XML Rec i.e. validates
+ the internal and external subset (if present) and validate
+ the document tree. """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ ret = libxml2mod.xmlValidateDocument(ctxt__o, self._o)
+ return ret
+
+ def validateDocumentFinal(self, ctxt):
+ """Does the final step for the document validation once all
+ the incremental validation steps have been completed
+ basically it does the following checks described by the XML
+ Rec Check all the IDREF/IDREFS attributes definition for
+ validity """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ ret = libxml2mod.xmlValidateDocumentFinal(ctxt__o, self._o)
+ return ret
+
+ def validateDtd(self, ctxt, dtd):
+ """Try to validate the document against the dtd instance
+ Basically it does check all the definitions in the DtD.
+ Note the the internal subset (if present) is de-coupled
+ (i.e. not used), which could give problems if ID or IDREF
+ is present. """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ if dtd is None: dtd__o = None
+ else: dtd__o = dtd._o
+ ret = libxml2mod.xmlValidateDtd(ctxt__o, self._o, dtd__o)
+ return ret
+
+ def validateDtdFinal(self, ctxt):
+ """Does the final step for the dtds validation once all the
+ subsets have been parsed basically it does the following
+ checks described by the XML Rec - check that ENTITY and
+ ENTITIES type attributes default or possible values matches
+ one of the defined entities. - check that NOTATION type
+ attributes default or possible values matches one of the
+ defined notations. """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ ret = libxml2mod.xmlValidateDtdFinal(ctxt__o, self._o)
+ return ret
+
+ def validateElement(self, ctxt, elem):
+ """Try to validate the subtree under an element """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ if elem is None: elem__o = None
+ else: elem__o = elem._o
+ ret = libxml2mod.xmlValidateElement(ctxt__o, self._o, elem__o)
+ return ret
+
+ def validateNotationUse(self, ctxt, notationName):
+ """Validate that the given name match a notation declaration.
+ - [ VC: Notation Declared ] """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ ret = libxml2mod.xmlValidateNotationUse(ctxt__o, self._o, notationName)
+ return ret
+
+ def validateOneAttribute(self, ctxt, elem, attr, value):
+ """Try to validate a single attribute for an element basically
+ it does the following checks as described by the XML-1.0
+ recommendation: - [ VC: Attribute Value Type ] - [ VC:
+ Fixed Attribute Default ] - [ VC: Entity Name ] - [ VC:
+ Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC: Entity
+ Name ] - [ VC: Notation Attributes ] The ID/IDREF
+ uniqueness and matching are done separately """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ if elem is None: elem__o = None
+ else: elem__o = elem._o
+ if attr is None: attr__o = None
+ else: attr__o = attr._o
+ ret = libxml2mod.xmlValidateOneAttribute(ctxt__o, self._o, elem__o, attr__o, value)
+ return ret
+
+ def validateOneElement(self, ctxt, elem):
+ """Try to validate a single element and it's attributes,
+ basically it does the following checks as described by the
+ XML-1.0 recommendation: - [ VC: Element Valid ] - [ VC:
+ Required Attribute ] Then call xmlValidateOneAttribute()
+ for each attribute present. The ID/IDREF checkings are
+ done separately """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ if elem is None: elem__o = None
+ else: elem__o = elem._o
+ ret = libxml2mod.xmlValidateOneElement(ctxt__o, self._o, elem__o)
+ return ret
+
+ def validateOneNamespace(self, ctxt, elem, prefix, ns, value):
+ """Try to validate a single namespace declaration for an
+ element basically it does the following checks as described
+ by the XML-1.0 recommendation: - [ VC: Attribute Value Type
+ ] - [ VC: Fixed Attribute Default ] - [ VC: Entity Name ] -
+ [ VC: Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC:
+ Entity Name ] - [ VC: Notation Attributes ] The ID/IDREF
+ uniqueness and matching are done separately """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ if elem is None: elem__o = None
+ else: elem__o = elem._o
+ if ns is None: ns__o = None
+ else: ns__o = ns._o
+ ret = libxml2mod.xmlValidateOneNamespace(ctxt__o, self._o, elem__o, prefix, ns__o, value)
+ return ret
+
+ def validatePopElement(self, ctxt, elem, qname):
+ """Pop the element end from the validation stack. """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ if elem is None: elem__o = None
+ else: elem__o = elem._o
+ ret = libxml2mod.xmlValidatePopElement(ctxt__o, self._o, elem__o, qname)
+ return ret
+
+ def validatePushElement(self, ctxt, elem, qname):
+ """Push a new element start on the validation stack. """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ if elem is None: elem__o = None
+ else: elem__o = elem._o
+ ret = libxml2mod.xmlValidatePushElement(ctxt__o, self._o, elem__o, qname)
+ return ret
+
+ def validateRoot(self, ctxt):
+ """Try to validate a the root element basically it does the
+ following check as described by the XML-1.0 recommendation:
+ - [ VC: Root Element Type ] it doesn't try to recurse or
+ apply other check to the element """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ ret = libxml2mod.xmlValidateRoot(ctxt__o, self._o)
+ return ret
+
+ #
+ # xmlDoc functions from module xinclude
+ #
+
+ def xincludeProcess(self):
+ """Implement the XInclude substitution on the XML document @doc """
+ ret = libxml2mod.xmlXIncludeProcess(self._o)
+ return ret
+
+ def xincludeProcessFlags(self, flags):
+ """Implement the XInclude substitution on the XML document @doc """
+ ret = libxml2mod.xmlXIncludeProcessFlags(self._o, flags)
+ return ret
+
+ #
+ # xmlDoc functions from module xmlreader
+ #
+
+ def NewWalker(self, reader):
+ """Setup an xmltextReader to parse a preparsed XML document.
+ This reuses the existing @reader xmlTextReader. """
+ if reader is None: reader__o = None
+ else: reader__o = reader._o
+ ret = libxml2mod.xmlReaderNewWalker(reader__o, self._o)
+ return ret
+
+ def readerWalker(self):
+ """Create an xmltextReader for a preparsed document. """
+ ret = libxml2mod.xmlReaderWalker(self._o)
+ if ret is None:raise treeError('xmlReaderWalker() failed')
+ __tmp = xmlTextReader(_obj=ret)
+ return __tmp
+
+ #
+ # xmlDoc functions from module xmlschemas
+ #
+
+ def schemaNewDocParserCtxt(self):
+ """Create an XML Schemas parse context for that document. NB.
+ The document may be modified during the parsing process. """
+ ret = libxml2mod.xmlSchemaNewDocParserCtxt(self._o)
+ if ret is None:raise parserError('xmlSchemaNewDocParserCtxt() failed')
+ __tmp = SchemaParserCtxt(_obj=ret)
+ return __tmp
+
+ def schemaValidateDoc(self, ctxt):
+ """Validate a document tree in memory. """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ ret = libxml2mod.xmlSchemaValidateDoc(ctxt__o, self._o)
+ return ret
+
+ #
+ # xmlDoc functions from module xpath
+ #
+
+ def xpathNewContext(self):
+ """Create a new xmlXPathContext """
+ ret = libxml2mod.xmlXPathNewContext(self._o)
+ if ret is None:raise xpathError('xmlXPathNewContext() failed')
+ __tmp = xpathContext(_obj=ret)
+ return __tmp
+
+ def xpathOrderDocElems(self):
+ """Call this routine to speed up XPath computation on static
+ documents. This stamps all the element nodes with the
+ document order Like for line information, the order is kept
+ in the element->content field, the value stored is actually
+ - the node number (starting at -1) to be able to
+ differentiate from line numbers. """
+ ret = libxml2mod.xmlXPathOrderDocElems(self._o)
+ return ret
+
+ #
+ # xmlDoc functions from module xpointer
+ #
+
+ def xpointerNewContext(self, here, origin):
+ """Create a new XPointer context """
+ if here is None: here__o = None
+ else: here__o = here._o
+ if origin is None: origin__o = None
+ else: origin__o = origin._o
+ ret = libxml2mod.xmlXPtrNewContext(self._o, here__o, origin__o)
+ if ret is None:raise treeError('xmlXPtrNewContext() failed')
+ __tmp = xpathContext(_obj=ret)
+ return __tmp
+
+class parserCtxt(parserCtxtCore):
+ def __init__(self, _obj=None):
+ self._o = _obj
+ parserCtxtCore.__init__(self, _obj=_obj)
+
+ def __del__(self):
+ if self._o != None:
+ libxml2mod.xmlFreeParserCtxt(self._o)
+ self._o = None
+
+ # accessors for parserCtxt
+ def doc(self):
+ """Get the document tree from a parser context. """
+ ret = libxml2mod.xmlParserGetDoc(self._o)
+ if ret is None:raise parserError('xmlParserGetDoc() failed')
+ __tmp = xmlDoc(_obj=ret)
+ return __tmp
+
+ def isValid(self):
+ """Get the validity information from a parser context. """
+ ret = libxml2mod.xmlParserGetIsValid(self._o)
+ return ret
+
+ def lineNumbers(self, linenumbers):
+ """Switch on the generation of line number for elements nodes. """
+ libxml2mod.xmlParserSetLineNumbers(self._o, linenumbers)
+
+ def loadSubset(self, loadsubset):
+ """Switch the parser to load the DTD without validating. """
+ libxml2mod.xmlParserSetLoadSubset(self._o, loadsubset)
+
+ def pedantic(self, pedantic):
+ """Switch the parser to be pedantic. """
+ libxml2mod.xmlParserSetPedantic(self._o, pedantic)
+
+ def replaceEntities(self, replaceEntities):
+ """Switch the parser to replace entities. """
+ libxml2mod.xmlParserSetReplaceEntities(self._o, replaceEntities)
+
+ def validate(self, validate):
+ """Switch the parser to validation mode. """
+ libxml2mod.xmlParserSetValidate(self._o, validate)
+
+ def wellFormed(self):
+ """Get the well formed information from a parser context. """
+ ret = libxml2mod.xmlParserGetWellFormed(self._o)
+ return ret
+
+ #
+ # parserCtxt functions from module HTMLparser
+ #
+
+ def htmlCtxtReadDoc(self, cur, URL, encoding, options):
+ """parse an XML in-memory document and build a tree. This
+ reuses the existing @ctxt parser context """
+ ret = libxml2mod.htmlCtxtReadDoc(self._o, cur, URL, encoding, options)
+ if ret is None:raise treeError('htmlCtxtReadDoc() failed')
+ __tmp = xmlDoc(_obj=ret)
+ return __tmp
+
+ def htmlCtxtReadFd(self, fd, URL, encoding, options):
+ """parse an XML from a file descriptor and build a tree. This
+ reuses the existing @ctxt parser context """
+ ret = libxml2mod.htmlCtxtReadFd(self._o, fd, URL, encoding, options)
+ if ret is None:raise treeError('htmlCtxtReadFd() failed')
+ __tmp = xmlDoc(_obj=ret)
+ return __tmp
+
+ def htmlCtxtReadFile(self, filename, encoding, options):
+ """parse an XML file from the filesystem or the network. This
+ reuses the existing @ctxt parser context """
+ ret = libxml2mod.htmlCtxtReadFile(self._o, filename, encoding, options)
+ if ret is None:raise treeError('htmlCtxtReadFile() failed')
+ __tmp = xmlDoc(_obj=ret)
+ return __tmp
+
+ def htmlCtxtReadMemory(self, buffer, size, URL, encoding, options):
+ """parse an XML in-memory document and build a tree. This
+ reuses the existing @ctxt parser context """
+ ret = libxml2mod.htmlCtxtReadMemory(self._o, buffer, size, URL, encoding, options)
+ if ret is None:raise treeError('htmlCtxtReadMemory() failed')
+ __tmp = xmlDoc(_obj=ret)
+ return __tmp
+
+ def htmlCtxtReset(self):
+ """Reset a parser context """
+ libxml2mod.htmlCtxtReset(self._o)
+
+ def htmlCtxtUseOptions(self, options):
+ """Applies the options to the parser context """
+ ret = libxml2mod.htmlCtxtUseOptions(self._o, options)
+ return ret
+
+ def htmlFreeParserCtxt(self):
+ """Free all the memory used by a parser context. However the
+ parsed document in ctxt->myDoc is not freed. """
+ libxml2mod.htmlFreeParserCtxt(self._o)
+
+ def htmlParseCharRef(self):
+ """parse Reference declarations [66] CharRef ::= '&#' [0-9]+
+ ';' | '&#x' [0-9a-fA-F]+ ';' """
+ ret = libxml2mod.htmlParseCharRef(self._o)
+ return ret
+
+ def htmlParseChunk(self, chunk, size, terminate):
+ """Parse a Chunk of memory """
+ ret = libxml2mod.htmlParseChunk(self._o, chunk, size, terminate)
+ return ret
+
+ def htmlParseDocument(self):
+ """parse an HTML document (and build a tree if using the
+ standard SAX interface). """
+ ret = libxml2mod.htmlParseDocument(self._o)
+ return ret
+
+ def htmlParseElement(self):
+ """parse an HTML element, this is highly recursive this is
+ kept for compatibility with previous code versions [39]
+ element ::= EmptyElemTag | STag content ETag [41]
+ Attribute ::= Name Eq AttValue """
+ libxml2mod.htmlParseElement(self._o)
+
+ #
+ # parserCtxt functions from module parser
+ #
+
+ def byteConsumed(self):
+ """This function provides the current index of the parser
+ relative to the start of the current entity. This function
+ is computed in bytes from the beginning starting at zero
+ and finishing at the size in byte of the file if parsing a
+ file. The function is of constant cost if the input is
+ UTF-8 but can be costly if run on non-UTF-8 input. """
+ ret = libxml2mod.xmlByteConsumed(self._o)
+ return ret
+
+ def clearParserCtxt(self):
+ """Clear (release owned resources) and reinitialize a parser
+ context """
+ libxml2mod.xmlClearParserCtxt(self._o)
+
+ def ctxtReadDoc(self, cur, URL, encoding, options):
+ """parse an XML in-memory document and build a tree. This
+ reuses the existing @ctxt parser context """
+ ret = libxml2mod.xmlCtxtReadDoc(self._o, cur, URL, encoding, options)
+ if ret is None:raise treeError('xmlCtxtReadDoc() failed')
+ __tmp = xmlDoc(_obj=ret)
+ return __tmp
+
+ def ctxtReadFd(self, fd, URL, encoding, options):
+ """parse an XML from a file descriptor and build a tree. This
+ reuses the existing @ctxt parser context NOTE that the file
+ descriptor will not be closed when the reader is closed or
+ reset. """
+ ret = libxml2mod.xmlCtxtReadFd(self._o, fd, URL, encoding, options)
+ if ret is None:raise treeError('xmlCtxtReadFd() failed')
+ __tmp = xmlDoc(_obj=ret)
+ return __tmp
+
+ def ctxtReadFile(self, filename, encoding, options):
+ """parse an XML file from the filesystem or the network. This
+ reuses the existing @ctxt parser context """
+ ret = libxml2mod.xmlCtxtReadFile(self._o, filename, encoding, options)
+ if ret is None:raise treeError('xmlCtxtReadFile() failed')
+ __tmp = xmlDoc(_obj=ret)
+ return __tmp
+
+ def ctxtReadMemory(self, buffer, size, URL, encoding, options):
+ """parse an XML in-memory document and build a tree. This
+ reuses the existing @ctxt parser context """
+ ret = libxml2mod.xmlCtxtReadMemory(self._o, buffer, size, URL, encoding, options)
+ if ret is None:raise treeError('xmlCtxtReadMemory() failed')
+ __tmp = xmlDoc(_obj=ret)
+ return __tmp
+
+ def ctxtReset(self):
+ """Reset a parser context """
+ libxml2mod.xmlCtxtReset(self._o)
+
+ def ctxtResetPush(self, chunk, size, filename, encoding):
+ """Reset a push parser context """
+ ret = libxml2mod.xmlCtxtResetPush(self._o, chunk, size, filename, encoding)
+ return ret
+
+ def ctxtUseOptions(self, options):
+ """Applies the options to the parser context """
+ ret = libxml2mod.xmlCtxtUseOptions(self._o, options)
+ return ret
+
+ def initParserCtxt(self):
+ """Initialize a parser context """
+ ret = libxml2mod.xmlInitParserCtxt(self._o)
+ return ret
+
+ def parseChunk(self, chunk, size, terminate):
+ """Parse a Chunk of memory """
+ ret = libxml2mod.xmlParseChunk(self._o, chunk, size, terminate)
+ return ret
+
+ def parseDocument(self):
+ """parse an XML document (and build a tree if using the
+ standard SAX interface). [1] document ::= prolog element
+ Misc* [22] prolog ::= XMLDecl? Misc* (doctypedecl Misc*)? """
+ ret = libxml2mod.xmlParseDocument(self._o)
+ return ret
+
+ def parseExtParsedEnt(self):
+ """parse a general parsed entity An external general parsed
+ entity is well-formed if it matches the production labeled
+ extParsedEnt. [78] extParsedEnt ::= TextDecl? content """
+ ret = libxml2mod.xmlParseExtParsedEnt(self._o)
+ return ret
+
+ def setupParserForBuffer(self, buffer, filename):
+ """Setup the parser context to parse a new buffer; Clears any
+ prior contents from the parser context. The buffer
+ parameter must not be None, but the filename parameter can
+ be """
+ libxml2mod.xmlSetupParserForBuffer(self._o, buffer, filename)
+
+ def stopParser(self):
+ """Blocks further parser processing """
+ libxml2mod.xmlStopParser(self._o)
+
+ #
+ # parserCtxt functions from module parserInternals
+ #
+
+ def decodeEntities(self, len, what, end, end2, end3):
+ """This function is deprecated, we now always process entities
+ content through xmlStringDecodeEntities TODO: remove it in
+ next major release. [67] Reference ::= EntityRef | CharRef
+ [69] PEReference ::= '%' Name ';' """
+ ret = libxml2mod.xmlDecodeEntities(self._o, len, what, end, end2, end3)
+ return ret
+
+ def handleEntity(self, entity):
+ """Default handling of defined entities, when should we define
+ a new input stream ? When do we just handle that as a set
+ of chars ? OBSOLETE: to be removed at some point. """
+ if entity is None: entity__o = None
+ else: entity__o = entity._o
+ libxml2mod.xmlHandleEntity(self._o, entity__o)
+
+ def namespaceParseNCName(self):
+ """parse an XML namespace name. TODO: this seems not in use
+ anymore, the namespace handling is done on top of the SAX
+ interfaces, i.e. not on raw input. [NS 3] NCName ::=
+ (Letter | '_') (NCNameChar)* [NS 4] NCNameChar ::= Letter
+ | Digit | '.' | '-' | '_' | CombiningChar | Extender """
+ ret = libxml2mod.xmlNamespaceParseNCName(self._o)
+ return ret
+
+ def namespaceParseNSDef(self):
+ """parse a namespace prefix declaration TODO: this seems not
+ in use anymore, the namespace handling is done on top of
+ the SAX interfaces, i.e. not on raw input. [NS 1] NSDef
+ ::= PrefixDef Eq SystemLiteral [NS 2] PrefixDef ::=
+ 'xmlns' (':' NCName)? """
+ ret = libxml2mod.xmlNamespaceParseNSDef(self._o)
+ return ret
+
+ def nextChar(self):
+ """Skip to the next char input char. """
+ libxml2mod.xmlNextChar(self._o)
+
+ def parseAttValue(self):
+ """parse a value for an attribute Note: the parser won't do
+ substitution of entities here, this will be handled later
+ in xmlStringGetNodeList [10] AttValue ::= '"' ([^<&"] |
+ Reference)* '"' | "'" ([^<&'] | Reference)* "'" 3.3.3
+ Attribute-Value Normalization: Before the value of an
+ attribute is passed to the application or checked for
+ validity, the XML processor must normalize it as follows: -
+ a character reference is processed by appending the
+ referenced character to the attribute value - an entity
+ reference is processed by recursively processing the
+ replacement text of the entity - a whitespace character
+ (#x20, #xD, #xA, #x9) is processed by appending #x20 to the
+ normalized value, except that only a single #x20 is
+ appended for a "#xD#xA" sequence that is part of an
+ external parsed entity or the literal entity value of an
+ internal parsed entity - other characters are processed by
+ appending them to the normalized value If the declared
+ value is not CDATA, then the XML processor must further
+ process the normalized attribute value by discarding any
+ leading and trailing space (#x20) characters, and by
+ replacing sequences of space (#x20) characters by a single
+ space (#x20) character. All attributes for which no
+ declaration has been read should be treated by a
+ non-validating parser as if declared CDATA. """
+ ret = libxml2mod.xmlParseAttValue(self._o)
+ return ret
+
+ def parseAttributeListDecl(self):
+ """: parse the Attribute list def for an element [52]
+ AttlistDecl ::= '<!ATTLIST' S Name AttDef* S? '>' [53]
+ AttDef ::= S Name S AttType S DefaultDecl """
+ libxml2mod.xmlParseAttributeListDecl(self._o)
+
+ def parseCDSect(self):
+ """Parse escaped pure raw content. [18] CDSect ::= CDStart
+ CData CDEnd [19] CDStart ::= '<![CDATA[' [20] Data ::=
+ (Char* - (Char* ']]>' Char*)) [21] CDEnd ::= ']]>' """
+ libxml2mod.xmlParseCDSect(self._o)
+
+ def parseCharData(self, cdata):
+ """parse a CharData section. if we are within a CDATA section
+ ']]>' marks an end of section. The right angle bracket (>)
+ may be represented using the string "&gt;", and must, for
+ compatibility, be escaped using "&gt;" or a character
+ reference when it appears in the string "]]>" in content,
+ when that string is not marking the end of a CDATA section.
+ [14] CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*) """
+ libxml2mod.xmlParseCharData(self._o, cdata)
+
+ def parseCharRef(self):
+ """parse Reference declarations [66] CharRef ::= '&#' [0-9]+
+ ';' | '&#x' [0-9a-fA-F]+ ';' [ WFC: Legal Character ]
+ Characters referred to using character references must
+ match the production for Char. """
+ ret = libxml2mod.xmlParseCharRef(self._o)
+ return ret
+
+ def parseComment(self):
+ """Skip an XML (SGML) comment <!-- .... --> The spec says that
+ "For compatibility, the string "--" (double-hyphen) must
+ not occur within comments. " [15] Comment ::= '<!--'
+ ((Char - '-') | ('-' (Char - '-')))* '-->' """
+ libxml2mod.xmlParseComment(self._o)
+
+ def parseContent(self):
+ """Parse a content: [43] content ::= (element | CharData |
+ Reference | CDSect | PI | Comment)* """
+ libxml2mod.xmlParseContent(self._o)
+
+ def parseDocTypeDecl(self):
+ """parse a DOCTYPE declaration [28] doctypedecl ::=
+ '<!DOCTYPE' S Name (S ExternalID)? S? ('[' (markupdecl |
+ PEReference | S)* ']' S?)? '>' [ VC: Root Element Type ]
+ The Name in the document type declaration must match the
+ element type of the root element. """
+ libxml2mod.xmlParseDocTypeDecl(self._o)
+
+ def parseElement(self):
+ """parse an XML element [39] element ::= EmptyElemTag | STag
+ content ETag [ WFC: Element Type Match ] The Name in an
+ element's end-tag must match the element type in the
+ start-tag. """
+ libxml2mod.xmlParseElement(self._o)
+
+ def parseElementDecl(self):
+ """parse an Element declaration. [45] elementdecl ::=
+ '<!ELEMENT' S Name S contentspec S? '>' [ VC: Unique
+ Element Type Declaration ] No element type may be declared
+ more than once """
+ ret = libxml2mod.xmlParseElementDecl(self._o)
+ return ret
+
+ def parseEncName(self):
+ """parse the XML encoding name [81] EncName ::= [A-Za-z]
+ ([A-Za-z0-9._] | '-')* """
+ ret = libxml2mod.xmlParseEncName(self._o)
+ return ret
+
+ def parseEncodingDecl(self):
+ """parse the XML encoding declaration [80] EncodingDecl ::= S
+ 'encoding' Eq ('"' EncName '"' | "'" EncName "'") this
+ setups the conversion filters. """
+ ret = libxml2mod.xmlParseEncodingDecl(self._o)
+ return ret
+
+ def parseEndTag(self):
+ """parse an end of tag [42] ETag ::= '</' Name S? '>' With
+ namespace [NS 9] ETag ::= '</' QName S? '>' """
+ libxml2mod.xmlParseEndTag(self._o)
+
+ def parseEntityDecl(self):
+ """parse <!ENTITY declarations [70] EntityDecl ::= GEDecl |
+ PEDecl [71] GEDecl ::= '<!ENTITY' S Name S EntityDef S?
+ '>' [72] PEDecl ::= '<!ENTITY' S '%' S Name S PEDef S? '>'
+ [73] EntityDef ::= EntityValue | (ExternalID NDataDecl?)
+ [74] PEDef ::= EntityValue | ExternalID [76] NDataDecl ::=
+ S 'NDATA' S Name [ VC: Notation Declared ] The Name must
+ match the declared name of a notation. """
+ libxml2mod.xmlParseEntityDecl(self._o)
+
+ def parseEntityRef(self):
+ """parse ENTITY references declarations [68] EntityRef ::=
+ '&' Name ';' [ WFC: Entity Declared ] In a document
+ without any DTD, a document with only an internal DTD
+ subset which contains no parameter entity references, or a
+ document with "standalone='yes'", the Name given in the
+ entity reference must match that in an entity declaration,
+ except that well-formed documents need not declare any of
+ the following entities: amp, lt, gt, apos, quot. The
+ declaration of a parameter entity must precede any
+ reference to it. Similarly, the declaration of a general
+ entity must precede any reference to it which appears in a
+ default value in an attribute-list declaration. Note that
+ if entities are declared in the external subset or in
+ external parameter entities, a non-validating processor is
+ not obligated to read and process their declarations; for
+ such documents, the rule that an entity must be declared is
+ a well-formedness constraint only if standalone='yes'. [
+ WFC: Parsed Entity ] An entity reference must not contain
+ the name of an unparsed entity """
+ ret = libxml2mod.xmlParseEntityRef(self._o)
+ if ret is None:raise parserError('xmlParseEntityRef() failed')
+ __tmp = xmlEntity(_obj=ret)
+ return __tmp
+
+ def parseExternalSubset(self, ExternalID, SystemID):
+ """parse Markup declarations from an external subset [30]
+ extSubset ::= textDecl? extSubsetDecl [31] extSubsetDecl
+ ::= (markupdecl | conditionalSect | PEReference | S) * """
+ libxml2mod.xmlParseExternalSubset(self._o, ExternalID, SystemID)
+
+ def parseMarkupDecl(self):
+ """parse Markup declarations [29] markupdecl ::= elementdecl
+ | AttlistDecl | EntityDecl | NotationDecl | PI | Comment [
+ VC: Proper Declaration/PE Nesting ] Parameter-entity
+ replacement text must be properly nested with markup
+ declarations. That is to say, if either the first character
+ or the last character of a markup declaration (markupdecl
+ above) is contained in the replacement text for a
+ parameter-entity reference, both must be contained in the
+ same replacement text. [ WFC: PEs in Internal Subset ] In
+ the internal DTD subset, parameter-entity references can
+ occur only where markup declarations can occur, not within
+ markup declarations. (This does not apply to references
+ that occur in external parameter entities or to the
+ external subset.) """
+ libxml2mod.xmlParseMarkupDecl(self._o)
+
+ def parseMisc(self):
+ """parse an XML Misc* optional field. [27] Misc ::= Comment |
+ PI | S """
+ libxml2mod.xmlParseMisc(self._o)
+
+ def parseName(self):
+ """parse an XML name. [4] NameChar ::= Letter | Digit | '.' |
+ '-' | '_' | ':' | CombiningChar | Extender [5] Name ::=
+ (Letter | '_' | ':') (NameChar)* [6] Names ::= Name (#x20
+ Name)* """
+ ret = libxml2mod.xmlParseName(self._o)
+ return ret
+
+ def parseNamespace(self):
+ """xmlParseNamespace: parse specific PI '<?namespace ...'
+ constructs. This is what the older xml-name Working Draft
+ specified, a bunch of other stuff may still rely on it, so
+ support is still here as if it was declared on the root of
+ the Tree:-( TODO: remove from library To be removed at
+ next drop of binary compatibility """
+ libxml2mod.xmlParseNamespace(self._o)
+
+ def parseNmtoken(self):
+ """parse an XML Nmtoken. [7] Nmtoken ::= (NameChar)+ [8]
+ Nmtokens ::= Nmtoken (#x20 Nmtoken)* """
+ ret = libxml2mod.xmlParseNmtoken(self._o)
+ return ret
+
+ def parseNotationDecl(self):
+ """parse a notation declaration [82] NotationDecl ::=
+ '<!NOTATION' S Name S (ExternalID | PublicID) S? '>'
+ Hence there is actually 3 choices: 'PUBLIC' S PubidLiteral
+ 'PUBLIC' S PubidLiteral S SystemLiteral and 'SYSTEM' S
+ SystemLiteral See the NOTE on xmlParseExternalID(). """
+ libxml2mod.xmlParseNotationDecl(self._o)
+
+ def parsePEReference(self):
+ """parse PEReference declarations The entity content is
+ handled directly by pushing it's content as a new input
+ stream. [69] PEReference ::= '%' Name ';' [ WFC: No
+ Recursion ] A parsed entity must not contain a recursive
+ reference to itself, either directly or indirectly. [ WFC:
+ Entity Declared ] In a document without any DTD, a document
+ with only an internal DTD subset which contains no
+ parameter entity references, or a document with
+ "standalone='yes'", ... ... The declaration of a parameter
+ entity must precede any reference to it... [ VC: Entity
+ Declared ] In a document with an external subset or
+ external parameter entities with "standalone='no'", ...
+ ... The declaration of a parameter entity must precede any
+ reference to it... [ WFC: In DTD ] Parameter-entity
+ references may only appear in the DTD. NOTE: misleading but
+ this is handled. """
+ libxml2mod.xmlParsePEReference(self._o)
+
+ def parsePI(self):
+ """parse an XML Processing Instruction. [16] PI ::= '<?'
+ PITarget (S (Char* - (Char* '?>' Char*)))? '?>' The
+ processing is transferred to SAX once parsed. """
+ libxml2mod.xmlParsePI(self._o)
+
+ def parsePITarget(self):
+ """parse the name of a PI [17] PITarget ::= Name - (('X' |
+ 'x') ('M' | 'm') ('L' | 'l')) """
+ ret = libxml2mod.xmlParsePITarget(self._o)
+ return ret
+
+ def parsePubidLiteral(self):
+ """parse an XML public literal [12] PubidLiteral ::= '"'
+ PubidChar* '"' | "'" (PubidChar - "'")* "'" """
+ ret = libxml2mod.xmlParsePubidLiteral(self._o)
+ return ret
+
+ def parseQuotedString(self):
+ """Parse and return a string between quotes or doublequotes
+ TODO: Deprecated, to be removed at next drop of binary
+ compatibility """
+ ret = libxml2mod.xmlParseQuotedString(self._o)
+ return ret
+
+ def parseReference(self):
+ """parse and handle entity references in content, depending on
+ the SAX interface, this may end-up in a call to character()
+ if this is a CharRef, a predefined entity, if there is no
+ reference() callback. or if the parser was asked to switch
+ to that mode. [67] Reference ::= EntityRef | CharRef """
+ libxml2mod.xmlParseReference(self._o)
+
+ def parseSDDecl(self):
+ """parse the XML standalone declaration [32] SDDecl ::= S
+ 'standalone' Eq (("'" ('yes' | 'no') "'") | ('"' ('yes' |
+ 'no')'"')) [ VC: Standalone Document Declaration ] TODO
+ The standalone document declaration must have the value
+ "no" if any external markup declarations contain
+ declarations of: - attributes with default values, if
+ elements to which these attributes apply appear in the
+ document without specifications of values for these
+ attributes, or - entities (other than amp, lt, gt, apos,
+ quot), if references to those entities appear in the
+ document, or - attributes with values subject to
+ normalization, where the attribute appears in the document
+ with a value which will change as a result of
+ normalization, or - element types with element content, if
+ white space occurs directly within any instance of those
+ types. """
+ ret = libxml2mod.xmlParseSDDecl(self._o)
+ return ret
+
+ def parseStartTag(self):
+ """parse a start of tag either for rule element or
+ EmptyElement. In both case we don't parse the tag closing
+ chars. [40] STag ::= '<' Name (S Attribute)* S? '>' [
+ WFC: Unique Att Spec ] No attribute name may appear more
+ than once in the same start-tag or empty-element tag. [44]
+ EmptyElemTag ::= '<' Name (S Attribute)* S? '/>' [ WFC:
+ Unique Att Spec ] No attribute name may appear more than
+ once in the same start-tag or empty-element tag. With
+ namespace: [NS 8] STag ::= '<' QName (S Attribute)* S? '>'
+ [NS 10] EmptyElement ::= '<' QName (S Attribute)* S? '/>' """
+ ret = libxml2mod.xmlParseStartTag(self._o)
+ return ret
+
+ def parseSystemLiteral(self):
+ """parse an XML Literal [11] SystemLiteral ::= ('"' [^"]*
+ '"') | ("'" [^']* "'") """
+ ret = libxml2mod.xmlParseSystemLiteral(self._o)
+ return ret
+
+ def parseTextDecl(self):
+ """parse an XML declaration header for external entities [77]
+ TextDecl ::= '<?xml' VersionInfo? EncodingDecl S? '?>' """
+ libxml2mod.xmlParseTextDecl(self._o)
+
+ def parseVersionInfo(self):
+ """parse the XML version. [24] VersionInfo ::= S 'version' Eq
+ (' VersionNum ' | " VersionNum ") [25] Eq ::= S? '=' S? """
+ ret = libxml2mod.xmlParseVersionInfo(self._o)
+ return ret
+
+ def parseVersionNum(self):
+ """parse the XML version value. [26] VersionNum ::= '1.'
+ [0-9]+ In practice allow [0-9].[0-9]+ at that level """
+ ret = libxml2mod.xmlParseVersionNum(self._o)
+ return ret
+
+ def parseXMLDecl(self):
+ """parse an XML declaration header [23] XMLDecl ::= '<?xml'
+ VersionInfo EncodingDecl? SDDecl? S? '?>' """
+ libxml2mod.xmlParseXMLDecl(self._o)
+
+ def parserHandlePEReference(self):
+ """[69] PEReference ::= '%' Name ';' [ WFC: No Recursion ] A
+ parsed entity must not contain a recursive reference to
+ itself, either directly or indirectly. [ WFC: Entity
+ Declared ] In a document without any DTD, a document with
+ only an internal DTD subset which contains no parameter
+ entity references, or a document with "standalone='yes'",
+ ... ... The declaration of a parameter entity must precede
+ any reference to it... [ VC: Entity Declared ] In a
+ document with an external subset or external parameter
+ entities with "standalone='no'", ... ... The declaration
+ of a parameter entity must precede any reference to it...
+ [ WFC: In DTD ] Parameter-entity references may only appear
+ in the DTD. NOTE: misleading but this is handled. A
+ PEReference may have been detected in the current input
+ stream the handling is done accordingly to
+ http://www.w3.org/TR/REC-xml#entproc i.e. - Included in
+ literal in entity values - Included as Parameter Entity
+ reference within DTDs """
+ libxml2mod.xmlParserHandlePEReference(self._o)
+
+ def parserHandleReference(self):
+ """TODO: Remove, now deprecated ... the test is done directly
+ in the content parsing routines. [67] Reference ::=
+ EntityRef | CharRef [68] EntityRef ::= '&' Name ';' [
+ WFC: Entity Declared ] the Name given in the entity
+ reference must match that in an entity declaration, except
+ that well-formed documents need not declare any of the
+ following entities: amp, lt, gt, apos, quot. [ WFC: Parsed
+ Entity ] An entity reference must not contain the name of
+ an unparsed entity [66] CharRef ::= '&#' [0-9]+ ';' |
+ '&#x' [0-9a-fA-F]+ ';' A PEReference may have been
+ detected in the current input stream the handling is done
+ accordingly to http://www.w3.org/TR/REC-xml#entproc """
+ libxml2mod.xmlParserHandleReference(self._o)
+
+ def popInput(self):
+ """xmlPopInput: the current input pointed by ctxt->input came
+ to an end pop it and return the next char. """
+ ret = libxml2mod.xmlPopInput(self._o)
+ return ret
+
+ def scanName(self):
+ """Trickery: parse an XML name but without consuming the input
+ flow Needed for rollback cases. Used only when parsing
+ entities references. TODO: seems deprecated now, only used
+ in the default part of xmlParserHandleReference [4]
+ NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' |
+ CombiningChar | Extender [5] Name ::= (Letter | '_' | ':')
+ (NameChar)* [6] Names ::= Name (S Name)* """
+ ret = libxml2mod.xmlScanName(self._o)
+ return ret
+
+ def skipBlankChars(self):
+ """skip all blanks character found at that point in the input
+ streams. It pops up finished entities in the process if
+ allowable at that point. """
+ ret = libxml2mod.xmlSkipBlankChars(self._o)
+ return ret
+
+ def stringDecodeEntities(self, str, what, end, end2, end3):
+ """Takes a entity string content and process to do the
+ adequate substitutions. [67] Reference ::= EntityRef |
+ CharRef [69] PEReference ::= '%' Name ';' """
+ ret = libxml2mod.xmlStringDecodeEntities(self._o, str, what, end, end2, end3)
+ return ret
+
+ def stringLenDecodeEntities(self, str, len, what, end, end2, end3):
+ """Takes a entity string content and process to do the
+ adequate substitutions. [67] Reference ::= EntityRef |
+ CharRef [69] PEReference ::= '%' Name ';' """
+ ret = libxml2mod.xmlStringLenDecodeEntities(self._o, str, len, what, end, end2, end3)
+ return ret
+
+class xmlAttr(xmlNode):
+ def __init__(self, _obj=None):
+ if checkWrapper(_obj) != 0: raise TypeError('xmlAttr got a wrong wrapper object type')
+ self._o = _obj
+ xmlNode.__init__(self, _obj=_obj)
+
+ def __repr__(self):
+ return "<xmlAttr (%s) object at 0x%x>" % (self.name, int(pos_id (self)))
+
+ #
+ # xmlAttr functions from module debugXML
+ #
+
+ def debugDumpAttr(self, output, depth):
+ """Dumps debug information for the attribute """
+ libxml2mod.xmlDebugDumpAttr(output, self._o, depth)
+
+ def debugDumpAttrList(self, output, depth):
+ """Dumps debug information for the attribute list """
+ libxml2mod.xmlDebugDumpAttrList(output, self._o, depth)
+
+ #
+ # xmlAttr functions from module tree
+ #
+
+ def copyProp(self, target):
+ """Do a copy of the attribute. """
+ if target is None: target__o = None
+ else: target__o = target._o
+ ret = libxml2mod.xmlCopyProp(target__o, self._o)
+ if ret is None:raise treeError('xmlCopyProp() failed')
+ __tmp = xmlAttr(_obj=ret)
+ return __tmp
+
+ def copyPropList(self, target):
+ """Do a copy of an attribute list. """
+ if target is None: target__o = None
+ else: target__o = target._o
+ ret = libxml2mod.xmlCopyPropList(target__o, self._o)
+ if ret is None:raise treeError('xmlCopyPropList() failed')
+ __tmp = xmlAttr(_obj=ret)
+ return __tmp
+
+ def freeProp(self):
+ """Free one attribute, all the content is freed too """
+ libxml2mod.xmlFreeProp(self._o)
+
+ def freePropList(self):
+ """Free a property and all its siblings, all the children are
+ freed too. """
+ libxml2mod.xmlFreePropList(self._o)
+
+ def removeProp(self):
+ """Unlink and free one attribute, all the content is freed too
+ Note this doesn't work for namespace definition attributes """
+ ret = libxml2mod.xmlRemoveProp(self._o)
+ return ret
+
+ #
+ # xmlAttr functions from module valid
+ #
+
+ def removeID(self, doc):
+ """Remove the given attribute from the ID table maintained
+ internally. """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ ret = libxml2mod.xmlRemoveID(doc__o, self._o)
+ return ret
+
+ def removeRef(self, doc):
+ """Remove the given attribute from the Ref table maintained
+ internally. """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ ret = libxml2mod.xmlRemoveRef(doc__o, self._o)
+ return ret
+
+class xmlAttribute(xmlNode):
+ def __init__(self, _obj=None):
+ if checkWrapper(_obj) != 0: raise TypeError('xmlAttribute got a wrong wrapper object type')
+ self._o = _obj
+ xmlNode.__init__(self, _obj=_obj)
+
+ def __repr__(self):
+ return "<xmlAttribute (%s) object at 0x%x>" % (self.name, int(pos_id (self)))
+
+class catalog:
+ def __init__(self, _obj=None):
+ if _obj != None:self._o = _obj;return
+ self._o = None
+
+ def __del__(self):
+ if self._o != None:
+ libxml2mod.xmlFreeCatalog(self._o)
+ self._o = None
+
+ #
+ # catalog functions from module catalog
+ #
+
+ def add(self, type, orig, replace):
+ """Add an entry in the catalog, it may overwrite existing but
+ different entries. """
+ ret = libxml2mod.xmlACatalogAdd(self._o, type, orig, replace)
+ return ret
+
+ def catalogIsEmpty(self):
+ """Check is a catalog is empty """
+ ret = libxml2mod.xmlCatalogIsEmpty(self._o)
+ return ret
+
+ def convertSGMLCatalog(self):
+ """Convert all the SGML catalog entries as XML ones """
+ ret = libxml2mod.xmlConvertSGMLCatalog(self._o)
+ return ret
+
+ def dump(self, out):
+ """Dump the given catalog to the given file. """
+ libxml2mod.xmlACatalogDump(self._o, out)
+
+ def remove(self, value):
+ """Remove an entry from the catalog """
+ ret = libxml2mod.xmlACatalogRemove(self._o, value)
+ return ret
+
+ def resolve(self, pubID, sysID):
+ """Do a complete resolution lookup of an External Identifier """
+ ret = libxml2mod.xmlACatalogResolve(self._o, pubID, sysID)
+ return ret
+
+ def resolvePublic(self, pubID):
+ """Try to lookup the catalog local reference associated to a
+ public ID in that catalog """
+ ret = libxml2mod.xmlACatalogResolvePublic(self._o, pubID)
+ return ret
+
+ def resolveSystem(self, sysID):
+ """Try to lookup the catalog resource for a system ID """
+ ret = libxml2mod.xmlACatalogResolveSystem(self._o, sysID)
+ return ret
+
+ def resolveURI(self, URI):
+ """Do a complete resolution lookup of an URI """
+ ret = libxml2mod.xmlACatalogResolveURI(self._o, URI)
+ return ret
+
+class xmlDtd(xmlNode):
+ def __init__(self, _obj=None):
+ if checkWrapper(_obj) != 0: raise TypeError('xmlDtd got a wrong wrapper object type')
+ self._o = _obj
+ xmlNode.__init__(self, _obj=_obj)
+
+ def __repr__(self):
+ return "<xmlDtd (%s) object at 0x%x>" % (self.name, int(pos_id (self)))
+
+ #
+ # xmlDtd functions from module debugXML
+ #
+
+ def debugDumpDTD(self, output):
+ """Dumps debug information for the DTD """
+ libxml2mod.xmlDebugDumpDTD(output, self._o)
+
+ #
+ # xmlDtd functions from module tree
+ #
+
+ def copyDtd(self):
+ """Do a copy of the dtd. """
+ ret = libxml2mod.xmlCopyDtd(self._o)
+ if ret is None:raise treeError('xmlCopyDtd() failed')
+ __tmp = xmlDtd(_obj=ret)
+ return __tmp
+
+ def freeDtd(self):
+ """Free a DTD structure. """
+ libxml2mod.xmlFreeDtd(self._o)
+
+ #
+ # xmlDtd functions from module valid
+ #
+
+ def dtdAttrDesc(self, elem, name):
+ """Search the DTD for the description of this attribute on
+ this element. """
+ ret = libxml2mod.xmlGetDtdAttrDesc(self._o, elem, name)
+ if ret is None:raise treeError('xmlGetDtdAttrDesc() failed')
+ __tmp = xmlAttribute(_obj=ret)
+ return __tmp
+
+ def dtdElementDesc(self, name):
+ """Search the DTD for the description of this element """
+ ret = libxml2mod.xmlGetDtdElementDesc(self._o, name)
+ if ret is None:raise treeError('xmlGetDtdElementDesc() failed')
+ __tmp = xmlElement(_obj=ret)
+ return __tmp
+
+ def dtdQAttrDesc(self, elem, name, prefix):
+ """Search the DTD for the description of this qualified
+ attribute on this element. """
+ ret = libxml2mod.xmlGetDtdQAttrDesc(self._o, elem, name, prefix)
+ if ret is None:raise treeError('xmlGetDtdQAttrDesc() failed')
+ __tmp = xmlAttribute(_obj=ret)
+ return __tmp
+
+ def dtdQElementDesc(self, name, prefix):
+ """Search the DTD for the description of this element """
+ ret = libxml2mod.xmlGetDtdQElementDesc(self._o, name, prefix)
+ if ret is None:raise treeError('xmlGetDtdQElementDesc() failed')
+ __tmp = xmlElement(_obj=ret)
+ return __tmp
+
+class xmlElement(xmlNode):
+ def __init__(self, _obj=None):
+ if checkWrapper(_obj) != 0: raise TypeError('xmlElement got a wrong wrapper object type')
+ self._o = _obj
+ xmlNode.__init__(self, _obj=_obj)
+
+ def __repr__(self):
+ return "<xmlElement (%s) object at 0x%x>" % (self.name, int(pos_id (self)))
+
+class xmlEntity(xmlNode):
+ def __init__(self, _obj=None):
+ if checkWrapper(_obj) != 0: raise TypeError('xmlEntity got a wrong wrapper object type')
+ self._o = _obj
+ xmlNode.__init__(self, _obj=_obj)
+
+ def __repr__(self):
+ return "<xmlEntity (%s) object at 0x%x>" % (self.name, int(pos_id (self)))
+
+ #
+ # xmlEntity functions from module parserInternals
+ #
+
+ def handleEntity(self, ctxt):
+ """Default handling of defined entities, when should we define
+ a new input stream ? When do we just handle that as a set
+ of chars ? OBSOLETE: to be removed at some point. """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ libxml2mod.xmlHandleEntity(ctxt__o, self._o)
+
+class Error:
+ def __init__(self, _obj=None):
+ if _obj != None:self._o = _obj;return
+ self._o = None
+
+ # accessors for Error
+ def code(self):
+ """The error code, e.g. an xmlParserError """
+ ret = libxml2mod.xmlErrorGetCode(self._o)
+ return ret
+
+ def domain(self):
+ """What part of the library raised this error """
+ ret = libxml2mod.xmlErrorGetDomain(self._o)
+ return ret
+
+ def file(self):
+ """the filename """
+ ret = libxml2mod.xmlErrorGetFile(self._o)
+ return ret
+
+ def level(self):
+ """how consequent is the error """
+ ret = libxml2mod.xmlErrorGetLevel(self._o)
+ return ret
+
+ def line(self):
+ """the line number if available """
+ ret = libxml2mod.xmlErrorGetLine(self._o)
+ return ret
+
+ def message(self):
+ """human-readable informative error message """
+ ret = libxml2mod.xmlErrorGetMessage(self._o)
+ return ret
+
+ #
+ # Error functions from module xmlerror
+ #
+
+ def copyError(self, to):
+ """Save the original error to the new place. """
+ if to is None: to__o = None
+ else: to__o = to._o
+ ret = libxml2mod.xmlCopyError(self._o, to__o)
+ return ret
+
+ def resetError(self):
+ """Cleanup the error. """
+ libxml2mod.xmlResetError(self._o)
+
+class xmlNs(xmlNode):
+ def __init__(self, _obj=None):
+ if checkWrapper(_obj) != 0: raise TypeError('xmlNs got a wrong wrapper object type')
+ self._o = _obj
+ xmlNode.__init__(self, _obj=_obj)
+
+ def __repr__(self):
+ return "<xmlNs (%s) object at 0x%x>" % (self.name, int(pos_id (self)))
+
+ #
+ # xmlNs functions from module tree
+ #
+
+ def copyNamespace(self):
+ """Do a copy of the namespace. """
+ ret = libxml2mod.xmlCopyNamespace(self._o)
+ if ret is None:raise treeError('xmlCopyNamespace() failed')
+ __tmp = xmlNs(_obj=ret)
+ return __tmp
+
+ def copyNamespaceList(self):
+ """Do a copy of an namespace list. """
+ ret = libxml2mod.xmlCopyNamespaceList(self._o)
+ if ret is None:raise treeError('xmlCopyNamespaceList() failed')
+ __tmp = xmlNs(_obj=ret)
+ return __tmp
+
+ def freeNs(self):
+ """Free up the structures associated to a namespace """
+ libxml2mod.xmlFreeNs(self._o)
+
+ def freeNsList(self):
+ """Free up all the structures associated to the chained
+ namespaces. """
+ libxml2mod.xmlFreeNsList(self._o)
+
+ def newChild(self, parent, name, content):
+ """Creation of a new child element, added at the end of
+ @parent children list. @ns and @content parameters are
+ optional (None). If @ns is None, the newly created element
+ inherits the namespace of @parent. If @content is non None,
+ a child list containing the TEXTs and ENTITY_REFs node will
+ be created. NOTE: @content is supposed to be a piece of XML
+ CDATA, so it allows entity references. XML special chars
+ must be escaped first by using
+ xmlEncodeEntitiesReentrant(), or xmlNewTextChild() should
+ be used. """
+ if parent is None: parent__o = None
+ else: parent__o = parent._o
+ ret = libxml2mod.xmlNewChild(parent__o, self._o, name, content)
+ if ret is None:raise treeError('xmlNewChild() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def newDocNode(self, doc, name, content):
+ """Creation of a new node element within a document. @ns and
+ @content are optional (None). NOTE: @content is supposed to
+ be a piece of XML CDATA, so it allow entities references,
+ but XML special chars need to be escaped first by using
+ xmlEncodeEntitiesReentrant(). Use xmlNewDocRawNode() if you
+ don't need entities support. """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ ret = libxml2mod.xmlNewDocNode(doc__o, self._o, name, content)
+ if ret is None:raise treeError('xmlNewDocNode() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def newDocNodeEatName(self, doc, name, content):
+ """Creation of a new node element within a document. @ns and
+ @content are optional (None). NOTE: @content is supposed to
+ be a piece of XML CDATA, so it allow entities references,
+ but XML special chars need to be escaped first by using
+ xmlEncodeEntitiesReentrant(). Use xmlNewDocRawNode() if you
+ don't need entities support. """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ ret = libxml2mod.xmlNewDocNodeEatName(doc__o, self._o, name, content)
+ if ret is None:raise treeError('xmlNewDocNodeEatName() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def newDocRawNode(self, doc, name, content):
+ """Creation of a new node element within a document. @ns and
+ @content are optional (None). """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ ret = libxml2mod.xmlNewDocRawNode(doc__o, self._o, name, content)
+ if ret is None:raise treeError('xmlNewDocRawNode() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def newNodeEatName(self, name):
+ """Creation of a new node element. @ns is optional (None). """
+ ret = libxml2mod.xmlNewNodeEatName(self._o, name)
+ if ret is None:raise treeError('xmlNewNodeEatName() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def newNsProp(self, node, name, value):
+ """Create a new property tagged with a namespace and carried
+ by a node. """
+ if node is None: node__o = None
+ else: node__o = node._o
+ ret = libxml2mod.xmlNewNsProp(node__o, self._o, name, value)
+ if ret is None:raise treeError('xmlNewNsProp() failed')
+ __tmp = xmlAttr(_obj=ret)
+ return __tmp
+
+ def newNsPropEatName(self, node, name, value):
+ """Create a new property tagged with a namespace and carried
+ by a node. """
+ if node is None: node__o = None
+ else: node__o = node._o
+ ret = libxml2mod.xmlNewNsPropEatName(node__o, self._o, name, value)
+ if ret is None:raise treeError('xmlNewNsPropEatName() failed')
+ __tmp = xmlAttr(_obj=ret)
+ return __tmp
+
+ def newTextChild(self, parent, name, content):
+ """Creation of a new child element, added at the end of
+ @parent children list. @ns and @content parameters are
+ optional (None). If @ns is None, the newly created element
+ inherits the namespace of @parent. If @content is non None,
+ a child TEXT node will be created containing the string
+ @content. NOTE: Use xmlNewChild() if @content will contain
+ entities that need to be preserved. Use this function,
+ xmlNewTextChild(), if you need to ensure that reserved XML
+ chars that might appear in @content, such as the ampersand,
+ greater-than or less-than signs, are automatically replaced
+ by their XML escaped entity representations. """
+ if parent is None: parent__o = None
+ else: parent__o = parent._o
+ ret = libxml2mod.xmlNewTextChild(parent__o, self._o, name, content)
+ if ret is None:raise treeError('xmlNewTextChild() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def setNs(self, node):
+ """Associate a namespace to a node, a posteriori. """
+ if node is None: node__o = None
+ else: node__o = node._o
+ libxml2mod.xmlSetNs(node__o, self._o)
+
+ def setNsProp(self, node, name, value):
+ """Set (or reset) an attribute carried by a node. The ns
+ structure must be in scope, this is not checked """
+ if node is None: node__o = None
+ else: node__o = node._o
+ ret = libxml2mod.xmlSetNsProp(node__o, self._o, name, value)
+ if ret is None:raise treeError('xmlSetNsProp() failed')
+ __tmp = xmlAttr(_obj=ret)
+ return __tmp
+
+ def unsetNsProp(self, node, name):
+ """Remove an attribute carried by a node. """
+ if node is None: node__o = None
+ else: node__o = node._o
+ ret = libxml2mod.xmlUnsetNsProp(node__o, self._o, name)
+ return ret
+
+ #
+ # xmlNs functions from module xpathInternals
+ #
+
+ def xpathNodeSetFreeNs(self):
+ """Namespace nodes in libxml don't match the XPath semantic.
+ In a node set the namespace nodes are duplicated and the
+ next pointer is set to the parent node in the XPath
+ semantic. Check if such a node needs to be freed """
+ libxml2mod.xmlXPathNodeSetFreeNs(self._o)
+
+class outputBuffer(ioWriteWrapper):
+ def __init__(self, _obj=None):
+ self._o = _obj
+ ioWriteWrapper.__init__(self, _obj=_obj)
+
+ #
+ # outputBuffer functions from module HTMLtree
+ #
+
+ def htmlDocContentDumpFormatOutput(self, cur, encoding, format):
+ """Dump an HTML document. """
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ libxml2mod.htmlDocContentDumpFormatOutput(self._o, cur__o, encoding, format)
+
+ def htmlDocContentDumpOutput(self, cur, encoding):
+ """Dump an HTML document. Formatting return/spaces are added. """
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ libxml2mod.htmlDocContentDumpOutput(self._o, cur__o, encoding)
+
+ def htmlNodeDumpFormatOutput(self, doc, cur, encoding, format):
+ """Dump an HTML node, recursive behaviour,children are printed
+ too. """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ libxml2mod.htmlNodeDumpFormatOutput(self._o, doc__o, cur__o, encoding, format)
+
+ def htmlNodeDumpOutput(self, doc, cur, encoding):
+ """Dump an HTML node, recursive behaviour,children are printed
+ too, and formatting returns/spaces are added. """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ libxml2mod.htmlNodeDumpOutput(self._o, doc__o, cur__o, encoding)
+
+ #
+ # outputBuffer functions from module tree
+ #
+
+ def nodeDumpOutput(self, doc, cur, level, format, encoding):
+ """Dump an XML node, recursive behaviour, children are printed
+ too. Note that @format = 1 provide node indenting only if
+ xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was
+ called """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ libxml2mod.xmlNodeDumpOutput(self._o, doc__o, cur__o, level, format, encoding)
+
+ def saveFileTo(self, cur, encoding):
+ """Dump an XML document to an I/O buffer. Warning ! This call
+ xmlOutputBufferClose() on buf which is not available after
+ this call. """
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ ret = libxml2mod.xmlSaveFileTo(self._o, cur__o, encoding)
+ return ret
+
+ def saveFormatFileTo(self, cur, encoding, format):
+ """Dump an XML document to an I/O buffer. Warning ! This call
+ xmlOutputBufferClose() on buf which is not available after
+ this call. """
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ ret = libxml2mod.xmlSaveFormatFileTo(self._o, cur__o, encoding, format)
+ return ret
+
+ #
+ # outputBuffer functions from module xmlIO
+ #
+
+ def getContent(self):
+ """Gives a pointer to the data currently held in the output
+ buffer """
+ ret = libxml2mod.xmlOutputBufferGetContent(self._o)
+ return ret
+
+ def write(self, len, buf):
+ """Write the content of the array in the output I/O buffer
+ This routine handle the I18N transcoding from internal
+ UTF-8 The buffer is lossless, i.e. will store in case of
+ partial or delayed writes. """
+ ret = libxml2mod.xmlOutputBufferWrite(self._o, len, buf)
+ return ret
+
+ def writeString(self, str):
+ """Write the content of the string in the output I/O buffer
+ This routine handle the I18N transcoding from internal
+ UTF-8 The buffer is lossless, i.e. will store in case of
+ partial or delayed writes. """
+ ret = libxml2mod.xmlOutputBufferWriteString(self._o, str)
+ return ret
+
+class inputBuffer(ioReadWrapper):
+ def __init__(self, _obj=None):
+ self._o = _obj
+ ioReadWrapper.__init__(self, _obj=_obj)
+
+ def __del__(self):
+ if self._o != None:
+ libxml2mod.xmlFreeParserInputBuffer(self._o)
+ self._o = None
+
+ #
+ # inputBuffer functions from module xmlIO
+ #
+
+ def grow(self, len):
+ """Grow up the content of the input buffer, the old data are
+ preserved This routine handle the I18N transcoding to
+ internal UTF-8 This routine is used when operating the
+ parser in normal (pull) mode TODO: one should be able to
+ remove one extra copy by copying directly onto in->buffer
+ or in->raw """
+ ret = libxml2mod.xmlParserInputBufferGrow(self._o, len)
+ return ret
+
+ def push(self, len, buf):
+ """Push the content of the arry in the input buffer This
+ routine handle the I18N transcoding to internal UTF-8 This
+ is used when operating the parser in progressive (push)
+ mode. """
+ ret = libxml2mod.xmlParserInputBufferPush(self._o, len, buf)
+ return ret
+
+ def read(self, len):
+ """Refresh the content of the input buffer, the old data are
+ considered consumed This routine handle the I18N
+ transcoding to internal UTF-8 """
+ ret = libxml2mod.xmlParserInputBufferRead(self._o, len)
+ return ret
+
+ #
+ # inputBuffer functions from module xmlreader
+ #
+
+ def Setup(self, reader, URL, encoding, options):
+ """Setup an XML reader with new options """
+ if reader is None: reader__o = None
+ else: reader__o = reader._o
+ ret = libxml2mod.xmlTextReaderSetup(reader__o, self._o, URL, encoding, options)
+ return ret
+
+ def newTextReader(self, URI):
+ """Create an xmlTextReader structure fed with @input """
+ ret = libxml2mod.xmlNewTextReader(self._o, URI)
+ if ret is None:raise treeError('xmlNewTextReader() failed')
+ __tmp = xmlTextReader(_obj=ret)
+ __tmp.input = self
+ return __tmp
+
+class xmlReg:
+ def __init__(self, _obj=None):
+ if _obj != None:self._o = _obj;return
+ self._o = None
+
+ def __del__(self):
+ if self._o != None:
+ libxml2mod.xmlRegFreeRegexp(self._o)
+ self._o = None
+
+ #
+ # xmlReg functions from module xmlregexp
+ #
+
+ def regexpExec(self, content):
+ """Check if the regular expression generates the value """
+ ret = libxml2mod.xmlRegexpExec(self._o, content)
+ return ret
+
+ def regexpIsDeterminist(self):
+ """Check if the regular expression is determinist """
+ ret = libxml2mod.xmlRegexpIsDeterminist(self._o)
+ return ret
+
+ def regexpPrint(self, output):
+ """Print the content of the compiled regular expression """
+ libxml2mod.xmlRegexpPrint(output, self._o)
+
+class relaxNgParserCtxt:
+ def __init__(self, _obj=None):
+ if _obj != None:self._o = _obj;return
+ self._o = None
+
+ def __del__(self):
+ if self._o != None:
+ libxml2mod.xmlRelaxNGFreeParserCtxt(self._o)
+ self._o = None
+
+ #
+ # relaxNgParserCtxt functions from module relaxng
+ #
+
+ def relaxNGParse(self):
+ """parse a schema definition resource and build an internal
+ XML Schema structure which can be used to validate
+ instances. """
+ ret = libxml2mod.xmlRelaxNGParse(self._o)
+ if ret is None:raise parserError('xmlRelaxNGParse() failed')
+ __tmp = relaxNgSchema(_obj=ret)
+ return __tmp
+
+ def relaxParserSetFlag(self, flags):
+ """Semi private function used to pass informations to a parser
+ context which are a combination of xmlRelaxNGParserFlag . """
+ ret = libxml2mod.xmlRelaxParserSetFlag(self._o, flags)
+ return ret
+
+class relaxNgSchema:
+ def __init__(self, _obj=None):
+ if _obj != None:self._o = _obj;return
+ self._o = None
+
+ def __del__(self):
+ if self._o != None:
+ libxml2mod.xmlRelaxNGFree(self._o)
+ self._o = None
+
+ #
+ # relaxNgSchema functions from module relaxng
+ #
+
+ def relaxNGDump(self, output):
+ """Dump a RelaxNG structure back """
+ libxml2mod.xmlRelaxNGDump(output, self._o)
+
+ def relaxNGDumpTree(self, output):
+ """Dump the transformed RelaxNG tree. """
+ libxml2mod.xmlRelaxNGDumpTree(output, self._o)
+
+ def relaxNGNewValidCtxt(self):
+ """Create an XML RelaxNGs validation context based on the
+ given schema """
+ ret = libxml2mod.xmlRelaxNGNewValidCtxt(self._o)
+ if ret is None:raise treeError('xmlRelaxNGNewValidCtxt() failed')
+ __tmp = relaxNgValidCtxt(_obj=ret)
+ __tmp.schema = self
+ return __tmp
+
+ #
+ # relaxNgSchema functions from module xmlreader
+ #
+
+ def RelaxNGSetSchema(self, reader):
+ """Use RelaxNG to validate the document as it is processed.
+ Activation is only possible before the first Read(). if
+ @schema is None, then RelaxNG validation is deactivated. @
+ The @schema should not be freed until the reader is
+ deallocated or its use has been deactivated. """
+ if reader is None: reader__o = None
+ else: reader__o = reader._o
+ ret = libxml2mod.xmlTextReaderRelaxNGSetSchema(reader__o, self._o)
+ return ret
+
+class relaxNgValidCtxt(relaxNgValidCtxtCore):
+ def __init__(self, _obj=None):
+ self.schema = None
+ self._o = _obj
+ relaxNgValidCtxtCore.__init__(self, _obj=_obj)
+
+ def __del__(self):
+ if self._o != None:
+ libxml2mod.xmlRelaxNGFreeValidCtxt(self._o)
+ self._o = None
+
+ #
+ # relaxNgValidCtxt functions from module relaxng
+ #
+
+ def relaxNGValidateDoc(self, doc):
+ """Validate a document tree in memory. """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ ret = libxml2mod.xmlRelaxNGValidateDoc(self._o, doc__o)
+ return ret
+
+ def relaxNGValidateFullElement(self, doc, elem):
+ """Validate a full subtree when
+ xmlRelaxNGValidatePushElement() returned 0 and the content
+ of the node has been expanded. """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ if elem is None: elem__o = None
+ else: elem__o = elem._o
+ ret = libxml2mod.xmlRelaxNGValidateFullElement(self._o, doc__o, elem__o)
+ return ret
+
+ def relaxNGValidatePopElement(self, doc, elem):
+ """Pop the element end from the RelaxNG validation stack. """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ if elem is None: elem__o = None
+ else: elem__o = elem._o
+ ret = libxml2mod.xmlRelaxNGValidatePopElement(self._o, doc__o, elem__o)
+ return ret
+
+ def relaxNGValidatePushCData(self, data, len):
+ """check the CData parsed for validation in the current stack """
+ ret = libxml2mod.xmlRelaxNGValidatePushCData(self._o, data, len)
+ return ret
+
+ def relaxNGValidatePushElement(self, doc, elem):
+ """Push a new element start on the RelaxNG validation stack. """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ if elem is None: elem__o = None
+ else: elem__o = elem._o
+ ret = libxml2mod.xmlRelaxNGValidatePushElement(self._o, doc__o, elem__o)
+ return ret
+
+ #
+ # relaxNgValidCtxt functions from module xmlreader
+ #
+
+ def RelaxNGValidateCtxt(self, reader, options):
+ """Use RelaxNG schema context to validate the document as it
+ is processed. Activation is only possible before the first
+ Read(). If @ctxt is None, then RelaxNG schema validation is
+ deactivated. """
+ if reader is None: reader__o = None
+ else: reader__o = reader._o
+ ret = libxml2mod.xmlTextReaderRelaxNGValidateCtxt(reader__o, self._o, options)
+ return ret
+
+class SchemaParserCtxt:
+ def __init__(self, _obj=None):
+ if _obj != None:self._o = _obj;return
+ self._o = None
+
+ def __del__(self):
+ if self._o != None:
+ libxml2mod.xmlSchemaFreeParserCtxt(self._o)
+ self._o = None
+
+ #
+ # SchemaParserCtxt functions from module xmlschemas
+ #
+
+ def schemaParse(self):
+ """parse a schema definition resource and build an internal
+ XML Schema structure which can be used to validate
+ instances. """
+ ret = libxml2mod.xmlSchemaParse(self._o)
+ if ret is None:raise parserError('xmlSchemaParse() failed')
+ __tmp = Schema(_obj=ret)
+ return __tmp
+
+class Schema:
+ def __init__(self, _obj=None):
+ if _obj != None:self._o = _obj;return
+ self._o = None
+
+ def __del__(self):
+ if self._o != None:
+ libxml2mod.xmlSchemaFree(self._o)
+ self._o = None
+
+ #
+ # Schema functions from module xmlreader
+ #
+
+ def SetSchema(self, reader):
+ """Use XSD Schema to validate the document as it is processed.
+ Activation is only possible before the first Read(). if
+ @schema is None, then Schema validation is deactivated. The
+ @schema should not be freed until the reader is deallocated
+ or its use has been deactivated. """
+ if reader is None: reader__o = None
+ else: reader__o = reader._o
+ ret = libxml2mod.xmlTextReaderSetSchema(reader__o, self._o)
+ return ret
+
+ #
+ # Schema functions from module xmlschemas
+ #
+
+ def schemaDump(self, output):
+ """Dump a Schema structure. """
+ libxml2mod.xmlSchemaDump(output, self._o)
+
+ def schemaNewValidCtxt(self):
+ """Create an XML Schemas validation context based on the given
+ schema. """
+ ret = libxml2mod.xmlSchemaNewValidCtxt(self._o)
+ if ret is None:raise treeError('xmlSchemaNewValidCtxt() failed')
+ __tmp = SchemaValidCtxt(_obj=ret)
+ __tmp.schema = self
+ return __tmp
+
+class SchemaValidCtxt(SchemaValidCtxtCore):
+ def __init__(self, _obj=None):
+ self.schema = None
+ self._o = _obj
+ SchemaValidCtxtCore.__init__(self, _obj=_obj)
+
+ def __del__(self):
+ if self._o != None:
+ libxml2mod.xmlSchemaFreeValidCtxt(self._o)
+ self._o = None
+
+ #
+ # SchemaValidCtxt functions from module xmlreader
+ #
+
+ def SchemaValidateCtxt(self, reader, options):
+ """Use W3C XSD schema context to validate the document as it
+ is processed. Activation is only possible before the first
+ Read(). If @ctxt is None, then XML Schema validation is
+ deactivated. """
+ if reader is None: reader__o = None
+ else: reader__o = reader._o
+ ret = libxml2mod.xmlTextReaderSchemaValidateCtxt(reader__o, self._o, options)
+ return ret
+
+ #
+ # SchemaValidCtxt functions from module xmlschemas
+ #
+
+ def schemaIsValid(self):
+ """Check if any error was detected during validation. """
+ ret = libxml2mod.xmlSchemaIsValid(self._o)
+ return ret
+
+ def schemaSetValidOptions(self, options):
+ """Sets the options to be used during the validation. """
+ ret = libxml2mod.xmlSchemaSetValidOptions(self._o, options)
+ return ret
+
+ def schemaValidCtxtGetOptions(self):
+ """Get the validation context options. """
+ ret = libxml2mod.xmlSchemaValidCtxtGetOptions(self._o)
+ return ret
+
+ def schemaValidCtxtGetParserCtxt(self):
+ """allow access to the parser context of the schema validation
+ context """
+ ret = libxml2mod.xmlSchemaValidCtxtGetParserCtxt(self._o)
+ if ret is None:raise parserError('xmlSchemaValidCtxtGetParserCtxt() failed')
+ __tmp = parserCtxt(_obj=ret)
+ return __tmp
+
+ def schemaValidateDoc(self, doc):
+ """Validate a document tree in memory. """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ ret = libxml2mod.xmlSchemaValidateDoc(self._o, doc__o)
+ return ret
+
+ def schemaValidateFile(self, filename, options):
+ """Do a schemas validation of the given resource, it will use
+ the SAX streamable validation internally. """
+ ret = libxml2mod.xmlSchemaValidateFile(self._o, filename, options)
+ return ret
+
+ def schemaValidateOneElement(self, elem):
+ """Validate a branch of a tree, starting with the given @elem. """
+ if elem is None: elem__o = None
+ else: elem__o = elem._o
+ ret = libxml2mod.xmlSchemaValidateOneElement(self._o, elem__o)
+ return ret
+
+ def schemaValidateSetFilename(self, filename):
+ """Workaround to provide file error reporting information when
+ this is not provided by current APIs """
+ libxml2mod.xmlSchemaValidateSetFilename(self._o, filename)
+
+class xmlTextReaderLocator:
+ def __init__(self, _obj=None):
+ if _obj != None:self._o = _obj;return
+ self._o = None
+
+ #
+ # xmlTextReaderLocator functions from module xmlreader
+ #
+
+ def BaseURI(self):
+ """Obtain the base URI for the given locator. """
+ ret = libxml2mod.xmlTextReaderLocatorBaseURI(self._o)
+ return ret
+
+ def LineNumber(self):
+ """Obtain the line number for the given locator. """
+ ret = libxml2mod.xmlTextReaderLocatorLineNumber(self._o)
+ return ret
+
+class xmlTextReader(xmlTextReaderCore):
+ def __init__(self, _obj=None):
+ self.input = None
+ self._o = _obj
+ xmlTextReaderCore.__init__(self, _obj=_obj)
+
+ def __del__(self):
+ if self._o != None:
+ libxml2mod.xmlFreeTextReader(self._o)
+ self._o = None
+
+ #
+ # xmlTextReader functions from module xmlreader
+ #
+
+ def AttributeCount(self):
+ """Provides the number of attributes of the current node """
+ ret = libxml2mod.xmlTextReaderAttributeCount(self._o)
+ return ret
+
+ def BaseUri(self):
+ """The base URI of the node. """
+ ret = libxml2mod.xmlTextReaderConstBaseUri(self._o)
+ return ret
+
+ def ByteConsumed(self):
+ """This function provides the current index of the parser used
+ by the reader, relative to the start of the current entity.
+ This function actually just wraps a call to
+ xmlBytesConsumed() for the parser context associated with
+ the reader. See xmlBytesConsumed() for more information. """
+ ret = libxml2mod.xmlTextReaderByteConsumed(self._o)
+ return ret
+
+ def Close(self):
+ """This method releases any resources allocated by the current
+ instance changes the state to Closed and close any
+ underlying input. """
+ ret = libxml2mod.xmlTextReaderClose(self._o)
+ return ret
+
+ def CurrentDoc(self):
+ """Hacking interface allowing to get the xmlDocPtr
+ corresponding to the current document being accessed by the
+ xmlTextReader. NOTE: as a result of this call, the reader
+ will not destroy the associated XML document and calling
+ xmlFreeDoc() on the result is needed once the reader
+ parsing has finished. """
+ ret = libxml2mod.xmlTextReaderCurrentDoc(self._o)
+ if ret is None:raise treeError('xmlTextReaderCurrentDoc() failed')
+ __tmp = xmlDoc(_obj=ret)
+ return __tmp
+
+ def CurrentNode(self):
+ """Hacking interface allowing to get the xmlNodePtr
+ corresponding to the current node being accessed by the
+ xmlTextReader. This is dangerous because the underlying
+ node may be destroyed on the next Reads. """
+ ret = libxml2mod.xmlTextReaderCurrentNode(self._o)
+ if ret is None:raise treeError('xmlTextReaderCurrentNode() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def Depth(self):
+ """The depth of the node in the tree. """
+ ret = libxml2mod.xmlTextReaderDepth(self._o)
+ return ret
+
+ def Encoding(self):
+ """Determine the encoding of the document being read. """
+ ret = libxml2mod.xmlTextReaderConstEncoding(self._o)
+ return ret
+
+ def Expand(self):
+ """Reads the contents of the current node and the full
+ subtree. It then makes the subtree available until the next
+ xmlTextReaderRead() call """
+ ret = libxml2mod.xmlTextReaderExpand(self._o)
+ if ret is None:raise treeError('xmlTextReaderExpand() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def GetAttribute(self, name):
+ """Provides the value of the attribute with the specified
+ qualified name. """
+ ret = libxml2mod.xmlTextReaderGetAttribute(self._o, name)
+ return ret
+
+ def GetAttributeNo(self, no):
+ """Provides the value of the attribute with the specified
+ index relative to the containing element. """
+ ret = libxml2mod.xmlTextReaderGetAttributeNo(self._o, no)
+ return ret
+
+ def GetAttributeNs(self, localName, namespaceURI):
+ """Provides the value of the specified attribute """
+ ret = libxml2mod.xmlTextReaderGetAttributeNs(self._o, localName, namespaceURI)
+ return ret
+
+ def GetParserColumnNumber(self):
+ """Provide the column number of the current parsing point. """
+ ret = libxml2mod.xmlTextReaderGetParserColumnNumber(self._o)
+ return ret
+
+ def GetParserLineNumber(self):
+ """Provide the line number of the current parsing point. """
+ ret = libxml2mod.xmlTextReaderGetParserLineNumber(self._o)
+ return ret
+
+ def GetParserProp(self, prop):
+ """Read the parser internal property. """
+ ret = libxml2mod.xmlTextReaderGetParserProp(self._o, prop)
+ return ret
+
+ def GetRemainder(self):
+ """Method to get the remainder of the buffered XML. this
+ method stops the parser, set its state to End Of File and
+ return the input stream with what is left that the parser
+ did not use. The implementation is not good, the parser
+ certainly progressed past what's left in reader->input, and
+ there is an allocation problem. Best would be to rewrite it
+ differently. """
+ ret = libxml2mod.xmlTextReaderGetRemainder(self._o)
+ if ret is None:raise treeError('xmlTextReaderGetRemainder() failed')
+ __tmp = inputBuffer(_obj=ret)
+ return __tmp
+
+ def HasAttributes(self):
+ """Whether the node has attributes. """
+ ret = libxml2mod.xmlTextReaderHasAttributes(self._o)
+ return ret
+
+ def HasValue(self):
+ """Whether the node can have a text value. """
+ ret = libxml2mod.xmlTextReaderHasValue(self._o)
+ return ret
+
+ def IsDefault(self):
+ """Whether an Attribute node was generated from the default
+ value defined in the DTD or schema. """
+ ret = libxml2mod.xmlTextReaderIsDefault(self._o)
+ return ret
+
+ def IsEmptyElement(self):
+ """Check if the current node is empty """
+ ret = libxml2mod.xmlTextReaderIsEmptyElement(self._o)
+ return ret
+
+ def IsNamespaceDecl(self):
+ """Determine whether the current node is a namespace
+ declaration rather than a regular attribute. """
+ ret = libxml2mod.xmlTextReaderIsNamespaceDecl(self._o)
+ return ret
+
+ def IsValid(self):
+ """Retrieve the validity status from the parser context """
+ ret = libxml2mod.xmlTextReaderIsValid(self._o)
+ return ret
+
+ def LocalName(self):
+ """The local name of the node. """
+ ret = libxml2mod.xmlTextReaderConstLocalName(self._o)
+ return ret
+
+ def LookupNamespace(self, prefix):
+ """Resolves a namespace prefix in the scope of the current
+ element. """
+ ret = libxml2mod.xmlTextReaderLookupNamespace(self._o, prefix)
+ return ret
+
+ def MoveToAttribute(self, name):
+ """Moves the position of the current instance to the attribute
+ with the specified qualified name. """
+ ret = libxml2mod.xmlTextReaderMoveToAttribute(self._o, name)
+ return ret
+
+ def MoveToAttributeNo(self, no):
+ """Moves the position of the current instance to the attribute
+ with the specified index relative to the containing element. """
+ ret = libxml2mod.xmlTextReaderMoveToAttributeNo(self._o, no)
+ return ret
+
+ def MoveToAttributeNs(self, localName, namespaceURI):
+ """Moves the position of the current instance to the attribute
+ with the specified local name and namespace URI. """
+ ret = libxml2mod.xmlTextReaderMoveToAttributeNs(self._o, localName, namespaceURI)
+ return ret
+
+ def MoveToElement(self):
+ """Moves the position of the current instance to the node that
+ contains the current Attribute node. """
+ ret = libxml2mod.xmlTextReaderMoveToElement(self._o)
+ return ret
+
+ def MoveToFirstAttribute(self):
+ """Moves the position of the current instance to the first
+ attribute associated with the current node. """
+ ret = libxml2mod.xmlTextReaderMoveToFirstAttribute(self._o)
+ return ret
+
+ def MoveToNextAttribute(self):
+ """Moves the position of the current instance to the next
+ attribute associated with the current node. """
+ ret = libxml2mod.xmlTextReaderMoveToNextAttribute(self._o)
+ return ret
+
+ def Name(self):
+ """The qualified name of the node, equal to Prefix :LocalName. """
+ ret = libxml2mod.xmlTextReaderConstName(self._o)
+ return ret
+
+ def NamespaceUri(self):
+ """The URI defining the namespace associated with the node. """
+ ret = libxml2mod.xmlTextReaderConstNamespaceUri(self._o)
+ return ret
+
+ def NewDoc(self, cur, URL, encoding, options):
+ """Setup an xmltextReader to parse an XML in-memory document.
+ The parsing flags @options are a combination of
+ xmlParserOption. This reuses the existing @reader
+ xmlTextReader. """
+ ret = libxml2mod.xmlReaderNewDoc(self._o, cur, URL, encoding, options)
+ return ret
+
+ def NewFd(self, fd, URL, encoding, options):
+ """Setup an xmltextReader to parse an XML from a file
+ descriptor. NOTE that the file descriptor will not be
+ closed when the reader is closed or reset. The parsing
+ flags @options are a combination of xmlParserOption. This
+ reuses the existing @reader xmlTextReader. """
+ ret = libxml2mod.xmlReaderNewFd(self._o, fd, URL, encoding, options)
+ return ret
+
+ def NewFile(self, filename, encoding, options):
+ """parse an XML file from the filesystem or the network. The
+ parsing flags @options are a combination of
+ xmlParserOption. This reuses the existing @reader
+ xmlTextReader. """
+ ret = libxml2mod.xmlReaderNewFile(self._o, filename, encoding, options)
+ return ret
+
+ def NewMemory(self, buffer, size, URL, encoding, options):
+ """Setup an xmltextReader to parse an XML in-memory document.
+ The parsing flags @options are a combination of
+ xmlParserOption. This reuses the existing @reader
+ xmlTextReader. """
+ ret = libxml2mod.xmlReaderNewMemory(self._o, buffer, size, URL, encoding, options)
+ return ret
+
+ def NewWalker(self, doc):
+ """Setup an xmltextReader to parse a preparsed XML document.
+ This reuses the existing @reader xmlTextReader. """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ ret = libxml2mod.xmlReaderNewWalker(self._o, doc__o)
+ return ret
+
+ def Next(self):
+ """Skip to the node following the current one in document
+ order while avoiding the subtree if any. """
+ ret = libxml2mod.xmlTextReaderNext(self._o)
+ return ret
+
+ def NextSibling(self):
+ """Skip to the node following the current one in document
+ order while avoiding the subtree if any. Currently
+ implemented only for Readers built on a document """
+ ret = libxml2mod.xmlTextReaderNextSibling(self._o)
+ return ret
+
+ def NodeType(self):
+ """Get the node type of the current node Reference:
+ http://www.gnu.org/software/dotgnu/pnetlib-doc/System/Xml/Xm
+ lNodeType.html """
+ ret = libxml2mod.xmlTextReaderNodeType(self._o)
+ return ret
+
+ def Normalization(self):
+ """The value indicating whether to normalize white space and
+ attribute values. Since attribute value and end of line
+ normalizations are a MUST in the XML specification only the
+ value true is accepted. The broken bahaviour of accepting
+ out of range character entities like &#0; is of course not
+ supported either. """
+ ret = libxml2mod.xmlTextReaderNormalization(self._o)
+ return ret
+
+ def Prefix(self):
+ """A shorthand reference to the namespace associated with the
+ node. """
+ ret = libxml2mod.xmlTextReaderConstPrefix(self._o)
+ return ret
+
+ def Preserve(self):
+ """This tells the XML Reader to preserve the current node. The
+ caller must also use xmlTextReaderCurrentDoc() to keep an
+ handle on the resulting document once parsing has finished """
+ ret = libxml2mod.xmlTextReaderPreserve(self._o)
+ if ret is None:raise treeError('xmlTextReaderPreserve() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def QuoteChar(self):
+ """The quotation mark character used to enclose the value of
+ an attribute. """
+ ret = libxml2mod.xmlTextReaderQuoteChar(self._o)
+ return ret
+
+ def Read(self):
+ """Moves the position of the current instance to the next node
+ in the stream, exposing its properties. """
+ ret = libxml2mod.xmlTextReaderRead(self._o)
+ return ret
+
+ def ReadAttributeValue(self):
+ """Parses an attribute value into one or more Text and
+ EntityReference nodes. """
+ ret = libxml2mod.xmlTextReaderReadAttributeValue(self._o)
+ return ret
+
+ def ReadInnerXml(self):
+ """Reads the contents of the current node, including child
+ nodes and markup. """
+ ret = libxml2mod.xmlTextReaderReadInnerXml(self._o)
+ return ret
+
+ def ReadOuterXml(self):
+ """Reads the contents of the current node, including child
+ nodes and markup. """
+ ret = libxml2mod.xmlTextReaderReadOuterXml(self._o)
+ return ret
+
+ def ReadState(self):
+ """Gets the read state of the reader. """
+ ret = libxml2mod.xmlTextReaderReadState(self._o)
+ return ret
+
+ def ReadString(self):
+ """Reads the contents of an element or a text node as a string. """
+ ret = libxml2mod.xmlTextReaderReadString(self._o)
+ return ret
+
+ def RelaxNGSetSchema(self, schema):
+ """Use RelaxNG to validate the document as it is processed.
+ Activation is only possible before the first Read(). if
+ @schema is None, then RelaxNG validation is deactivated. @
+ The @schema should not be freed until the reader is
+ deallocated or its use has been deactivated. """
+ if schema is None: schema__o = None
+ else: schema__o = schema._o
+ ret = libxml2mod.xmlTextReaderRelaxNGSetSchema(self._o, schema__o)
+ return ret
+
+ def RelaxNGValidate(self, rng):
+ """Use RelaxNG schema to validate the document as it is
+ processed. Activation is only possible before the first
+ Read(). If @rng is None, then RelaxNG schema validation is
+ deactivated. """
+ ret = libxml2mod.xmlTextReaderRelaxNGValidate(self._o, rng)
+ return ret
+
+ def RelaxNGValidateCtxt(self, ctxt, options):
+ """Use RelaxNG schema context to validate the document as it
+ is processed. Activation is only possible before the first
+ Read(). If @ctxt is None, then RelaxNG schema validation is
+ deactivated. """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ ret = libxml2mod.xmlTextReaderRelaxNGValidateCtxt(self._o, ctxt__o, options)
+ return ret
+
+ def SchemaValidate(self, xsd):
+ """Use W3C XSD schema to validate the document as it is
+ processed. Activation is only possible before the first
+ Read(). If @xsd is None, then XML Schema validation is
+ deactivated. """
+ ret = libxml2mod.xmlTextReaderSchemaValidate(self._o, xsd)
+ return ret
+
+ def SchemaValidateCtxt(self, ctxt, options):
+ """Use W3C XSD schema context to validate the document as it
+ is processed. Activation is only possible before the first
+ Read(). If @ctxt is None, then XML Schema validation is
+ deactivated. """
+ if ctxt is None: ctxt__o = None
+ else: ctxt__o = ctxt._o
+ ret = libxml2mod.xmlTextReaderSchemaValidateCtxt(self._o, ctxt__o, options)
+ return ret
+
+ def SetParserProp(self, prop, value):
+ """Change the parser processing behaviour by changing some of
+ its internal properties. Note that some properties can only
+ be changed before any read has been done. """
+ ret = libxml2mod.xmlTextReaderSetParserProp(self._o, prop, value)
+ return ret
+
+ def SetSchema(self, schema):
+ """Use XSD Schema to validate the document as it is processed.
+ Activation is only possible before the first Read(). if
+ @schema is None, then Schema validation is deactivated. The
+ @schema should not be freed until the reader is deallocated
+ or its use has been deactivated. """
+ if schema is None: schema__o = None
+ else: schema__o = schema._o
+ ret = libxml2mod.xmlTextReaderSetSchema(self._o, schema__o)
+ return ret
+
+ def Setup(self, input, URL, encoding, options):
+ """Setup an XML reader with new options """
+ if input is None: input__o = None
+ else: input__o = input._o
+ ret = libxml2mod.xmlTextReaderSetup(self._o, input__o, URL, encoding, options)
+ return ret
+
+ def Standalone(self):
+ """Determine the standalone status of the document being read. """
+ ret = libxml2mod.xmlTextReaderStandalone(self._o)
+ return ret
+
+ def String(self, str):
+ """Get an interned string from the reader, allows for example
+ to speedup string name comparisons """
+ ret = libxml2mod.xmlTextReaderConstString(self._o, str)
+ return ret
+
+ def Value(self):
+ """Provides the text value of the node if present """
+ ret = libxml2mod.xmlTextReaderConstValue(self._o)
+ return ret
+
+ def XmlLang(self):
+ """The xml:lang scope within which the node resides. """
+ ret = libxml2mod.xmlTextReaderConstXmlLang(self._o)
+ return ret
+
+ def XmlVersion(self):
+ """Determine the XML version of the document being read. """
+ ret = libxml2mod.xmlTextReaderConstXmlVersion(self._o)
+ return ret
+
+class URI:
+ def __init__(self, _obj=None):
+ if _obj != None:self._o = _obj;return
+ self._o = None
+
+ def __del__(self):
+ if self._o != None:
+ libxml2mod.xmlFreeURI(self._o)
+ self._o = None
+
+ # accessors for URI
+ def authority(self):
+ """Get the authority part from an URI """
+ ret = libxml2mod.xmlURIGetAuthority(self._o)
+ return ret
+
+ def fragment(self):
+ """Get the fragment part from an URI """
+ ret = libxml2mod.xmlURIGetFragment(self._o)
+ return ret
+
+ def opaque(self):
+ """Get the opaque part from an URI """
+ ret = libxml2mod.xmlURIGetOpaque(self._o)
+ return ret
+
+ def path(self):
+ """Get the path part from an URI """
+ ret = libxml2mod.xmlURIGetPath(self._o)
+ return ret
+
+ def port(self):
+ """Get the port part from an URI """
+ ret = libxml2mod.xmlURIGetPort(self._o)
+ return ret
+
+ def query(self):
+ """Get the query part from an URI """
+ ret = libxml2mod.xmlURIGetQuery(self._o)
+ return ret
+
+ def queryRaw(self):
+ """Get the raw query part from an URI (i.e. the unescaped
+ form). """
+ ret = libxml2mod.xmlURIGetQueryRaw(self._o)
+ return ret
+
+ def scheme(self):
+ """Get the scheme part from an URI """
+ ret = libxml2mod.xmlURIGetScheme(self._o)
+ return ret
+
+ def server(self):
+ """Get the server part from an URI """
+ ret = libxml2mod.xmlURIGetServer(self._o)
+ return ret
+
+ def setAuthority(self, authority):
+ """Set the authority part of an URI. """
+ libxml2mod.xmlURISetAuthority(self._o, authority)
+
+ def setFragment(self, fragment):
+ """Set the fragment part of an URI. """
+ libxml2mod.xmlURISetFragment(self._o, fragment)
+
+ def setOpaque(self, opaque):
+ """Set the opaque part of an URI. """
+ libxml2mod.xmlURISetOpaque(self._o, opaque)
+
+ def setPath(self, path):
+ """Set the path part of an URI. """
+ libxml2mod.xmlURISetPath(self._o, path)
+
+ def setPort(self, port):
+ """Set the port part of an URI. """
+ libxml2mod.xmlURISetPort(self._o, port)
+
+ def setQuery(self, query):
+ """Set the query part of an URI. """
+ libxml2mod.xmlURISetQuery(self._o, query)
+
+ def setQueryRaw(self, query_raw):
+ """Set the raw query part of an URI (i.e. the unescaped form). """
+ libxml2mod.xmlURISetQueryRaw(self._o, query_raw)
+
+ def setScheme(self, scheme):
+ """Set the scheme part of an URI. """
+ libxml2mod.xmlURISetScheme(self._o, scheme)
+
+ def setServer(self, server):
+ """Set the server part of an URI. """
+ libxml2mod.xmlURISetServer(self._o, server)
+
+ def setUser(self, user):
+ """Set the user part of an URI. """
+ libxml2mod.xmlURISetUser(self._o, user)
+
+ def user(self):
+ """Get the user part from an URI """
+ ret = libxml2mod.xmlURIGetUser(self._o)
+ return ret
+
+ #
+ # URI functions from module uri
+ #
+
+ def parseURIReference(self, str):
+ """Parse an URI reference string based on RFC 3986 and fills
+ in the appropriate fields of the @uri structure
+ URI-reference = URI / relative-ref """
+ ret = libxml2mod.xmlParseURIReference(self._o, str)
+ return ret
+
+ def printURI(self, stream):
+ """Prints the URI in the stream @stream. """
+ libxml2mod.xmlPrintURI(stream, self._o)
+
+ def saveUri(self):
+ """Save the URI as an escaped string """
+ ret = libxml2mod.xmlSaveUri(self._o)
+ return ret
+
+class ValidCtxt(ValidCtxtCore):
+ def __init__(self, _obj=None):
+ self._o = _obj
+ ValidCtxtCore.__init__(self, _obj=_obj)
+
+ def __del__(self):
+ if self._o != None:
+ libxml2mod.xmlFreeValidCtxt(self._o)
+ self._o = None
+
+ #
+ # ValidCtxt functions from module valid
+ #
+
+ def validCtxtNormalizeAttributeValue(self, doc, elem, name, value):
+ """Does the validation related extra step of the normalization
+ of attribute values: If the declared value is not CDATA,
+ then the XML processor must further process the normalized
+ attribute value by discarding any leading and trailing
+ space (#x20) characters, and by replacing sequences of
+ space (#x20) characters by single space (#x20) character.
+ Also check VC: Standalone Document Declaration in P32, and
+ update ctxt->valid accordingly """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ if elem is None: elem__o = None
+ else: elem__o = elem._o
+ ret = libxml2mod.xmlValidCtxtNormalizeAttributeValue(self._o, doc__o, elem__o, name, value)
+ return ret
+
+ def validateDocument(self, doc):
+ """Try to validate the document instance basically it does
+ the all the checks described by the XML Rec i.e. validates
+ the internal and external subset (if present) and validate
+ the document tree. """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ ret = libxml2mod.xmlValidateDocument(self._o, doc__o)
+ return ret
+
+ def validateDocumentFinal(self, doc):
+ """Does the final step for the document validation once all
+ the incremental validation steps have been completed
+ basically it does the following checks described by the XML
+ Rec Check all the IDREF/IDREFS attributes definition for
+ validity """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ ret = libxml2mod.xmlValidateDocumentFinal(self._o, doc__o)
+ return ret
+
+ def validateDtd(self, doc, dtd):
+ """Try to validate the document against the dtd instance
+ Basically it does check all the definitions in the DtD.
+ Note the the internal subset (if present) is de-coupled
+ (i.e. not used), which could give problems if ID or IDREF
+ is present. """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ if dtd is None: dtd__o = None
+ else: dtd__o = dtd._o
+ ret = libxml2mod.xmlValidateDtd(self._o, doc__o, dtd__o)
+ return ret
+
+ def validateDtdFinal(self, doc):
+ """Does the final step for the dtds validation once all the
+ subsets have been parsed basically it does the following
+ checks described by the XML Rec - check that ENTITY and
+ ENTITIES type attributes default or possible values matches
+ one of the defined entities. - check that NOTATION type
+ attributes default or possible values matches one of the
+ defined notations. """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ ret = libxml2mod.xmlValidateDtdFinal(self._o, doc__o)
+ return ret
+
+ def validateElement(self, doc, elem):
+ """Try to validate the subtree under an element """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ if elem is None: elem__o = None
+ else: elem__o = elem._o
+ ret = libxml2mod.xmlValidateElement(self._o, doc__o, elem__o)
+ return ret
+
+ def validateNotationUse(self, doc, notationName):
+ """Validate that the given name match a notation declaration.
+ - [ VC: Notation Declared ] """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ ret = libxml2mod.xmlValidateNotationUse(self._o, doc__o, notationName)
+ return ret
+
+ def validateOneAttribute(self, doc, elem, attr, value):
+ """Try to validate a single attribute for an element basically
+ it does the following checks as described by the XML-1.0
+ recommendation: - [ VC: Attribute Value Type ] - [ VC:
+ Fixed Attribute Default ] - [ VC: Entity Name ] - [ VC:
+ Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC: Entity
+ Name ] - [ VC: Notation Attributes ] The ID/IDREF
+ uniqueness and matching are done separately """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ if elem is None: elem__o = None
+ else: elem__o = elem._o
+ if attr is None: attr__o = None
+ else: attr__o = attr._o
+ ret = libxml2mod.xmlValidateOneAttribute(self._o, doc__o, elem__o, attr__o, value)
+ return ret
+
+ def validateOneElement(self, doc, elem):
+ """Try to validate a single element and it's attributes,
+ basically it does the following checks as described by the
+ XML-1.0 recommendation: - [ VC: Element Valid ] - [ VC:
+ Required Attribute ] Then call xmlValidateOneAttribute()
+ for each attribute present. The ID/IDREF checkings are
+ done separately """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ if elem is None: elem__o = None
+ else: elem__o = elem._o
+ ret = libxml2mod.xmlValidateOneElement(self._o, doc__o, elem__o)
+ return ret
+
+ def validateOneNamespace(self, doc, elem, prefix, ns, value):
+ """Try to validate a single namespace declaration for an
+ element basically it does the following checks as described
+ by the XML-1.0 recommendation: - [ VC: Attribute Value Type
+ ] - [ VC: Fixed Attribute Default ] - [ VC: Entity Name ] -
+ [ VC: Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC:
+ Entity Name ] - [ VC: Notation Attributes ] The ID/IDREF
+ uniqueness and matching are done separately """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ if elem is None: elem__o = None
+ else: elem__o = elem._o
+ if ns is None: ns__o = None
+ else: ns__o = ns._o
+ ret = libxml2mod.xmlValidateOneNamespace(self._o, doc__o, elem__o, prefix, ns__o, value)
+ return ret
+
+ def validatePopElement(self, doc, elem, qname):
+ """Pop the element end from the validation stack. """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ if elem is None: elem__o = None
+ else: elem__o = elem._o
+ ret = libxml2mod.xmlValidatePopElement(self._o, doc__o, elem__o, qname)
+ return ret
+
+ def validatePushCData(self, data, len):
+ """check the CData parsed for validation in the current stack """
+ ret = libxml2mod.xmlValidatePushCData(self._o, data, len)
+ return ret
+
+ def validatePushElement(self, doc, elem, qname):
+ """Push a new element start on the validation stack. """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ if elem is None: elem__o = None
+ else: elem__o = elem._o
+ ret = libxml2mod.xmlValidatePushElement(self._o, doc__o, elem__o, qname)
+ return ret
+
+ def validateRoot(self, doc):
+ """Try to validate a the root element basically it does the
+ following check as described by the XML-1.0 recommendation:
+ - [ VC: Root Element Type ] it doesn't try to recurse or
+ apply other check to the element """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ ret = libxml2mod.xmlValidateRoot(self._o, doc__o)
+ return ret
+
+class xpathContext:
+ def __init__(self, _obj=None):
+ if _obj != None:self._o = _obj;return
+ self._o = None
+
+ # accessors for xpathContext
+ def contextDoc(self):
+ """Get the doc from an xpathContext """
+ ret = libxml2mod.xmlXPathGetContextDoc(self._o)
+ if ret is None:raise xpathError('xmlXPathGetContextDoc() failed')
+ __tmp = xmlDoc(_obj=ret)
+ return __tmp
+
+ def contextNode(self):
+ """Get the current node from an xpathContext """
+ ret = libxml2mod.xmlXPathGetContextNode(self._o)
+ if ret is None:raise xpathError('xmlXPathGetContextNode() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def contextPosition(self):
+ """Get the current node from an xpathContext """
+ ret = libxml2mod.xmlXPathGetContextPosition(self._o)
+ return ret
+
+ def contextSize(self):
+ """Get the current node from an xpathContext """
+ ret = libxml2mod.xmlXPathGetContextSize(self._o)
+ return ret
+
+ def function(self):
+ """Get the current function name xpathContext """
+ ret = libxml2mod.xmlXPathGetFunction(self._o)
+ return ret
+
+ def functionURI(self):
+ """Get the current function name URI xpathContext """
+ ret = libxml2mod.xmlXPathGetFunctionURI(self._o)
+ return ret
+
+ def setContextDoc(self, doc):
+ """Set the doc of an xpathContext """
+ if doc is None: doc__o = None
+ else: doc__o = doc._o
+ libxml2mod.xmlXPathSetContextDoc(self._o, doc__o)
+
+ def setContextNode(self, node):
+ """Set the current node of an xpathContext """
+ if node is None: node__o = None
+ else: node__o = node._o
+ libxml2mod.xmlXPathSetContextNode(self._o, node__o)
+
+ #
+ # xpathContext functions from module python
+ #
+
+ def registerXPathFunction(self, name, ns_uri, f):
+ """Register a Python written function to the XPath interpreter """
+ ret = libxml2mod.xmlRegisterXPathFunction(self._o, name, ns_uri, f)
+ return ret
+
+ def xpathRegisterVariable(self, name, ns_uri, value):
+ """Register a variable with the XPath context """
+ ret = libxml2mod.xmlXPathRegisterVariable(self._o, name, ns_uri, value)
+ return ret
+
+ #
+ # xpathContext functions from module xpath
+ #
+
+ def xpathContextSetCache(self, active, value, options):
+ """Creates/frees an object cache on the XPath context. If
+ activates XPath objects (xmlXPathObject) will be cached
+ internally to be reused. @options: 0: This will set the
+ XPath object caching: @value: This will set the maximum
+ number of XPath objects to be cached per slot There are 5
+ slots for: node-set, string, number, boolean, and misc
+ objects. Use <0 for the default number (100). Other values
+ for @options have currently no effect. """
+ ret = libxml2mod.xmlXPathContextSetCache(self._o, active, value, options)
+ return ret
+
+ def xpathEval(self, str):
+ """Evaluate the XPath Location Path in the given context. """
+ ret = libxml2mod.xmlXPathEval(str, self._o)
+ if ret is None:raise xpathError('xmlXPathEval() failed')
+ return xpathObjectRet(ret)
+
+ def xpathEvalExpression(self, str):
+ """Alias for xmlXPathEval(). """
+ ret = libxml2mod.xmlXPathEvalExpression(str, self._o)
+ if ret is None:raise xpathError('xmlXPathEvalExpression() failed')
+ return xpathObjectRet(ret)
+
+ def xpathFreeContext(self):
+ """Free up an xmlXPathContext """
+ libxml2mod.xmlXPathFreeContext(self._o)
+
+ #
+ # xpathContext functions from module xpathInternals
+ #
+
+ def xpathNewParserContext(self, str):
+ """Create a new xmlXPathParserContext """
+ ret = libxml2mod.xmlXPathNewParserContext(str, self._o)
+ if ret is None:raise xpathError('xmlXPathNewParserContext() failed')
+ __tmp = xpathParserContext(_obj=ret)
+ return __tmp
+
+ def xpathNsLookup(self, prefix):
+ """Search in the namespace declaration array of the context
+ for the given namespace name associated to the given prefix """
+ ret = libxml2mod.xmlXPathNsLookup(self._o, prefix)
+ return ret
+
+ def xpathRegisterAllFunctions(self):
+ """Registers all default XPath functions in this context """
+ libxml2mod.xmlXPathRegisterAllFunctions(self._o)
+
+ def xpathRegisterNs(self, prefix, ns_uri):
+ """Register a new namespace. If @ns_uri is None it unregisters
+ the namespace """
+ ret = libxml2mod.xmlXPathRegisterNs(self._o, prefix, ns_uri)
+ return ret
+
+ def xpathRegisteredFuncsCleanup(self):
+ """Cleanup the XPath context data associated to registered
+ functions """
+ libxml2mod.xmlXPathRegisteredFuncsCleanup(self._o)
+
+ def xpathRegisteredNsCleanup(self):
+ """Cleanup the XPath context data associated to registered
+ variables """
+ libxml2mod.xmlXPathRegisteredNsCleanup(self._o)
+
+ def xpathRegisteredVariablesCleanup(self):
+ """Cleanup the XPath context data associated to registered
+ variables """
+ libxml2mod.xmlXPathRegisteredVariablesCleanup(self._o)
+
+ def xpathVariableLookup(self, name):
+ """Search in the Variable array of the context for the given
+ variable value. """
+ ret = libxml2mod.xmlXPathVariableLookup(self._o, name)
+ if ret is None:raise xpathError('xmlXPathVariableLookup() failed')
+ return xpathObjectRet(ret)
+
+ def xpathVariableLookupNS(self, name, ns_uri):
+ """Search in the Variable array of the context for the given
+ variable value. """
+ ret = libxml2mod.xmlXPathVariableLookupNS(self._o, name, ns_uri)
+ if ret is None:raise xpathError('xmlXPathVariableLookupNS() failed')
+ return xpathObjectRet(ret)
+
+ #
+ # xpathContext functions from module xpointer
+ #
+
+ def xpointerEval(self, str):
+ """Evaluate the XPath Location Path in the given context. """
+ ret = libxml2mod.xmlXPtrEval(str, self._o)
+ if ret is None:raise treeError('xmlXPtrEval() failed')
+ return xpathObjectRet(ret)
+
+class xpathParserContext:
+ def __init__(self, _obj=None):
+ if _obj != None:self._o = _obj;return
+ self._o = None
+
+ # accessors for xpathParserContext
+ def context(self):
+ """Get the xpathContext from an xpathParserContext """
+ ret = libxml2mod.xmlXPathParserGetContext(self._o)
+ if ret is None:raise xpathError('xmlXPathParserGetContext() failed')
+ __tmp = xpathContext(_obj=ret)
+ return __tmp
+
+ #
+ # xpathParserContext functions from module xpathInternals
+ #
+
+ def xpathAddValues(self):
+ """Implement the add operation on XPath objects: The numeric
+ operators convert their operands to numbers as if by
+ calling the number function. """
+ libxml2mod.xmlXPathAddValues(self._o)
+
+ def xpathBooleanFunction(self, nargs):
+ """Implement the boolean() XPath function boolean
+ boolean(object) The boolean function converts its argument
+ to a boolean as follows: - a number is true if and only if
+ it is neither positive or negative zero nor NaN - a
+ node-set is true if and only if it is non-empty - a string
+ is true if and only if its length is non-zero """
+ libxml2mod.xmlXPathBooleanFunction(self._o, nargs)
+
+ def xpathCeilingFunction(self, nargs):
+ """Implement the ceiling() XPath function number
+ ceiling(number) The ceiling function returns the smallest
+ (closest to negative infinity) number that is not less than
+ the argument and that is an integer. """
+ libxml2mod.xmlXPathCeilingFunction(self._o, nargs)
+
+ def xpathCompareValues(self, inf, strict):
+ """Implement the compare operation on XPath objects: @arg1 <
+ @arg2 (1, 1, ... @arg1 <= @arg2 (1, 0, ... @arg1 >
+ @arg2 (0, 1, ... @arg1 >= @arg2 (0, 0, ... When
+ neither object to be compared is a node-set and the
+ operator is <=, <, >=, >, then the objects are compared by
+ converted both objects to numbers and comparing the numbers
+ according to IEEE 754. The < comparison will be true if and
+ only if the first number is less than the second number.
+ The <= comparison will be true if and only if the first
+ number is less than or equal to the second number. The >
+ comparison will be true if and only if the first number is
+ greater than the second number. The >= comparison will be
+ true if and only if the first number is greater than or
+ equal to the second number. """
+ ret = libxml2mod.xmlXPathCompareValues(self._o, inf, strict)
+ return ret
+
+ def xpathConcatFunction(self, nargs):
+ """Implement the concat() XPath function string concat(string,
+ string, string*) The concat function returns the
+ concatenation of its arguments. """
+ libxml2mod.xmlXPathConcatFunction(self._o, nargs)
+
+ def xpathContainsFunction(self, nargs):
+ """Implement the contains() XPath function boolean
+ contains(string, string) The contains function returns true
+ if the first argument string contains the second argument
+ string, and otherwise returns false. """
+ libxml2mod.xmlXPathContainsFunction(self._o, nargs)
+
+ def xpathCountFunction(self, nargs):
+ """Implement the count() XPath function number count(node-set) """
+ libxml2mod.xmlXPathCountFunction(self._o, nargs)
+
+ def xpathDivValues(self):
+ """Implement the div operation on XPath objects @arg1 / @arg2:
+ The numeric operators convert their operands to numbers as
+ if by calling the number function. """
+ libxml2mod.xmlXPathDivValues(self._o)
+
+ def xpathEqualValues(self):
+ """Implement the equal operation on XPath objects content:
+ @arg1 == @arg2 """
+ ret = libxml2mod.xmlXPathEqualValues(self._o)
+ return ret
+
+ def xpathErr(self, error):
+ """Handle an XPath error """
+ libxml2mod.xmlXPathErr(self._o, error)
+
+ def xpathEvalExpr(self):
+ """Parse and evaluate an XPath expression in the given
+ context, then push the result on the context stack """
+ libxml2mod.xmlXPathEvalExpr(self._o)
+
+ def xpathFalseFunction(self, nargs):
+ """Implement the false() XPath function boolean false() """
+ libxml2mod.xmlXPathFalseFunction(self._o, nargs)
+
+ def xpathFloorFunction(self, nargs):
+ """Implement the floor() XPath function number floor(number)
+ The floor function returns the largest (closest to positive
+ infinity) number that is not greater than the argument and
+ that is an integer. """
+ libxml2mod.xmlXPathFloorFunction(self._o, nargs)
+
+ def xpathFreeParserContext(self):
+ """Free up an xmlXPathParserContext """
+ libxml2mod.xmlXPathFreeParserContext(self._o)
+
+ def xpathIdFunction(self, nargs):
+ """Implement the id() XPath function node-set id(object) The
+ id function selects elements by their unique ID (see [5.2.1
+ Unique IDs]). When the argument to id is of type node-set,
+ then the result is the union of the result of applying id
+ to the string value of each of the nodes in the argument
+ node-set. When the argument to id is of any other type, the
+ argument is converted to a string as if by a call to the
+ string function; the string is split into a
+ whitespace-separated list of tokens (whitespace is any
+ sequence of characters matching the production S); the
+ result is a node-set containing the elements in the same
+ document as the context node that have a unique ID equal to
+ any of the tokens in the list. """
+ libxml2mod.xmlXPathIdFunction(self._o, nargs)
+
+ def xpathLangFunction(self, nargs):
+ """Implement the lang() XPath function boolean lang(string)
+ The lang function returns true or false depending on
+ whether the language of the context node as specified by
+ xml:lang attributes is the same as or is a sublanguage of
+ the language specified by the argument string. The language
+ of the context node is determined by the value of the
+ xml:lang attribute on the context node, or, if the context
+ node has no xml:lang attribute, by the value of the
+ xml:lang attribute on the nearest ancestor of the context
+ node that has an xml:lang attribute. If there is no such
+ attribute, then lang """
+ libxml2mod.xmlXPathLangFunction(self._o, nargs)
+
+ def xpathLastFunction(self, nargs):
+ """Implement the last() XPath function number last() The last
+ function returns the number of nodes in the context node
+ list. """
+ libxml2mod.xmlXPathLastFunction(self._o, nargs)
+
+ def xpathLocalNameFunction(self, nargs):
+ """Implement the local-name() XPath function string
+ local-name(node-set?) The local-name function returns a
+ string containing the local part of the name of the node in
+ the argument node-set that is first in document order. If
+ the node-set is empty or the first node has no name, an
+ empty string is returned. If the argument is omitted it
+ defaults to the context node. """
+ libxml2mod.xmlXPathLocalNameFunction(self._o, nargs)
+
+ def xpathModValues(self):
+ """Implement the mod operation on XPath objects: @arg1 / @arg2
+ The numeric operators convert their operands to numbers as
+ if by calling the number function. """
+ libxml2mod.xmlXPathModValues(self._o)
+
+ def xpathMultValues(self):
+ """Implement the multiply operation on XPath objects: The
+ numeric operators convert their operands to numbers as if
+ by calling the number function. """
+ libxml2mod.xmlXPathMultValues(self._o)
+
+ def xpathNamespaceURIFunction(self, nargs):
+ """Implement the namespace-uri() XPath function string
+ namespace-uri(node-set?) The namespace-uri function returns
+ a string containing the namespace URI of the expanded name
+ of the node in the argument node-set that is first in
+ document order. If the node-set is empty, the first node
+ has no name, or the expanded name has no namespace URI, an
+ empty string is returned. If the argument is omitted it
+ defaults to the context node. """
+ libxml2mod.xmlXPathNamespaceURIFunction(self._o, nargs)
+
+ def xpathNextAncestor(self, cur):
+ """Traversal function for the "ancestor" direction the
+ ancestor axis contains the ancestors of the context node;
+ the ancestors of the context node consist of the parent of
+ context node and the parent's parent and so on; the nodes
+ are ordered in reverse document order; thus the parent is
+ the first node on the axis, and the parent's parent is the
+ second node on the axis """
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ ret = libxml2mod.xmlXPathNextAncestor(self._o, cur__o)
+ if ret is None:raise xpathError('xmlXPathNextAncestor() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def xpathNextAncestorOrSelf(self, cur):
+ """Traversal function for the "ancestor-or-self" direction he
+ ancestor-or-self axis contains the context node and
+ ancestors of the context node in reverse document order;
+ thus the context node is the first node on the axis, and
+ the context node's parent the second; parent here is
+ defined the same as with the parent axis. """
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ ret = libxml2mod.xmlXPathNextAncestorOrSelf(self._o, cur__o)
+ if ret is None:raise xpathError('xmlXPathNextAncestorOrSelf() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def xpathNextAttribute(self, cur):
+ """Traversal function for the "attribute" direction TODO:
+ support DTD inherited default attributes """
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ ret = libxml2mod.xmlXPathNextAttribute(self._o, cur__o)
+ if ret is None:raise xpathError('xmlXPathNextAttribute() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def xpathNextChild(self, cur):
+ """Traversal function for the "child" direction The child axis
+ contains the children of the context node in document order. """
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ ret = libxml2mod.xmlXPathNextChild(self._o, cur__o)
+ if ret is None:raise xpathError('xmlXPathNextChild() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def xpathNextDescendant(self, cur):
+ """Traversal function for the "descendant" direction the
+ descendant axis contains the descendants of the context
+ node in document order; a descendant is a child or a child
+ of a child and so on. """
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ ret = libxml2mod.xmlXPathNextDescendant(self._o, cur__o)
+ if ret is None:raise xpathError('xmlXPathNextDescendant() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def xpathNextDescendantOrSelf(self, cur):
+ """Traversal function for the "descendant-or-self" direction
+ the descendant-or-self axis contains the context node and
+ the descendants of the context node in document order; thus
+ the context node is the first node on the axis, and the
+ first child of the context node is the second node on the
+ axis """
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ ret = libxml2mod.xmlXPathNextDescendantOrSelf(self._o, cur__o)
+ if ret is None:raise xpathError('xmlXPathNextDescendantOrSelf() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def xpathNextFollowing(self, cur):
+ """Traversal function for the "following" direction The
+ following axis contains all nodes in the same document as
+ the context node that are after the context node in
+ document order, excluding any descendants and excluding
+ attribute nodes and namespace nodes; the nodes are ordered
+ in document order """
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ ret = libxml2mod.xmlXPathNextFollowing(self._o, cur__o)
+ if ret is None:raise xpathError('xmlXPathNextFollowing() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def xpathNextFollowingSibling(self, cur):
+ """Traversal function for the "following-sibling" direction
+ The following-sibling axis contains the following siblings
+ of the context node in document order. """
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ ret = libxml2mod.xmlXPathNextFollowingSibling(self._o, cur__o)
+ if ret is None:raise xpathError('xmlXPathNextFollowingSibling() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def xpathNextNamespace(self, cur):
+ """Traversal function for the "namespace" direction the
+ namespace axis contains the namespace nodes of the context
+ node; the order of nodes on this axis is
+ implementation-defined; the axis will be empty unless the
+ context node is an element We keep the XML namespace node
+ at the end of the list. """
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ ret = libxml2mod.xmlXPathNextNamespace(self._o, cur__o)
+ if ret is None:raise xpathError('xmlXPathNextNamespace() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def xpathNextParent(self, cur):
+ """Traversal function for the "parent" direction The parent
+ axis contains the parent of the context node, if there is
+ one. """
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ ret = libxml2mod.xmlXPathNextParent(self._o, cur__o)
+ if ret is None:raise xpathError('xmlXPathNextParent() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def xpathNextPreceding(self, cur):
+ """Traversal function for the "preceding" direction the
+ preceding axis contains all nodes in the same document as
+ the context node that are before the context node in
+ document order, excluding any ancestors and excluding
+ attribute nodes and namespace nodes; the nodes are ordered
+ in reverse document order """
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ ret = libxml2mod.xmlXPathNextPreceding(self._o, cur__o)
+ if ret is None:raise xpathError('xmlXPathNextPreceding() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def xpathNextPrecedingSibling(self, cur):
+ """Traversal function for the "preceding-sibling" direction
+ The preceding-sibling axis contains the preceding siblings
+ of the context node in reverse document order; the first
+ preceding sibling is first on the axis; the sibling
+ preceding that node is the second on the axis and so on. """
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ ret = libxml2mod.xmlXPathNextPrecedingSibling(self._o, cur__o)
+ if ret is None:raise xpathError('xmlXPathNextPrecedingSibling() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def xpathNextSelf(self, cur):
+ """Traversal function for the "self" direction The self axis
+ contains just the context node itself """
+ if cur is None: cur__o = None
+ else: cur__o = cur._o
+ ret = libxml2mod.xmlXPathNextSelf(self._o, cur__o)
+ if ret is None:raise xpathError('xmlXPathNextSelf() failed')
+ __tmp = xmlNode(_obj=ret)
+ return __tmp
+
+ def xpathNormalizeFunction(self, nargs):
+ """Implement the normalize-space() XPath function string
+ normalize-space(string?) The normalize-space function
+ returns the argument string with white space normalized by
+ stripping leading and trailing whitespace and replacing
+ sequences of whitespace characters by a single space.
+ Whitespace characters are the same allowed by the S
+ production in XML. If the argument is omitted, it defaults
+ to the context node converted to a string, in other words
+ the value of the context node. """
+ libxml2mod.xmlXPathNormalizeFunction(self._o, nargs)
+
+ def xpathNotEqualValues(self):
+ """Implement the equal operation on XPath objects content:
+ @arg1 == @arg2 """
+ ret = libxml2mod.xmlXPathNotEqualValues(self._o)
+ return ret
+
+ def xpathNotFunction(self, nargs):
+ """Implement the not() XPath function boolean not(boolean) The
+ not function returns true if its argument is false, and
+ false otherwise. """
+ libxml2mod.xmlXPathNotFunction(self._o, nargs)
+
+ def xpathNumberFunction(self, nargs):
+ """Implement the number() XPath function number number(object?) """
+ libxml2mod.xmlXPathNumberFunction(self._o, nargs)
+
+ def xpathParseNCName(self):
+ """parse an XML namespace non qualified name. [NS 3] NCName
+ ::= (Letter | '_') (NCNameChar)* [NS 4] NCNameChar ::=
+ Letter | Digit | '.' | '-' | '_' | CombiningChar | Extender """
+ ret = libxml2mod.xmlXPathParseNCName(self._o)
+ return ret
+
+ def xpathParseName(self):
+ """parse an XML name [4] NameChar ::= Letter | Digit | '.' |
+ '-' | '_' | ':' | CombiningChar | Extender [5] Name ::=
+ (Letter | '_' | ':') (NameChar)* """
+ ret = libxml2mod.xmlXPathParseName(self._o)
+ return ret
+
+ def xpathPopBoolean(self):
+ """Pops a boolean from the stack, handling conversion if
+ needed. Check error with #xmlXPathCheckError. """
+ ret = libxml2mod.xmlXPathPopBoolean(self._o)
+ return ret
+
+ def xpathPopNumber(self):
+ """Pops a number from the stack, handling conversion if
+ needed. Check error with #xmlXPathCheckError. """
+ ret = libxml2mod.xmlXPathPopNumber(self._o)
+ return ret
+
+ def xpathPopString(self):
+ """Pops a string from the stack, handling conversion if
+ needed. Check error with #xmlXPathCheckError. """
+ ret = libxml2mod.xmlXPathPopString(self._o)
+ return ret
+
+ def xpathPositionFunction(self, nargs):
+ """Implement the position() XPath function number position()
+ The position function returns the position of the context
+ node in the context node list. The first position is 1, and
+ so the last position will be equal to last(). """
+ libxml2mod.xmlXPathPositionFunction(self._o, nargs)
+
+ def xpathRoot(self):
+ """Initialize the context to the root of the document """
+ libxml2mod.xmlXPathRoot(self._o)
+
+ def xpathRoundFunction(self, nargs):
+ """Implement the round() XPath function number round(number)
+ The round function returns the number that is closest to
+ the argument and that is an integer. If there are two such
+ numbers, then the one that is closest to positive infinity
+ is returned. """
+ libxml2mod.xmlXPathRoundFunction(self._o, nargs)
+
+ def xpathStartsWithFunction(self, nargs):
+ """Implement the starts-with() XPath function boolean
+ starts-with(string, string) The starts-with function
+ returns true if the first argument string starts with the
+ second argument string, and otherwise returns false. """
+ libxml2mod.xmlXPathStartsWithFunction(self._o, nargs)
+
+ def xpathStringFunction(self, nargs):
+ """Implement the string() XPath function string
+ string(object?) The string function converts an object to a
+ string as follows: - A node-set is converted to a string by
+ returning the value of the node in the node-set that is
+ first in document order. If the node-set is empty, an empty
+ string is returned. - A number is converted to a string as
+ follows + NaN is converted to the string NaN + positive
+ zero is converted to the string 0 + negative zero is
+ converted to the string 0 + positive infinity is converted
+ to the string Infinity + negative infinity is converted to
+ the string -Infinity + if the number is an integer, the
+ number is represented in decimal form as a Number with no
+ decimal point and no leading zeros, preceded by a minus
+ sign (-) if the number is negative + otherwise, the number
+ is represented in decimal form as a Number including a
+ decimal point with at least one digit before the decimal
+ point and at least one digit after the decimal point,
+ preceded by a minus sign (-) if the number is negative;
+ there must be no leading zeros before the decimal point
+ apart possibly from the one required digit immediately
+ before the decimal point; beyond the one required digit
+ after the decimal point there must be as many, but only as
+ many, more digits as are needed to uniquely distinguish the
+ number from all other IEEE 754 numeric values. - The
+ boolean false value is converted to the string false. The
+ boolean true value is converted to the string true. If the
+ argument is omitted, it defaults to a node-set with the
+ context node as its only member. """
+ libxml2mod.xmlXPathStringFunction(self._o, nargs)
+
+ def xpathStringLengthFunction(self, nargs):
+ """Implement the string-length() XPath function number
+ string-length(string?) The string-length returns the number
+ of characters in the string (see [3.6 Strings]). If the
+ argument is omitted, it defaults to the context node
+ converted to a string, in other words the value of the
+ context node. """
+ libxml2mod.xmlXPathStringLengthFunction(self._o, nargs)
+
+ def xpathSubValues(self):
+ """Implement the subtraction operation on XPath objects: The
+ numeric operators convert their operands to numbers as if
+ by calling the number function. """
+ libxml2mod.xmlXPathSubValues(self._o)
+
+ def xpathSubstringAfterFunction(self, nargs):
+ """Implement the substring-after() XPath function string
+ substring-after(string, string) The substring-after
+ function returns the substring of the first argument string
+ that follows the first occurrence of the second argument
+ string in the first argument string, or the empty stringi
+ if the first argument string does not contain the second
+ argument string. For example,
+ substring-after("1999/04/01","/") returns 04/01, and
+ substring-after("1999/04/01","19") returns 99/04/01. """
+ libxml2mod.xmlXPathSubstringAfterFunction(self._o, nargs)
+
+ def xpathSubstringBeforeFunction(self, nargs):
+ """Implement the substring-before() XPath function string
+ substring-before(string, string) The substring-before
+ function returns the substring of the first argument string
+ that precedes the first occurrence of the second argument
+ string in the first argument string, or the empty string if
+ the first argument string does not contain the second
+ argument string. For example,
+ substring-before("1999/04/01","/") returns 1999. """
+ libxml2mod.xmlXPathSubstringBeforeFunction(self._o, nargs)
+
+ def xpathSubstringFunction(self, nargs):
+ """Implement the substring() XPath function string
+ substring(string, number, number?) The substring function
+ returns the substring of the first argument starting at the
+ position specified in the second argument with length
+ specified in the third argument. For example,
+ substring("12345",2,3) returns "234". If the third argument
+ is not specified, it returns the substring starting at the
+ position specified in the second argument and continuing to
+ the end of the string. For example, substring("12345",2)
+ returns "2345". More precisely, each character in the
+ string (see [3.6 Strings]) is considered to have a numeric
+ position: the position of the first character is 1, the
+ position of the second character is 2 and so on. The
+ returned substring contains those characters for which the
+ position of the character is greater than or equal to the
+ second argument and, if the third argument is specified,
+ less than the sum of the second and third arguments; the
+ comparisons and addition used for the above follow the
+ standard IEEE 754 rules. Thus: - substring("12345", 1.5,
+ 2.6) returns "234" - substring("12345", 0, 3) returns "12"
+ - substring("12345", 0 div 0, 3) returns "" -
+ substring("12345", 1, 0 div 0) returns "" -
+ substring("12345", -42, 1 div 0) returns "12345" -
+ substring("12345", -1 div 0, 1 div 0) returns "" """
+ libxml2mod.xmlXPathSubstringFunction(self._o, nargs)
+
+ def xpathSumFunction(self, nargs):
+ """Implement the sum() XPath function number sum(node-set) The
+ sum function returns the sum of the values of the nodes in
+ the argument node-set. """
+ libxml2mod.xmlXPathSumFunction(self._o, nargs)
+
+ def xpathTranslateFunction(self, nargs):
+ """Implement the translate() XPath function string
+ translate(string, string, string) The translate function
+ returns the first argument string with occurrences of
+ characters in the second argument string replaced by the
+ character at the corresponding position in the third
+ argument string. For example, translate("bar","abc","ABC")
+ returns the string BAr. If there is a character in the
+ second argument string with no character at a corresponding
+ position in the third argument string (because the second
+ argument string is longer than the third argument string),
+ then occurrences of that character in the first argument
+ string are removed. For example,
+ translate("--aaa--","abc-","ABC") """
+ libxml2mod.xmlXPathTranslateFunction(self._o, nargs)
+
+ def xpathTrueFunction(self, nargs):
+ """Implement the true() XPath function boolean true() """
+ libxml2mod.xmlXPathTrueFunction(self._o, nargs)
+
+ def xpathValueFlipSign(self):
+ """Implement the unary - operation on an XPath object The
+ numeric operators convert their operands to numbers as if
+ by calling the number function. """
+ libxml2mod.xmlXPathValueFlipSign(self._o)
+
+ def xpatherror(self, file, line, no):
+ """Formats an error message. """
+ libxml2mod.xmlXPatherror(self._o, file, line, no)
+
+ #
+ # xpathParserContext functions from module xpointer
+ #
+
+ def xpointerEvalRangePredicate(self):
+ """[8] Predicate ::= '[' PredicateExpr ']' [9]
+ PredicateExpr ::= Expr Evaluate a predicate as in
+ xmlXPathEvalPredicate() but for a Location Set instead of a
+ node set """
+ libxml2mod.xmlXPtrEvalRangePredicate(self._o)
+
+ def xpointerRangeToFunction(self, nargs):
+ """Implement the range-to() XPointer function Obsolete.
+ range-to is not a real function but a special type of
+ location step which is handled in xpath.c. """
+ libxml2mod.xmlXPtrRangeToFunction(self._o, nargs)
+
+# xlinkShow
+XLINK_SHOW_NONE = 0
+XLINK_SHOW_NEW = 1
+XLINK_SHOW_EMBED = 2
+XLINK_SHOW_REPLACE = 3
+
+# xmlRelaxNGParserFlag
+XML_RELAXNGP_NONE = 0
+XML_RELAXNGP_FREE_DOC = 1
+XML_RELAXNGP_CRNG = 2
+
+# xmlBufferAllocationScheme
+XML_BUFFER_ALLOC_DOUBLEIT = 1
+XML_BUFFER_ALLOC_EXACT = 2
+XML_BUFFER_ALLOC_IMMUTABLE = 3
+XML_BUFFER_ALLOC_IO = 4
+XML_BUFFER_ALLOC_HYBRID = 5
+XML_BUFFER_ALLOC_BOUNDED = 6
+
+# xmlParserSeverities
+XML_PARSER_SEVERITY_VALIDITY_WARNING = 1
+XML_PARSER_SEVERITY_VALIDITY_ERROR = 2
+XML_PARSER_SEVERITY_WARNING = 3
+XML_PARSER_SEVERITY_ERROR = 4
+
+# xmlAttributeDefault
+XML_ATTRIBUTE_NONE = 1
+XML_ATTRIBUTE_REQUIRED = 2
+XML_ATTRIBUTE_IMPLIED = 3
+XML_ATTRIBUTE_FIXED = 4
+
+# xmlSchemaValType
+XML_SCHEMAS_UNKNOWN = 0
+XML_SCHEMAS_STRING = 1
+XML_SCHEMAS_NORMSTRING = 2
+XML_SCHEMAS_DECIMAL = 3
+XML_SCHEMAS_TIME = 4
+XML_SCHEMAS_GDAY = 5
+XML_SCHEMAS_GMONTH = 6
+XML_SCHEMAS_GMONTHDAY = 7
+XML_SCHEMAS_GYEAR = 8
+XML_SCHEMAS_GYEARMONTH = 9
+XML_SCHEMAS_DATE = 10
+XML_SCHEMAS_DATETIME = 11
+XML_SCHEMAS_DURATION = 12
+XML_SCHEMAS_FLOAT = 13
+XML_SCHEMAS_DOUBLE = 14
+XML_SCHEMAS_BOOLEAN = 15
+XML_SCHEMAS_TOKEN = 16
+XML_SCHEMAS_LANGUAGE = 17
+XML_SCHEMAS_NMTOKEN = 18
+XML_SCHEMAS_NMTOKENS = 19
+XML_SCHEMAS_NAME = 20
+XML_SCHEMAS_QNAME = 21
+XML_SCHEMAS_NCNAME = 22
+XML_SCHEMAS_ID = 23
+XML_SCHEMAS_IDREF = 24
+XML_SCHEMAS_IDREFS = 25
+XML_SCHEMAS_ENTITY = 26
+XML_SCHEMAS_ENTITIES = 27
+XML_SCHEMAS_NOTATION = 28
+XML_SCHEMAS_ANYURI = 29
+XML_SCHEMAS_INTEGER = 30
+XML_SCHEMAS_NPINTEGER = 31
+XML_SCHEMAS_NINTEGER = 32
+XML_SCHEMAS_NNINTEGER = 33
+XML_SCHEMAS_PINTEGER = 34
+XML_SCHEMAS_INT = 35
+XML_SCHEMAS_UINT = 36
+XML_SCHEMAS_LONG = 37
+XML_SCHEMAS_ULONG = 38
+XML_SCHEMAS_SHORT = 39
+XML_SCHEMAS_USHORT = 40
+XML_SCHEMAS_BYTE = 41
+XML_SCHEMAS_UBYTE = 42
+XML_SCHEMAS_HEXBINARY = 43
+XML_SCHEMAS_BASE64BINARY = 44
+XML_SCHEMAS_ANYTYPE = 45
+XML_SCHEMAS_ANYSIMPLETYPE = 46
+
+# xmlParserInputState
+XML_PARSER_EOF = -1
+XML_PARSER_START = 0
+XML_PARSER_MISC = 1
+XML_PARSER_PI = 2
+XML_PARSER_DTD = 3
+XML_PARSER_PROLOG = 4
+XML_PARSER_COMMENT = 5
+XML_PARSER_START_TAG = 6
+XML_PARSER_CONTENT = 7
+XML_PARSER_CDATA_SECTION = 8
+XML_PARSER_END_TAG = 9
+XML_PARSER_ENTITY_DECL = 10
+XML_PARSER_ENTITY_VALUE = 11
+XML_PARSER_ATTRIBUTE_VALUE = 12
+XML_PARSER_SYSTEM_LITERAL = 13
+XML_PARSER_EPILOG = 14
+XML_PARSER_IGNORE = 15
+XML_PARSER_PUBLIC_LITERAL = 16
+
+# xmlEntityType
+XML_INTERNAL_GENERAL_ENTITY = 1
+XML_EXTERNAL_GENERAL_PARSED_ENTITY = 2
+XML_EXTERNAL_GENERAL_UNPARSED_ENTITY = 3
+XML_INTERNAL_PARAMETER_ENTITY = 4
+XML_EXTERNAL_PARAMETER_ENTITY = 5
+XML_INTERNAL_PREDEFINED_ENTITY = 6
+
+# xmlSaveOption
+XML_SAVE_FORMAT = 1
+XML_SAVE_NO_DECL = 2
+XML_SAVE_NO_EMPTY = 4
+XML_SAVE_NO_XHTML = 8
+XML_SAVE_XHTML = 16
+XML_SAVE_AS_XML = 32
+XML_SAVE_AS_HTML = 64
+XML_SAVE_WSNONSIG = 128
+
+# xmlPatternFlags
+XML_PATTERN_DEFAULT = 0
+XML_PATTERN_XPATH = 1
+XML_PATTERN_XSSEL = 2
+XML_PATTERN_XSFIELD = 4
+
+# xmlParserErrors
+XML_ERR_OK = 0
+XML_ERR_INTERNAL_ERROR = 1
+XML_ERR_NO_MEMORY = 2
+XML_ERR_DOCUMENT_START = 3
+XML_ERR_DOCUMENT_EMPTY = 4
+XML_ERR_DOCUMENT_END = 5
+XML_ERR_INVALID_HEX_CHARREF = 6
+XML_ERR_INVALID_DEC_CHARREF = 7
+XML_ERR_INVALID_CHARREF = 8
+XML_ERR_INVALID_CHAR = 9
+XML_ERR_CHARREF_AT_EOF = 10
+XML_ERR_CHARREF_IN_PROLOG = 11
+XML_ERR_CHARREF_IN_EPILOG = 12
+XML_ERR_CHARREF_IN_DTD = 13
+XML_ERR_ENTITYREF_AT_EOF = 14
+XML_ERR_ENTITYREF_IN_PROLOG = 15
+XML_ERR_ENTITYREF_IN_EPILOG = 16
+XML_ERR_ENTITYREF_IN_DTD = 17
+XML_ERR_PEREF_AT_EOF = 18
+XML_ERR_PEREF_IN_PROLOG = 19
+XML_ERR_PEREF_IN_EPILOG = 20
+XML_ERR_PEREF_IN_INT_SUBSET = 21
+XML_ERR_ENTITYREF_NO_NAME = 22
+XML_ERR_ENTITYREF_SEMICOL_MISSING = 23
+XML_ERR_PEREF_NO_NAME = 24
+XML_ERR_PEREF_SEMICOL_MISSING = 25
+XML_ERR_UNDECLARED_ENTITY = 26
+XML_WAR_UNDECLARED_ENTITY = 27
+XML_ERR_UNPARSED_ENTITY = 28
+XML_ERR_ENTITY_IS_EXTERNAL = 29
+XML_ERR_ENTITY_IS_PARAMETER = 30
+XML_ERR_UNKNOWN_ENCODING = 31
+XML_ERR_UNSUPPORTED_ENCODING = 32
+XML_ERR_STRING_NOT_STARTED = 33
+XML_ERR_STRING_NOT_CLOSED = 34
+XML_ERR_NS_DECL_ERROR = 35
+XML_ERR_ENTITY_NOT_STARTED = 36
+XML_ERR_ENTITY_NOT_FINISHED = 37
+XML_ERR_LT_IN_ATTRIBUTE = 38
+XML_ERR_ATTRIBUTE_NOT_STARTED = 39
+XML_ERR_ATTRIBUTE_NOT_FINISHED = 40
+XML_ERR_ATTRIBUTE_WITHOUT_VALUE = 41
+XML_ERR_ATTRIBUTE_REDEFINED = 42
+XML_ERR_LITERAL_NOT_STARTED = 43
+XML_ERR_LITERAL_NOT_FINISHED = 44
+XML_ERR_COMMENT_NOT_FINISHED = 45
+XML_ERR_PI_NOT_STARTED = 46
+XML_ERR_PI_NOT_FINISHED = 47
+XML_ERR_NOTATION_NOT_STARTED = 48
+XML_ERR_NOTATION_NOT_FINISHED = 49
+XML_ERR_ATTLIST_NOT_STARTED = 50
+XML_ERR_ATTLIST_NOT_FINISHED = 51
+XML_ERR_MIXED_NOT_STARTED = 52
+XML_ERR_MIXED_NOT_FINISHED = 53
+XML_ERR_ELEMCONTENT_NOT_STARTED = 54
+XML_ERR_ELEMCONTENT_NOT_FINISHED = 55
+XML_ERR_XMLDECL_NOT_STARTED = 56
+XML_ERR_XMLDECL_NOT_FINISHED = 57
+XML_ERR_CONDSEC_NOT_STARTED = 58
+XML_ERR_CONDSEC_NOT_FINISHED = 59
+XML_ERR_EXT_SUBSET_NOT_FINISHED = 60
+XML_ERR_DOCTYPE_NOT_FINISHED = 61
+XML_ERR_MISPLACED_CDATA_END = 62
+XML_ERR_CDATA_NOT_FINISHED = 63
+XML_ERR_RESERVED_XML_NAME = 64
+XML_ERR_SPACE_REQUIRED = 65
+XML_ERR_SEPARATOR_REQUIRED = 66
+XML_ERR_NMTOKEN_REQUIRED = 67
+XML_ERR_NAME_REQUIRED = 68
+XML_ERR_PCDATA_REQUIRED = 69
+XML_ERR_URI_REQUIRED = 70
+XML_ERR_PUBID_REQUIRED = 71
+XML_ERR_LT_REQUIRED = 72
+XML_ERR_GT_REQUIRED = 73
+XML_ERR_LTSLASH_REQUIRED = 74
+XML_ERR_EQUAL_REQUIRED = 75
+XML_ERR_TAG_NAME_MISMATCH = 76
+XML_ERR_TAG_NOT_FINISHED = 77
+XML_ERR_STANDALONE_VALUE = 78
+XML_ERR_ENCODING_NAME = 79
+XML_ERR_HYPHEN_IN_COMMENT = 80
+XML_ERR_INVALID_ENCODING = 81
+XML_ERR_EXT_ENTITY_STANDALONE = 82
+XML_ERR_CONDSEC_INVALID = 83
+XML_ERR_VALUE_REQUIRED = 84
+XML_ERR_NOT_WELL_BALANCED = 85
+XML_ERR_EXTRA_CONTENT = 86
+XML_ERR_ENTITY_CHAR_ERROR = 87
+XML_ERR_ENTITY_PE_INTERNAL = 88
+XML_ERR_ENTITY_LOOP = 89
+XML_ERR_ENTITY_BOUNDARY = 90
+XML_ERR_INVALID_URI = 91
+XML_ERR_URI_FRAGMENT = 92
+XML_WAR_CATALOG_PI = 93
+XML_ERR_NO_DTD = 94
+XML_ERR_CONDSEC_INVALID_KEYWORD = 95
+XML_ERR_VERSION_MISSING = 96
+XML_WAR_UNKNOWN_VERSION = 97
+XML_WAR_LANG_VALUE = 98
+XML_WAR_NS_URI = 99
+XML_WAR_NS_URI_RELATIVE = 100
+XML_ERR_MISSING_ENCODING = 101
+XML_WAR_SPACE_VALUE = 102
+XML_ERR_NOT_STANDALONE = 103
+XML_ERR_ENTITY_PROCESSING = 104
+XML_ERR_NOTATION_PROCESSING = 105
+XML_WAR_NS_COLUMN = 106
+XML_WAR_ENTITY_REDEFINED = 107
+XML_ERR_UNKNOWN_VERSION = 108
+XML_ERR_VERSION_MISMATCH = 109
+XML_ERR_NAME_TOO_LONG = 110
+XML_ERR_USER_STOP = 111
+XML_NS_ERR_XML_NAMESPACE = 200
+XML_NS_ERR_UNDEFINED_NAMESPACE = 201
+XML_NS_ERR_QNAME = 202
+XML_NS_ERR_ATTRIBUTE_REDEFINED = 203
+XML_NS_ERR_EMPTY = 204
+XML_NS_ERR_COLON = 205
+XML_DTD_ATTRIBUTE_DEFAULT = 500
+XML_DTD_ATTRIBUTE_REDEFINED = 501
+XML_DTD_ATTRIBUTE_VALUE = 502
+XML_DTD_CONTENT_ERROR = 503
+XML_DTD_CONTENT_MODEL = 504
+XML_DTD_CONTENT_NOT_DETERMINIST = 505
+XML_DTD_DIFFERENT_PREFIX = 506
+XML_DTD_ELEM_DEFAULT_NAMESPACE = 507
+XML_DTD_ELEM_NAMESPACE = 508
+XML_DTD_ELEM_REDEFINED = 509
+XML_DTD_EMPTY_NOTATION = 510
+XML_DTD_ENTITY_TYPE = 511
+XML_DTD_ID_FIXED = 512
+XML_DTD_ID_REDEFINED = 513
+XML_DTD_ID_SUBSET = 514
+XML_DTD_INVALID_CHILD = 515
+XML_DTD_INVALID_DEFAULT = 516
+XML_DTD_LOAD_ERROR = 517
+XML_DTD_MISSING_ATTRIBUTE = 518
+XML_DTD_MIXED_CORRUPT = 519
+XML_DTD_MULTIPLE_ID = 520
+XML_DTD_NO_DOC = 521
+XML_DTD_NO_DTD = 522
+XML_DTD_NO_ELEM_NAME = 523
+XML_DTD_NO_PREFIX = 524
+XML_DTD_NO_ROOT = 525
+XML_DTD_NOTATION_REDEFINED = 526
+XML_DTD_NOTATION_VALUE = 527
+XML_DTD_NOT_EMPTY = 528
+XML_DTD_NOT_PCDATA = 529
+XML_DTD_NOT_STANDALONE = 530
+XML_DTD_ROOT_NAME = 531
+XML_DTD_STANDALONE_WHITE_SPACE = 532
+XML_DTD_UNKNOWN_ATTRIBUTE = 533
+XML_DTD_UNKNOWN_ELEM = 534
+XML_DTD_UNKNOWN_ENTITY = 535
+XML_DTD_UNKNOWN_ID = 536
+XML_DTD_UNKNOWN_NOTATION = 537
+XML_DTD_STANDALONE_DEFAULTED = 538
+XML_DTD_XMLID_VALUE = 539
+XML_DTD_XMLID_TYPE = 540
+XML_DTD_DUP_TOKEN = 541
+XML_HTML_STRUCURE_ERROR = 800
+XML_HTML_UNKNOWN_TAG = 801
+XML_RNGP_ANYNAME_ATTR_ANCESTOR = 1000
+XML_RNGP_ATTR_CONFLICT = 1001
+XML_RNGP_ATTRIBUTE_CHILDREN = 1002
+XML_RNGP_ATTRIBUTE_CONTENT = 1003
+XML_RNGP_ATTRIBUTE_EMPTY = 1004
+XML_RNGP_ATTRIBUTE_NOOP = 1005
+XML_RNGP_CHOICE_CONTENT = 1006
+XML_RNGP_CHOICE_EMPTY = 1007
+XML_RNGP_CREATE_FAILURE = 1008
+XML_RNGP_DATA_CONTENT = 1009
+XML_RNGP_DEF_CHOICE_AND_INTERLEAVE = 1010
+XML_RNGP_DEFINE_CREATE_FAILED = 1011
+XML_RNGP_DEFINE_EMPTY = 1012
+XML_RNGP_DEFINE_MISSING = 1013
+XML_RNGP_DEFINE_NAME_MISSING = 1014
+XML_RNGP_ELEM_CONTENT_EMPTY = 1015
+XML_RNGP_ELEM_CONTENT_ERROR = 1016
+XML_RNGP_ELEMENT_EMPTY = 1017
+XML_RNGP_ELEMENT_CONTENT = 1018
+XML_RNGP_ELEMENT_NAME = 1019
+XML_RNGP_ELEMENT_NO_CONTENT = 1020
+XML_RNGP_ELEM_TEXT_CONFLICT = 1021
+XML_RNGP_EMPTY = 1022
+XML_RNGP_EMPTY_CONSTRUCT = 1023
+XML_RNGP_EMPTY_CONTENT = 1024
+XML_RNGP_EMPTY_NOT_EMPTY = 1025
+XML_RNGP_ERROR_TYPE_LIB = 1026
+XML_RNGP_EXCEPT_EMPTY = 1027
+XML_RNGP_EXCEPT_MISSING = 1028
+XML_RNGP_EXCEPT_MULTIPLE = 1029
+XML_RNGP_EXCEPT_NO_CONTENT = 1030
+XML_RNGP_EXTERNALREF_EMTPY = 1031
+XML_RNGP_EXTERNAL_REF_FAILURE = 1032
+XML_RNGP_EXTERNALREF_RECURSE = 1033
+XML_RNGP_FORBIDDEN_ATTRIBUTE = 1034
+XML_RNGP_FOREIGN_ELEMENT = 1035
+XML_RNGP_GRAMMAR_CONTENT = 1036
+XML_RNGP_GRAMMAR_EMPTY = 1037
+XML_RNGP_GRAMMAR_MISSING = 1038
+XML_RNGP_GRAMMAR_NO_START = 1039
+XML_RNGP_GROUP_ATTR_CONFLICT = 1040
+XML_RNGP_HREF_ERROR = 1041
+XML_RNGP_INCLUDE_EMPTY = 1042
+XML_RNGP_INCLUDE_FAILURE = 1043
+XML_RNGP_INCLUDE_RECURSE = 1044
+XML_RNGP_INTERLEAVE_ADD = 1045
+XML_RNGP_INTERLEAVE_CREATE_FAILED = 1046
+XML_RNGP_INTERLEAVE_EMPTY = 1047
+XML_RNGP_INTERLEAVE_NO_CONTENT = 1048
+XML_RNGP_INVALID_DEFINE_NAME = 1049
+XML_RNGP_INVALID_URI = 1050
+XML_RNGP_INVALID_VALUE = 1051
+XML_RNGP_MISSING_HREF = 1052
+XML_RNGP_NAME_MISSING = 1053
+XML_RNGP_NEED_COMBINE = 1054
+XML_RNGP_NOTALLOWED_NOT_EMPTY = 1055
+XML_RNGP_NSNAME_ATTR_ANCESTOR = 1056
+XML_RNGP_NSNAME_NO_NS = 1057
+XML_RNGP_PARAM_FORBIDDEN = 1058
+XML_RNGP_PARAM_NAME_MISSING = 1059
+XML_RNGP_PARENTREF_CREATE_FAILED = 1060
+XML_RNGP_PARENTREF_NAME_INVALID = 1061
+XML_RNGP_PARENTREF_NO_NAME = 1062
+XML_RNGP_PARENTREF_NO_PARENT = 1063
+XML_RNGP_PARENTREF_NOT_EMPTY = 1064
+XML_RNGP_PARSE_ERROR = 1065
+XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME = 1066
+XML_RNGP_PAT_ATTR_ATTR = 1067
+XML_RNGP_PAT_ATTR_ELEM = 1068
+XML_RNGP_PAT_DATA_EXCEPT_ATTR = 1069
+XML_RNGP_PAT_DATA_EXCEPT_ELEM = 1070
+XML_RNGP_PAT_DATA_EXCEPT_EMPTY = 1071
+XML_RNGP_PAT_DATA_EXCEPT_GROUP = 1072
+XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE = 1073
+XML_RNGP_PAT_DATA_EXCEPT_LIST = 1074
+XML_RNGP_PAT_DATA_EXCEPT_ONEMORE = 1075
+XML_RNGP_PAT_DATA_EXCEPT_REF = 1076
+XML_RNGP_PAT_DATA_EXCEPT_TEXT = 1077
+XML_RNGP_PAT_LIST_ATTR = 1078
+XML_RNGP_PAT_LIST_ELEM = 1079
+XML_RNGP_PAT_LIST_INTERLEAVE = 1080
+XML_RNGP_PAT_LIST_LIST = 1081
+XML_RNGP_PAT_LIST_REF = 1082
+XML_RNGP_PAT_LIST_TEXT = 1083
+XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME = 1084
+XML_RNGP_PAT_NSNAME_EXCEPT_NSNAME = 1085
+XML_RNGP_PAT_ONEMORE_GROUP_ATTR = 1086
+XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR = 1087
+XML_RNGP_PAT_START_ATTR = 1088
+XML_RNGP_PAT_START_DATA = 1089
+XML_RNGP_PAT_START_EMPTY = 1090
+XML_RNGP_PAT_START_GROUP = 1091
+XML_RNGP_PAT_START_INTERLEAVE = 1092
+XML_RNGP_PAT_START_LIST = 1093
+XML_RNGP_PAT_START_ONEMORE = 1094
+XML_RNGP_PAT_START_TEXT = 1095
+XML_RNGP_PAT_START_VALUE = 1096
+XML_RNGP_PREFIX_UNDEFINED = 1097
+XML_RNGP_REF_CREATE_FAILED = 1098
+XML_RNGP_REF_CYCLE = 1099
+XML_RNGP_REF_NAME_INVALID = 1100
+XML_RNGP_REF_NO_DEF = 1101
+XML_RNGP_REF_NO_NAME = 1102
+XML_RNGP_REF_NOT_EMPTY = 1103
+XML_RNGP_START_CHOICE_AND_INTERLEAVE = 1104
+XML_RNGP_START_CONTENT = 1105
+XML_RNGP_START_EMPTY = 1106
+XML_RNGP_START_MISSING = 1107
+XML_RNGP_TEXT_EXPECTED = 1108
+XML_RNGP_TEXT_HAS_CHILD = 1109
+XML_RNGP_TYPE_MISSING = 1110
+XML_RNGP_TYPE_NOT_FOUND = 1111
+XML_RNGP_TYPE_VALUE = 1112
+XML_RNGP_UNKNOWN_ATTRIBUTE = 1113
+XML_RNGP_UNKNOWN_COMBINE = 1114
+XML_RNGP_UNKNOWN_CONSTRUCT = 1115
+XML_RNGP_UNKNOWN_TYPE_LIB = 1116
+XML_RNGP_URI_FRAGMENT = 1117
+XML_RNGP_URI_NOT_ABSOLUTE = 1118
+XML_RNGP_VALUE_EMPTY = 1119
+XML_RNGP_VALUE_NO_CONTENT = 1120
+XML_RNGP_XMLNS_NAME = 1121
+XML_RNGP_XML_NS = 1122
+XML_XPATH_EXPRESSION_OK = 1200
+XML_XPATH_NUMBER_ERROR = 1201
+XML_XPATH_UNFINISHED_LITERAL_ERROR = 1202
+XML_XPATH_START_LITERAL_ERROR = 1203
+XML_XPATH_VARIABLE_REF_ERROR = 1204
+XML_XPATH_UNDEF_VARIABLE_ERROR = 1205
+XML_XPATH_INVALID_PREDICATE_ERROR = 1206
+XML_XPATH_EXPR_ERROR = 1207
+XML_XPATH_UNCLOSED_ERROR = 1208
+XML_XPATH_UNKNOWN_FUNC_ERROR = 1209
+XML_XPATH_INVALID_OPERAND = 1210
+XML_XPATH_INVALID_TYPE = 1211
+XML_XPATH_INVALID_ARITY = 1212
+XML_XPATH_INVALID_CTXT_SIZE = 1213
+XML_XPATH_INVALID_CTXT_POSITION = 1214
+XML_XPATH_MEMORY_ERROR = 1215
+XML_XPTR_SYNTAX_ERROR = 1216
+XML_XPTR_RESOURCE_ERROR = 1217
+XML_XPTR_SUB_RESOURCE_ERROR = 1218
+XML_XPATH_UNDEF_PREFIX_ERROR = 1219
+XML_XPATH_ENCODING_ERROR = 1220
+XML_XPATH_INVALID_CHAR_ERROR = 1221
+XML_TREE_INVALID_HEX = 1300
+XML_TREE_INVALID_DEC = 1301
+XML_TREE_UNTERMINATED_ENTITY = 1302
+XML_TREE_NOT_UTF8 = 1303
+XML_SAVE_NOT_UTF8 = 1400
+XML_SAVE_CHAR_INVALID = 1401
+XML_SAVE_NO_DOCTYPE = 1402
+XML_SAVE_UNKNOWN_ENCODING = 1403
+XML_REGEXP_COMPILE_ERROR = 1450
+XML_IO_UNKNOWN = 1500
+XML_IO_EACCES = 1501
+XML_IO_EAGAIN = 1502
+XML_IO_EBADF = 1503
+XML_IO_EBADMSG = 1504
+XML_IO_EBUSY = 1505
+XML_IO_ECANCELED = 1506
+XML_IO_ECHILD = 1507
+XML_IO_EDEADLK = 1508
+XML_IO_EDOM = 1509
+XML_IO_EEXIST = 1510
+XML_IO_EFAULT = 1511
+XML_IO_EFBIG = 1512
+XML_IO_EINPROGRESS = 1513
+XML_IO_EINTR = 1514
+XML_IO_EINVAL = 1515
+XML_IO_EIO = 1516
+XML_IO_EISDIR = 1517
+XML_IO_EMFILE = 1518
+XML_IO_EMLINK = 1519
+XML_IO_EMSGSIZE = 1520
+XML_IO_ENAMETOOLONG = 1521
+XML_IO_ENFILE = 1522
+XML_IO_ENODEV = 1523
+XML_IO_ENOENT = 1524
+XML_IO_ENOEXEC = 1525
+XML_IO_ENOLCK = 1526
+XML_IO_ENOMEM = 1527
+XML_IO_ENOSPC = 1528
+XML_IO_ENOSYS = 1529
+XML_IO_ENOTDIR = 1530
+XML_IO_ENOTEMPTY = 1531
+XML_IO_ENOTSUP = 1532
+XML_IO_ENOTTY = 1533
+XML_IO_ENXIO = 1534
+XML_IO_EPERM = 1535
+XML_IO_EPIPE = 1536
+XML_IO_ERANGE = 1537
+XML_IO_EROFS = 1538
+XML_IO_ESPIPE = 1539
+XML_IO_ESRCH = 1540
+XML_IO_ETIMEDOUT = 1541
+XML_IO_EXDEV = 1542
+XML_IO_NETWORK_ATTEMPT = 1543
+XML_IO_ENCODER = 1544
+XML_IO_FLUSH = 1545
+XML_IO_WRITE = 1546
+XML_IO_NO_INPUT = 1547
+XML_IO_BUFFER_FULL = 1548
+XML_IO_LOAD_ERROR = 1549
+XML_IO_ENOTSOCK = 1550
+XML_IO_EISCONN = 1551
+XML_IO_ECONNREFUSED = 1552
+XML_IO_ENETUNREACH = 1553
+XML_IO_EADDRINUSE = 1554
+XML_IO_EALREADY = 1555
+XML_IO_EAFNOSUPPORT = 1556
+XML_XINCLUDE_RECURSION = 1600
+XML_XINCLUDE_PARSE_VALUE = 1601
+XML_XINCLUDE_ENTITY_DEF_MISMATCH = 1602
+XML_XINCLUDE_NO_HREF = 1603
+XML_XINCLUDE_NO_FALLBACK = 1604
+XML_XINCLUDE_HREF_URI = 1605
+XML_XINCLUDE_TEXT_FRAGMENT = 1606
+XML_XINCLUDE_TEXT_DOCUMENT = 1607
+XML_XINCLUDE_INVALID_CHAR = 1608
+XML_XINCLUDE_BUILD_FAILED = 1609
+XML_XINCLUDE_UNKNOWN_ENCODING = 1610
+XML_XINCLUDE_MULTIPLE_ROOT = 1611
+XML_XINCLUDE_XPTR_FAILED = 1612
+XML_XINCLUDE_XPTR_RESULT = 1613
+XML_XINCLUDE_INCLUDE_IN_INCLUDE = 1614
+XML_XINCLUDE_FALLBACKS_IN_INCLUDE = 1615
+XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDE = 1616
+XML_XINCLUDE_DEPRECATED_NS = 1617
+XML_XINCLUDE_FRAGMENT_ID = 1618
+XML_CATALOG_MISSING_ATTR = 1650
+XML_CATALOG_ENTRY_BROKEN = 1651
+XML_CATALOG_PREFER_VALUE = 1652
+XML_CATALOG_NOT_CATALOG = 1653
+XML_CATALOG_RECURSION = 1654
+XML_SCHEMAP_PREFIX_UNDEFINED = 1700
+XML_SCHEMAP_ATTRFORMDEFAULT_VALUE = 1701
+XML_SCHEMAP_ATTRGRP_NONAME_NOREF = 1702
+XML_SCHEMAP_ATTR_NONAME_NOREF = 1703
+XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF = 1704
+XML_SCHEMAP_ELEMFORMDEFAULT_VALUE = 1705
+XML_SCHEMAP_ELEM_NONAME_NOREF = 1706
+XML_SCHEMAP_EXTENSION_NO_BASE = 1707
+XML_SCHEMAP_FACET_NO_VALUE = 1708
+XML_SCHEMAP_FAILED_BUILD_IMPORT = 1709
+XML_SCHEMAP_GROUP_NONAME_NOREF = 1710
+XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI = 1711
+XML_SCHEMAP_IMPORT_REDEFINE_NSNAME = 1712
+XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI = 1713
+XML_SCHEMAP_INVALID_BOOLEAN = 1714
+XML_SCHEMAP_INVALID_ENUM = 1715
+XML_SCHEMAP_INVALID_FACET = 1716
+XML_SCHEMAP_INVALID_FACET_VALUE = 1717
+XML_SCHEMAP_INVALID_MAXOCCURS = 1718
+XML_SCHEMAP_INVALID_MINOCCURS = 1719
+XML_SCHEMAP_INVALID_REF_AND_SUBTYPE = 1720
+XML_SCHEMAP_INVALID_WHITE_SPACE = 1721
+XML_SCHEMAP_NOATTR_NOREF = 1722
+XML_SCHEMAP_NOTATION_NO_NAME = 1723
+XML_SCHEMAP_NOTYPE_NOREF = 1724
+XML_SCHEMAP_REF_AND_SUBTYPE = 1725
+XML_SCHEMAP_RESTRICTION_NONAME_NOREF = 1726
+XML_SCHEMAP_SIMPLETYPE_NONAME = 1727
+XML_SCHEMAP_TYPE_AND_SUBTYPE = 1728
+XML_SCHEMAP_UNKNOWN_ALL_CHILD = 1729
+XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD = 1730
+XML_SCHEMAP_UNKNOWN_ATTR_CHILD = 1731
+XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD = 1732
+XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP = 1733
+XML_SCHEMAP_UNKNOWN_BASE_TYPE = 1734
+XML_SCHEMAP_UNKNOWN_CHOICE_CHILD = 1735
+XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD = 1736
+XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD = 1737
+XML_SCHEMAP_UNKNOWN_ELEM_CHILD = 1738
+XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD = 1739
+XML_SCHEMAP_UNKNOWN_FACET_CHILD = 1740
+XML_SCHEMAP_UNKNOWN_FACET_TYPE = 1741
+XML_SCHEMAP_UNKNOWN_GROUP_CHILD = 1742
+XML_SCHEMAP_UNKNOWN_IMPORT_CHILD = 1743
+XML_SCHEMAP_UNKNOWN_LIST_CHILD = 1744
+XML_SCHEMAP_UNKNOWN_NOTATION_CHILD = 1745
+XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD = 1746
+XML_SCHEMAP_UNKNOWN_REF = 1747
+XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD = 1748
+XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILD = 1749
+XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD = 1750
+XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD = 1751
+XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD = 1752
+XML_SCHEMAP_UNKNOWN_TYPE = 1753
+XML_SCHEMAP_UNKNOWN_UNION_CHILD = 1754
+XML_SCHEMAP_ELEM_DEFAULT_FIXED = 1755
+XML_SCHEMAP_REGEXP_INVALID = 1756
+XML_SCHEMAP_FAILED_LOAD = 1757
+XML_SCHEMAP_NOTHING_TO_PARSE = 1758
+XML_SCHEMAP_NOROOT = 1759
+XML_SCHEMAP_REDEFINED_GROUP = 1760
+XML_SCHEMAP_REDEFINED_TYPE = 1761
+XML_SCHEMAP_REDEFINED_ELEMENT = 1762
+XML_SCHEMAP_REDEFINED_ATTRGROUP = 1763
+XML_SCHEMAP_REDEFINED_ATTR = 1764
+XML_SCHEMAP_REDEFINED_NOTATION = 1765
+XML_SCHEMAP_FAILED_PARSE = 1766
+XML_SCHEMAP_UNKNOWN_PREFIX = 1767
+XML_SCHEMAP_DEF_AND_PREFIX = 1768
+XML_SCHEMAP_UNKNOWN_INCLUDE_CHILD = 1769
+XML_SCHEMAP_INCLUDE_SCHEMA_NOT_URI = 1770
+XML_SCHEMAP_INCLUDE_SCHEMA_NO_URI = 1771
+XML_SCHEMAP_NOT_SCHEMA = 1772
+XML_SCHEMAP_UNKNOWN_MEMBER_TYPE = 1773
+XML_SCHEMAP_INVALID_ATTR_USE = 1774
+XML_SCHEMAP_RECURSIVE = 1775
+XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE = 1776
+XML_SCHEMAP_INVALID_ATTR_COMBINATION = 1777
+XML_SCHEMAP_INVALID_ATTR_INLINE_COMBINATION = 1778
+XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD = 1779
+XML_SCHEMAP_INVALID_ATTR_NAME = 1780
+XML_SCHEMAP_REF_AND_CONTENT = 1781
+XML_SCHEMAP_CT_PROPS_CORRECT_1 = 1782
+XML_SCHEMAP_CT_PROPS_CORRECT_2 = 1783
+XML_SCHEMAP_CT_PROPS_CORRECT_3 = 1784
+XML_SCHEMAP_CT_PROPS_CORRECT_4 = 1785
+XML_SCHEMAP_CT_PROPS_CORRECT_5 = 1786
+XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1 = 1787
+XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1 = 1788
+XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2 = 1789
+XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2 = 1790
+XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3 = 1791
+XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER = 1792
+XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE = 1793
+XML_SCHEMAP_UNION_NOT_EXPRESSIBLE = 1794
+XML_SCHEMAP_SRC_IMPORT_3_1 = 1795
+XML_SCHEMAP_SRC_IMPORT_3_2 = 1796
+XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1 = 1797
+XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2 = 1798
+XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3 = 1799
+XML_SCHEMAP_COS_CT_EXTENDS_1_3 = 1800
+XML_SCHEMAV_NOROOT = 1801
+XML_SCHEMAV_UNDECLAREDELEM = 1802
+XML_SCHEMAV_NOTTOPLEVEL = 1803
+XML_SCHEMAV_MISSING = 1804
+XML_SCHEMAV_WRONGELEM = 1805
+XML_SCHEMAV_NOTYPE = 1806
+XML_SCHEMAV_NOROLLBACK = 1807
+XML_SCHEMAV_ISABSTRACT = 1808
+XML_SCHEMAV_NOTEMPTY = 1809
+XML_SCHEMAV_ELEMCONT = 1810
+XML_SCHEMAV_HAVEDEFAULT = 1811
+XML_SCHEMAV_NOTNILLABLE = 1812
+XML_SCHEMAV_EXTRACONTENT = 1813
+XML_SCHEMAV_INVALIDATTR = 1814
+XML_SCHEMAV_INVALIDELEM = 1815
+XML_SCHEMAV_NOTDETERMINIST = 1816
+XML_SCHEMAV_CONSTRUCT = 1817
+XML_SCHEMAV_INTERNAL = 1818
+XML_SCHEMAV_NOTSIMPLE = 1819
+XML_SCHEMAV_ATTRUNKNOWN = 1820
+XML_SCHEMAV_ATTRINVALID = 1821
+XML_SCHEMAV_VALUE = 1822
+XML_SCHEMAV_FACET = 1823
+XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1 = 1824
+XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2 = 1825
+XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3 = 1826
+XML_SCHEMAV_CVC_TYPE_3_1_1 = 1827
+XML_SCHEMAV_CVC_TYPE_3_1_2 = 1828
+XML_SCHEMAV_CVC_FACET_VALID = 1829
+XML_SCHEMAV_CVC_LENGTH_VALID = 1830
+XML_SCHEMAV_CVC_MINLENGTH_VALID = 1831
+XML_SCHEMAV_CVC_MAXLENGTH_VALID = 1832
+XML_SCHEMAV_CVC_MININCLUSIVE_VALID = 1833
+XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID = 1834
+XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID = 1835
+XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID = 1836
+XML_SCHEMAV_CVC_TOTALDIGITS_VALID = 1837
+XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID = 1838
+XML_SCHEMAV_CVC_PATTERN_VALID = 1839
+XML_SCHEMAV_CVC_ENUMERATION_VALID = 1840
+XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1 = 1841
+XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2 = 1842
+XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3 = 1843
+XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4 = 1844
+XML_SCHEMAV_CVC_ELT_1 = 1845
+XML_SCHEMAV_CVC_ELT_2 = 1846
+XML_SCHEMAV_CVC_ELT_3_1 = 1847
+XML_SCHEMAV_CVC_ELT_3_2_1 = 1848
+XML_SCHEMAV_CVC_ELT_3_2_2 = 1849
+XML_SCHEMAV_CVC_ELT_4_1 = 1850
+XML_SCHEMAV_CVC_ELT_4_2 = 1851
+XML_SCHEMAV_CVC_ELT_4_3 = 1852
+XML_SCHEMAV_CVC_ELT_5_1_1 = 1853
+XML_SCHEMAV_CVC_ELT_5_1_2 = 1854
+XML_SCHEMAV_CVC_ELT_5_2_1 = 1855
+XML_SCHEMAV_CVC_ELT_5_2_2_1 = 1856
+XML_SCHEMAV_CVC_ELT_5_2_2_2_1 = 1857
+XML_SCHEMAV_CVC_ELT_5_2_2_2_2 = 1858
+XML_SCHEMAV_CVC_ELT_6 = 1859
+XML_SCHEMAV_CVC_ELT_7 = 1860
+XML_SCHEMAV_CVC_ATTRIBUTE_1 = 1861
+XML_SCHEMAV_CVC_ATTRIBUTE_2 = 1862
+XML_SCHEMAV_CVC_ATTRIBUTE_3 = 1863
+XML_SCHEMAV_CVC_ATTRIBUTE_4 = 1864
+XML_SCHEMAV_CVC_COMPLEX_TYPE_3_1 = 1865
+XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_1 = 1866
+XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_2 = 1867
+XML_SCHEMAV_CVC_COMPLEX_TYPE_4 = 1868
+XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1 = 1869
+XML_SCHEMAV_CVC_COMPLEX_TYPE_5_2 = 1870
+XML_SCHEMAV_ELEMENT_CONTENT = 1871
+XML_SCHEMAV_DOCUMENT_ELEMENT_MISSING = 1872
+XML_SCHEMAV_CVC_COMPLEX_TYPE_1 = 1873
+XML_SCHEMAV_CVC_AU = 1874
+XML_SCHEMAV_CVC_TYPE_1 = 1875
+XML_SCHEMAV_CVC_TYPE_2 = 1876
+XML_SCHEMAV_CVC_IDC = 1877
+XML_SCHEMAV_CVC_WILDCARD = 1878
+XML_SCHEMAV_MISC = 1879
+XML_XPTR_UNKNOWN_SCHEME = 1900
+XML_XPTR_CHILDSEQ_START = 1901
+XML_XPTR_EVAL_FAILED = 1902
+XML_XPTR_EXTRA_OBJECTS = 1903
+XML_C14N_CREATE_CTXT = 1950
+XML_C14N_REQUIRES_UTF8 = 1951
+XML_C14N_CREATE_STACK = 1952
+XML_C14N_INVALID_NODE = 1953
+XML_C14N_UNKNOW_NODE = 1954
+XML_C14N_RELATIVE_NAMESPACE = 1955
+XML_FTP_PASV_ANSWER = 2000
+XML_FTP_EPSV_ANSWER = 2001
+XML_FTP_ACCNT = 2002
+XML_FTP_URL_SYNTAX = 2003
+XML_HTTP_URL_SYNTAX = 2020
+XML_HTTP_USE_IP = 2021
+XML_HTTP_UNKNOWN_HOST = 2022
+XML_SCHEMAP_SRC_SIMPLE_TYPE_1 = 3000
+XML_SCHEMAP_SRC_SIMPLE_TYPE_2 = 3001
+XML_SCHEMAP_SRC_SIMPLE_TYPE_3 = 3002
+XML_SCHEMAP_SRC_SIMPLE_TYPE_4 = 3003
+XML_SCHEMAP_SRC_RESOLVE = 3004
+XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE = 3005
+XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE = 3006
+XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES = 3007
+XML_SCHEMAP_ST_PROPS_CORRECT_1 = 3008
+XML_SCHEMAP_ST_PROPS_CORRECT_2 = 3009
+XML_SCHEMAP_ST_PROPS_CORRECT_3 = 3010
+XML_SCHEMAP_COS_ST_RESTRICTS_1_1 = 3011
+XML_SCHEMAP_COS_ST_RESTRICTS_1_2 = 3012
+XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1 = 3013
+XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2 = 3014
+XML_SCHEMAP_COS_ST_RESTRICTS_2_1 = 3015
+XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1 = 3016
+XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2 = 3017
+XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1 = 3018
+XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2 = 3019
+XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3 = 3020
+XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4 = 3021
+XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5 = 3022
+XML_SCHEMAP_COS_ST_RESTRICTS_3_1 = 3023
+XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1 = 3024
+XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2 = 3025
+XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2 = 3026
+XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1 = 3027
+XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3 = 3028
+XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4 = 3029
+XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5 = 3030
+XML_SCHEMAP_COS_ST_DERIVED_OK_2_1 = 3031
+XML_SCHEMAP_COS_ST_DERIVED_OK_2_2 = 3032
+XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED = 3033
+XML_SCHEMAP_S4S_ELEM_MISSING = 3034
+XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED = 3035
+XML_SCHEMAP_S4S_ATTR_MISSING = 3036
+XML_SCHEMAP_S4S_ATTR_INVALID_VALUE = 3037
+XML_SCHEMAP_SRC_ELEMENT_1 = 3038
+XML_SCHEMAP_SRC_ELEMENT_2_1 = 3039
+XML_SCHEMAP_SRC_ELEMENT_2_2 = 3040
+XML_SCHEMAP_SRC_ELEMENT_3 = 3041
+XML_SCHEMAP_P_PROPS_CORRECT_1 = 3042
+XML_SCHEMAP_P_PROPS_CORRECT_2_1 = 3043
+XML_SCHEMAP_P_PROPS_CORRECT_2_2 = 3044
+XML_SCHEMAP_E_PROPS_CORRECT_2 = 3045
+XML_SCHEMAP_E_PROPS_CORRECT_3 = 3046
+XML_SCHEMAP_E_PROPS_CORRECT_4 = 3047
+XML_SCHEMAP_E_PROPS_CORRECT_5 = 3048
+XML_SCHEMAP_E_PROPS_CORRECT_6 = 3049
+XML_SCHEMAP_SRC_INCLUDE = 3050
+XML_SCHEMAP_SRC_ATTRIBUTE_1 = 3051
+XML_SCHEMAP_SRC_ATTRIBUTE_2 = 3052
+XML_SCHEMAP_SRC_ATTRIBUTE_3_1 = 3053
+XML_SCHEMAP_SRC_ATTRIBUTE_3_2 = 3054
+XML_SCHEMAP_SRC_ATTRIBUTE_4 = 3055
+XML_SCHEMAP_NO_XMLNS = 3056
+XML_SCHEMAP_NO_XSI = 3057
+XML_SCHEMAP_COS_VALID_DEFAULT_1 = 3058
+XML_SCHEMAP_COS_VALID_DEFAULT_2_1 = 3059
+XML_SCHEMAP_COS_VALID_DEFAULT_2_2_1 = 3060
+XML_SCHEMAP_COS_VALID_DEFAULT_2_2_2 = 3061
+XML_SCHEMAP_CVC_SIMPLE_TYPE = 3062
+XML_SCHEMAP_COS_CT_EXTENDS_1_1 = 3063
+XML_SCHEMAP_SRC_IMPORT_1_1 = 3064
+XML_SCHEMAP_SRC_IMPORT_1_2 = 3065
+XML_SCHEMAP_SRC_IMPORT_2 = 3066
+XML_SCHEMAP_SRC_IMPORT_2_1 = 3067
+XML_SCHEMAP_SRC_IMPORT_2_2 = 3068
+XML_SCHEMAP_INTERNAL = 3069
+XML_SCHEMAP_NOT_DETERMINISTIC = 3070
+XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_1 = 3071
+XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2 = 3072
+XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3 = 3073
+XML_SCHEMAP_MG_PROPS_CORRECT_1 = 3074
+XML_SCHEMAP_MG_PROPS_CORRECT_2 = 3075
+XML_SCHEMAP_SRC_CT_1 = 3076
+XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3 = 3077
+XML_SCHEMAP_AU_PROPS_CORRECT_2 = 3078
+XML_SCHEMAP_A_PROPS_CORRECT_2 = 3079
+XML_SCHEMAP_C_PROPS_CORRECT = 3080
+XML_SCHEMAP_SRC_REDEFINE = 3081
+XML_SCHEMAP_SRC_IMPORT = 3082
+XML_SCHEMAP_WARN_SKIP_SCHEMA = 3083
+XML_SCHEMAP_WARN_UNLOCATED_SCHEMA = 3084
+XML_SCHEMAP_WARN_ATTR_REDECL_PROH = 3085
+XML_SCHEMAP_WARN_ATTR_POINTLESS_PROH = 3086
+XML_SCHEMAP_AG_PROPS_CORRECT = 3087
+XML_SCHEMAP_COS_CT_EXTENDS_1_2 = 3088
+XML_SCHEMAP_AU_PROPS_CORRECT = 3089
+XML_SCHEMAP_A_PROPS_CORRECT_3 = 3090
+XML_SCHEMAP_COS_ALL_LIMITED = 3091
+XML_SCHEMATRONV_ASSERT = 4000
+XML_SCHEMATRONV_REPORT = 4001
+XML_MODULE_OPEN = 4900
+XML_MODULE_CLOSE = 4901
+XML_CHECK_FOUND_ELEMENT = 5000
+XML_CHECK_FOUND_ATTRIBUTE = 5001
+XML_CHECK_FOUND_TEXT = 5002
+XML_CHECK_FOUND_CDATA = 5003
+XML_CHECK_FOUND_ENTITYREF = 5004
+XML_CHECK_FOUND_ENTITY = 5005
+XML_CHECK_FOUND_PI = 5006
+XML_CHECK_FOUND_COMMENT = 5007
+XML_CHECK_FOUND_DOCTYPE = 5008
+XML_CHECK_FOUND_FRAGMENT = 5009
+XML_CHECK_FOUND_NOTATION = 5010
+XML_CHECK_UNKNOWN_NODE = 5011
+XML_CHECK_ENTITY_TYPE = 5012
+XML_CHECK_NO_PARENT = 5013
+XML_CHECK_NO_DOC = 5014
+XML_CHECK_NO_NAME = 5015
+XML_CHECK_NO_ELEM = 5016
+XML_CHECK_WRONG_DOC = 5017
+XML_CHECK_NO_PREV = 5018
+XML_CHECK_WRONG_PREV = 5019
+XML_CHECK_NO_NEXT = 5020
+XML_CHECK_WRONG_NEXT = 5021
+XML_CHECK_NOT_DTD = 5022
+XML_CHECK_NOT_ATTR = 5023
+XML_CHECK_NOT_ATTR_DECL = 5024
+XML_CHECK_NOT_ELEM_DECL = 5025
+XML_CHECK_NOT_ENTITY_DECL = 5026
+XML_CHECK_NOT_NS_DECL = 5027
+XML_CHECK_NO_HREF = 5028
+XML_CHECK_WRONG_PARENT = 5029
+XML_CHECK_NS_SCOPE = 5030
+XML_CHECK_NS_ANCESTOR = 5031
+XML_CHECK_NOT_UTF8 = 5032
+XML_CHECK_NO_DICT = 5033
+XML_CHECK_NOT_NCNAME = 5034
+XML_CHECK_OUTSIDE_DICT = 5035
+XML_CHECK_WRONG_NAME = 5036
+XML_CHECK_NAME_NOT_NULL = 5037
+XML_I18N_NO_NAME = 6000
+XML_I18N_NO_HANDLER = 6001
+XML_I18N_EXCESS_HANDLER = 6002
+XML_I18N_CONV_FAILED = 6003
+XML_I18N_NO_OUTPUT = 6004
+XML_BUF_OVERFLOW = 7000
+
+# xmlExpNodeType
+XML_EXP_EMPTY = 0
+XML_EXP_FORBID = 1
+XML_EXP_ATOM = 2
+XML_EXP_SEQ = 3
+XML_EXP_OR = 4
+XML_EXP_COUNT = 5
+
+# xmlElementContentType
+XML_ELEMENT_CONTENT_PCDATA = 1
+XML_ELEMENT_CONTENT_ELEMENT = 2
+XML_ELEMENT_CONTENT_SEQ = 3
+XML_ELEMENT_CONTENT_OR = 4
+
+# xmlParserProperties
+XML_PARSER_LOADDTD = 1
+XML_PARSER_DEFAULTATTRS = 2
+XML_PARSER_VALIDATE = 3
+XML_PARSER_SUBST_ENTITIES = 4
+
+# xmlReaderTypes
+XML_READER_TYPE_NONE = 0
+XML_READER_TYPE_ELEMENT = 1
+XML_READER_TYPE_ATTRIBUTE = 2
+XML_READER_TYPE_TEXT = 3
+XML_READER_TYPE_CDATA = 4
+XML_READER_TYPE_ENTITY_REFERENCE = 5
+XML_READER_TYPE_ENTITY = 6
+XML_READER_TYPE_PROCESSING_INSTRUCTION = 7
+XML_READER_TYPE_COMMENT = 8
+XML_READER_TYPE_DOCUMENT = 9
+XML_READER_TYPE_DOCUMENT_TYPE = 10
+XML_READER_TYPE_DOCUMENT_FRAGMENT = 11
+XML_READER_TYPE_NOTATION = 12
+XML_READER_TYPE_WHITESPACE = 13
+XML_READER_TYPE_SIGNIFICANT_WHITESPACE = 14
+XML_READER_TYPE_END_ELEMENT = 15
+XML_READER_TYPE_END_ENTITY = 16
+XML_READER_TYPE_XML_DECLARATION = 17
+
+# xmlCatalogPrefer
+XML_CATA_PREFER_NONE = 0
+XML_CATA_PREFER_PUBLIC = 1
+XML_CATA_PREFER_SYSTEM = 2
+
+# xmlElementType
+XML_ELEMENT_NODE = 1
+XML_ATTRIBUTE_NODE = 2
+XML_TEXT_NODE = 3
+XML_CDATA_SECTION_NODE = 4
+XML_ENTITY_REF_NODE = 5
+XML_ENTITY_NODE = 6
+XML_PI_NODE = 7
+XML_COMMENT_NODE = 8
+XML_DOCUMENT_NODE = 9
+XML_DOCUMENT_TYPE_NODE = 10
+XML_DOCUMENT_FRAG_NODE = 11
+XML_NOTATION_NODE = 12
+XML_HTML_DOCUMENT_NODE = 13
+XML_DTD_NODE = 14
+XML_ELEMENT_DECL = 15
+XML_ATTRIBUTE_DECL = 16
+XML_ENTITY_DECL = 17
+XML_NAMESPACE_DECL = 18
+XML_XINCLUDE_START = 19
+XML_XINCLUDE_END = 20
+XML_DOCB_DOCUMENT_NODE = 21
+
+# xlinkActuate
+XLINK_ACTUATE_NONE = 0
+XLINK_ACTUATE_AUTO = 1
+XLINK_ACTUATE_ONREQUEST = 2
+
+# xmlFeature
+XML_WITH_THREAD = 1
+XML_WITH_TREE = 2
+XML_WITH_OUTPUT = 3
+XML_WITH_PUSH = 4
+XML_WITH_READER = 5
+XML_WITH_PATTERN = 6
+XML_WITH_WRITER = 7
+XML_WITH_SAX1 = 8
+XML_WITH_FTP = 9
+XML_WITH_HTTP = 10
+XML_WITH_VALID = 11
+XML_WITH_HTML = 12
+XML_WITH_LEGACY = 13
+XML_WITH_C14N = 14
+XML_WITH_CATALOG = 15
+XML_WITH_XPATH = 16
+XML_WITH_XPTR = 17
+XML_WITH_XINCLUDE = 18
+XML_WITH_ICONV = 19
+XML_WITH_ISO8859X = 20
+XML_WITH_UNICODE = 21
+XML_WITH_REGEXP = 22
+XML_WITH_AUTOMATA = 23
+XML_WITH_EXPR = 24
+XML_WITH_SCHEMAS = 25
+XML_WITH_SCHEMATRON = 26
+XML_WITH_MODULES = 27
+XML_WITH_DEBUG = 28
+XML_WITH_DEBUG_MEM = 29
+XML_WITH_DEBUG_RUN = 30
+XML_WITH_ZLIB = 31
+XML_WITH_ICU = 32
+XML_WITH_LZMA = 33
+XML_WITH_NONE = 99999
+
+# xmlElementContentOccur
+XML_ELEMENT_CONTENT_ONCE = 1
+XML_ELEMENT_CONTENT_OPT = 2
+XML_ELEMENT_CONTENT_MULT = 3
+XML_ELEMENT_CONTENT_PLUS = 4
+
+# xmlXPathError
+XPATH_EXPRESSION_OK = 0
+XPATH_NUMBER_ERROR = 1
+XPATH_UNFINISHED_LITERAL_ERROR = 2
+XPATH_START_LITERAL_ERROR = 3
+XPATH_VARIABLE_REF_ERROR = 4
+XPATH_UNDEF_VARIABLE_ERROR = 5
+XPATH_INVALID_PREDICATE_ERROR = 6
+XPATH_EXPR_ERROR = 7
+XPATH_UNCLOSED_ERROR = 8
+XPATH_UNKNOWN_FUNC_ERROR = 9
+XPATH_INVALID_OPERAND = 10
+XPATH_INVALID_TYPE = 11
+XPATH_INVALID_ARITY = 12
+XPATH_INVALID_CTXT_SIZE = 13
+XPATH_INVALID_CTXT_POSITION = 14
+XPATH_MEMORY_ERROR = 15
+XPTR_SYNTAX_ERROR = 16
+XPTR_RESOURCE_ERROR = 17
+XPTR_SUB_RESOURCE_ERROR = 18
+XPATH_UNDEF_PREFIX_ERROR = 19
+XPATH_ENCODING_ERROR = 20
+XPATH_INVALID_CHAR_ERROR = 21
+XPATH_INVALID_CTXT = 22
+XPATH_STACK_ERROR = 23
+XPATH_FORBID_VARIABLE_ERROR = 24
+XPATH_OP_LIMIT_EXCEEDED = 25
+XPATH_RECURSION_LIMIT_EXCEEDED = 26
+
+# xmlTextReaderMode
+XML_TEXTREADER_MODE_INITIAL = 0
+XML_TEXTREADER_MODE_INTERACTIVE = 1
+XML_TEXTREADER_MODE_ERROR = 2
+XML_TEXTREADER_MODE_EOF = 3
+XML_TEXTREADER_MODE_CLOSED = 4
+XML_TEXTREADER_MODE_READING = 5
+
+# xmlErrorLevel
+XML_ERR_NONE = 0
+XML_ERR_WARNING = 1
+XML_ERR_ERROR = 2
+XML_ERR_FATAL = 3
+
+# xmlCharEncoding
+XML_CHAR_ENCODING_ERROR = -1
+XML_CHAR_ENCODING_NONE = 0
+XML_CHAR_ENCODING_UTF8 = 1
+XML_CHAR_ENCODING_UTF16LE = 2
+XML_CHAR_ENCODING_UTF16BE = 3
+XML_CHAR_ENCODING_UCS4LE = 4
+XML_CHAR_ENCODING_UCS4BE = 5
+XML_CHAR_ENCODING_EBCDIC = 6
+XML_CHAR_ENCODING_UCS4_2143 = 7
+XML_CHAR_ENCODING_UCS4_3412 = 8
+XML_CHAR_ENCODING_UCS2 = 9
+XML_CHAR_ENCODING_8859_1 = 10
+XML_CHAR_ENCODING_8859_2 = 11
+XML_CHAR_ENCODING_8859_3 = 12
+XML_CHAR_ENCODING_8859_4 = 13
+XML_CHAR_ENCODING_8859_5 = 14
+XML_CHAR_ENCODING_8859_6 = 15
+XML_CHAR_ENCODING_8859_7 = 16
+XML_CHAR_ENCODING_8859_8 = 17
+XML_CHAR_ENCODING_8859_9 = 18
+XML_CHAR_ENCODING_2022_JP = 19
+XML_CHAR_ENCODING_SHIFT_JIS = 20
+XML_CHAR_ENCODING_EUC_JP = 21
+XML_CHAR_ENCODING_ASCII = 22
+
+# xmlErrorDomain
+XML_FROM_NONE = 0
+XML_FROM_PARSER = 1
+XML_FROM_TREE = 2
+XML_FROM_NAMESPACE = 3
+XML_FROM_DTD = 4
+XML_FROM_HTML = 5
+XML_FROM_MEMORY = 6
+XML_FROM_OUTPUT = 7
+XML_FROM_IO = 8
+XML_FROM_FTP = 9
+XML_FROM_HTTP = 10
+XML_FROM_XINCLUDE = 11
+XML_FROM_XPATH = 12
+XML_FROM_XPOINTER = 13
+XML_FROM_REGEXP = 14
+XML_FROM_DATATYPE = 15
+XML_FROM_SCHEMASP = 16
+XML_FROM_SCHEMASV = 17
+XML_FROM_RELAXNGP = 18
+XML_FROM_RELAXNGV = 19
+XML_FROM_CATALOG = 20
+XML_FROM_C14N = 21
+XML_FROM_XSLT = 22
+XML_FROM_VALID = 23
+XML_FROM_CHECK = 24
+XML_FROM_WRITER = 25
+XML_FROM_MODULE = 26
+XML_FROM_I18N = 27
+XML_FROM_SCHEMATRONV = 28
+XML_FROM_BUFFER = 29
+XML_FROM_URI = 30
+
+# htmlStatus
+HTML_NA = 0
+HTML_INVALID = 1
+HTML_DEPRECATED = 2
+HTML_VALID = 4
+HTML_REQUIRED = 12
+
+# xmlSchemaValidOption
+XML_SCHEMA_VAL_VC_I_CREATE = 1
+
+# xmlSchemaWhitespaceValueType
+XML_SCHEMA_WHITESPACE_UNKNOWN = 0
+XML_SCHEMA_WHITESPACE_PRESERVE = 1
+XML_SCHEMA_WHITESPACE_REPLACE = 2
+XML_SCHEMA_WHITESPACE_COLLAPSE = 3
+
+# htmlParserOption
+HTML_PARSE_RECOVER = 1
+HTML_PARSE_NODEFDTD = 4
+HTML_PARSE_NOERROR = 32
+HTML_PARSE_NOWARNING = 64
+HTML_PARSE_PEDANTIC = 128
+HTML_PARSE_NOBLANKS = 256
+HTML_PARSE_NONET = 2048
+HTML_PARSE_NOIMPLIED = 8192
+HTML_PARSE_COMPACT = 65536
+HTML_PARSE_IGNORE_ENC = 2097152
+
+# xmlRelaxNGValidErr
+XML_RELAXNG_OK = 0
+XML_RELAXNG_ERR_MEMORY = 1
+XML_RELAXNG_ERR_TYPE = 2
+XML_RELAXNG_ERR_TYPEVAL = 3
+XML_RELAXNG_ERR_DUPID = 4
+XML_RELAXNG_ERR_TYPECMP = 5
+XML_RELAXNG_ERR_NOSTATE = 6
+XML_RELAXNG_ERR_NODEFINE = 7
+XML_RELAXNG_ERR_LISTEXTRA = 8
+XML_RELAXNG_ERR_LISTEMPTY = 9
+XML_RELAXNG_ERR_INTERNODATA = 10
+XML_RELAXNG_ERR_INTERSEQ = 11
+XML_RELAXNG_ERR_INTEREXTRA = 12
+XML_RELAXNG_ERR_ELEMNAME = 13
+XML_RELAXNG_ERR_ATTRNAME = 14
+XML_RELAXNG_ERR_ELEMNONS = 15
+XML_RELAXNG_ERR_ATTRNONS = 16
+XML_RELAXNG_ERR_ELEMWRONGNS = 17
+XML_RELAXNG_ERR_ATTRWRONGNS = 18
+XML_RELAXNG_ERR_ELEMEXTRANS = 19
+XML_RELAXNG_ERR_ATTREXTRANS = 20
+XML_RELAXNG_ERR_ELEMNOTEMPTY = 21
+XML_RELAXNG_ERR_NOELEM = 22
+XML_RELAXNG_ERR_NOTELEM = 23
+XML_RELAXNG_ERR_ATTRVALID = 24
+XML_RELAXNG_ERR_CONTENTVALID = 25
+XML_RELAXNG_ERR_EXTRACONTENT = 26
+XML_RELAXNG_ERR_INVALIDATTR = 27
+XML_RELAXNG_ERR_DATAELEM = 28
+XML_RELAXNG_ERR_VALELEM = 29
+XML_RELAXNG_ERR_LISTELEM = 30
+XML_RELAXNG_ERR_DATATYPE = 31
+XML_RELAXNG_ERR_VALUE = 32
+XML_RELAXNG_ERR_LIST = 33
+XML_RELAXNG_ERR_NOGRAMMAR = 34
+XML_RELAXNG_ERR_EXTRADATA = 35
+XML_RELAXNG_ERR_LACKDATA = 36
+XML_RELAXNG_ERR_INTERNAL = 37
+XML_RELAXNG_ERR_ELEMWRONG = 38
+XML_RELAXNG_ERR_TEXTWRONG = 39
+
+# xmlCatalogAllow
+XML_CATA_ALLOW_NONE = 0
+XML_CATA_ALLOW_GLOBAL = 1
+XML_CATA_ALLOW_DOCUMENT = 2
+XML_CATA_ALLOW_ALL = 3
+
+# xmlAttributeType
+XML_ATTRIBUTE_CDATA = 1
+XML_ATTRIBUTE_ID = 2
+XML_ATTRIBUTE_IDREF = 3
+XML_ATTRIBUTE_IDREFS = 4
+XML_ATTRIBUTE_ENTITY = 5
+XML_ATTRIBUTE_ENTITIES = 6
+XML_ATTRIBUTE_NMTOKEN = 7
+XML_ATTRIBUTE_NMTOKENS = 8
+XML_ATTRIBUTE_ENUMERATION = 9
+XML_ATTRIBUTE_NOTATION = 10
+
+# xmlSchematronValidOptions
+XML_SCHEMATRON_OUT_QUIET = 1
+XML_SCHEMATRON_OUT_TEXT = 2
+XML_SCHEMATRON_OUT_XML = 4
+XML_SCHEMATRON_OUT_ERROR = 8
+XML_SCHEMATRON_OUT_FILE = 256
+XML_SCHEMATRON_OUT_BUFFER = 512
+XML_SCHEMATRON_OUT_IO = 1024
+
+# xmlSchemaContentType
+XML_SCHEMA_CONTENT_UNKNOWN = 0
+XML_SCHEMA_CONTENT_EMPTY = 1
+XML_SCHEMA_CONTENT_ELEMENTS = 2
+XML_SCHEMA_CONTENT_MIXED = 3
+XML_SCHEMA_CONTENT_SIMPLE = 4
+XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS = 5
+XML_SCHEMA_CONTENT_BASIC = 6
+XML_SCHEMA_CONTENT_ANY = 7
+
+# xmlSchemaTypeType
+XML_SCHEMA_TYPE_BASIC = 1
+XML_SCHEMA_TYPE_ANY = 2
+XML_SCHEMA_TYPE_FACET = 3
+XML_SCHEMA_TYPE_SIMPLE = 4
+XML_SCHEMA_TYPE_COMPLEX = 5
+XML_SCHEMA_TYPE_SEQUENCE = 6
+XML_SCHEMA_TYPE_CHOICE = 7
+XML_SCHEMA_TYPE_ALL = 8
+XML_SCHEMA_TYPE_SIMPLE_CONTENT = 9
+XML_SCHEMA_TYPE_COMPLEX_CONTENT = 10
+XML_SCHEMA_TYPE_UR = 11
+XML_SCHEMA_TYPE_RESTRICTION = 12
+XML_SCHEMA_TYPE_EXTENSION = 13
+XML_SCHEMA_TYPE_ELEMENT = 14
+XML_SCHEMA_TYPE_ATTRIBUTE = 15
+XML_SCHEMA_TYPE_ATTRIBUTEGROUP = 16
+XML_SCHEMA_TYPE_GROUP = 17
+XML_SCHEMA_TYPE_NOTATION = 18
+XML_SCHEMA_TYPE_LIST = 19
+XML_SCHEMA_TYPE_UNION = 20
+XML_SCHEMA_TYPE_ANY_ATTRIBUTE = 21
+XML_SCHEMA_TYPE_IDC_UNIQUE = 22
+XML_SCHEMA_TYPE_IDC_KEY = 23
+XML_SCHEMA_TYPE_IDC_KEYREF = 24
+XML_SCHEMA_TYPE_PARTICLE = 25
+XML_SCHEMA_TYPE_ATTRIBUTE_USE = 26
+XML_SCHEMA_FACET_MININCLUSIVE = 1000
+XML_SCHEMA_FACET_MINEXCLUSIVE = 1001
+XML_SCHEMA_FACET_MAXINCLUSIVE = 1002
+XML_SCHEMA_FACET_MAXEXCLUSIVE = 1003
+XML_SCHEMA_FACET_TOTALDIGITS = 1004
+XML_SCHEMA_FACET_FRACTIONDIGITS = 1005
+XML_SCHEMA_FACET_PATTERN = 1006
+XML_SCHEMA_FACET_ENUMERATION = 1007
+XML_SCHEMA_FACET_WHITESPACE = 1008
+XML_SCHEMA_FACET_LENGTH = 1009
+XML_SCHEMA_FACET_MAXLENGTH = 1010
+XML_SCHEMA_FACET_MINLENGTH = 1011
+XML_SCHEMA_EXTRA_QNAMEREF = 2000
+XML_SCHEMA_EXTRA_ATTR_USE_PROHIB = 2001
+
+# xmlModuleOption
+XML_MODULE_LAZY = 1
+XML_MODULE_LOCAL = 2
+
+# xmlParserMode
+XML_PARSE_UNKNOWN = 0
+XML_PARSE_DOM = 1
+XML_PARSE_SAX = 2
+XML_PARSE_PUSH_DOM = 3
+XML_PARSE_PUSH_SAX = 4
+XML_PARSE_READER = 5
+
+# xmlC14NMode
+XML_C14N_1_0 = 0
+XML_C14N_EXCLUSIVE_1_0 = 1
+XML_C14N_1_1 = 2
+
+# xmlParserOption
+XML_PARSE_RECOVER = 1
+XML_PARSE_NOENT = 2
+XML_PARSE_DTDLOAD = 4
+XML_PARSE_DTDATTR = 8
+XML_PARSE_DTDVALID = 16
+XML_PARSE_NOERROR = 32
+XML_PARSE_NOWARNING = 64
+XML_PARSE_PEDANTIC = 128
+XML_PARSE_NOBLANKS = 256
+XML_PARSE_SAX1 = 512
+XML_PARSE_XINCLUDE = 1024
+XML_PARSE_NONET = 2048
+XML_PARSE_NODICT = 4096
+XML_PARSE_NSCLEAN = 8192
+XML_PARSE_NOCDATA = 16384
+XML_PARSE_NOXINCNODE = 32768
+XML_PARSE_COMPACT = 65536
+XML_PARSE_OLD10 = 131072
+XML_PARSE_NOBASEFIX = 262144
+XML_PARSE_HUGE = 524288
+XML_PARSE_OLDSAX = 1048576
+XML_PARSE_IGNORE_ENC = 2097152
+XML_PARSE_BIG_LINES = 4194304
+
+# xmlElementTypeVal
+XML_ELEMENT_TYPE_UNDEFINED = 0
+XML_ELEMENT_TYPE_EMPTY = 1
+XML_ELEMENT_TYPE_ANY = 2
+XML_ELEMENT_TYPE_MIXED = 3
+XML_ELEMENT_TYPE_ELEMENT = 4
+
+# xmlDocProperties
+XML_DOC_WELLFORMED = 1
+XML_DOC_NSVALID = 2
+XML_DOC_OLD10 = 4
+XML_DOC_DTDVALID = 8
+XML_DOC_XINCLUDE = 16
+XML_DOC_USERBUILT = 32
+XML_DOC_INTERNAL = 64
+XML_DOC_HTML = 128
+
+# xlinkType
+XLINK_TYPE_NONE = 0
+XLINK_TYPE_SIMPLE = 1
+XLINK_TYPE_EXTENDED = 2
+XLINK_TYPE_EXTENDED_SET = 3
+
+# xmlXPathObjectType
+XPATH_UNDEFINED = 0
+XPATH_NODESET = 1
+XPATH_BOOLEAN = 2
+XPATH_NUMBER = 3
+XPATH_STRING = 4
+XPATH_POINT = 5
+XPATH_RANGE = 6
+XPATH_LOCATIONSET = 7
+XPATH_USERS = 8
+XPATH_XSLT_TREE = 9
+
+# xmlSchemaValidError
+XML_SCHEMAS_ERR_OK = 0
+XML_SCHEMAS_ERR_NOROOT = 1
+XML_SCHEMAS_ERR_UNDECLAREDELEM = 2
+XML_SCHEMAS_ERR_NOTTOPLEVEL = 3
+XML_SCHEMAS_ERR_MISSING = 4
+XML_SCHEMAS_ERR_WRONGELEM = 5
+XML_SCHEMAS_ERR_NOTYPE = 6
+XML_SCHEMAS_ERR_NOROLLBACK = 7
+XML_SCHEMAS_ERR_ISABSTRACT = 8
+XML_SCHEMAS_ERR_NOTEMPTY = 9
+XML_SCHEMAS_ERR_ELEMCONT = 10
+XML_SCHEMAS_ERR_HAVEDEFAULT = 11
+XML_SCHEMAS_ERR_NOTNILLABLE = 12
+XML_SCHEMAS_ERR_EXTRACONTENT = 13
+XML_SCHEMAS_ERR_INVALIDATTR = 14
+XML_SCHEMAS_ERR_INVALIDELEM = 15
+XML_SCHEMAS_ERR_NOTDETERMINIST = 16
+XML_SCHEMAS_ERR_CONSTRUCT = 17
+XML_SCHEMAS_ERR_INTERNAL = 18
+XML_SCHEMAS_ERR_NOTSIMPLE = 19
+XML_SCHEMAS_ERR_ATTRUNKNOWN = 20
+XML_SCHEMAS_ERR_ATTRINVALID = 21
+XML_SCHEMAS_ERR_VALUE = 22
+XML_SCHEMAS_ERR_FACET = 23
+XML_SCHEMAS_ERR_ = 24
+XML_SCHEMAS_ERR_XXX = 25
+