From 35a201cc8ef0c3f5b2df88d2e528aabee1048348 Mon Sep 17 00:00:00 2001 From: Wojtek Kosior Date: Fri, 30 Apr 2021 18:47:09 +0200 Subject: Initial/Final commit --- libxml2-2.9.10/python/libxml2.py | 9327 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 9327 insertions(+) create mode 100644 libxml2-2.9.10/python/libxml2.py (limited to 'libxml2-2.9.10/python/libxml2.py') 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 "" % (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 "" % (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 ::= '' [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 ::= '' 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 ">", and must, for + compatibility, be escaped using ">" 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 ::= '' """ + 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 ::= + '' [ 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 ::= + '' [ 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 ::= '' With + namespace [NS 9] ETag ::= '' """ + libxml2mod.xmlParseEndTag(self._o) + + def parseEntityDecl(self): + """parse ' [72] PEDecl ::= '' + [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 '' + 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 ::= '' 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 ::= '' """ + 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 ::= '' """ + 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 "" % (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 "" % (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 "" % (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 "" % (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 "" % (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 "" % (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 � 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 + -- cgit v1.2.3