### ----------------------------------------------------
### -- LibXML
### -- Licenses: Artistic-2.0
### -- Authors: David Warring
### -- File: etc/libxml2-api.xml
### ----------------------------------------------------
### -- Chunk 32 of 44
='warn' type='xmlRelaxNGValidityWarningFunc *' info='the warning callback result'/>
      <arg name='ctx' type='void **' info='contextual data for the callbacks result'/>
    </function>
    <function name='xmlRelaxNGGetValidErrors' file='relaxng' module='relaxng'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Get the error and warning callback informations</info>
      <return type='int' info='-1 in case of error and 0 otherwise'/>
      <arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='a Relax-NG validation context'/>
      <arg name='err' type='xmlRelaxNGValidityErrorFunc *' info='the error function result'/>
      <arg name='warn' type='xmlRelaxNGValidityWarningFunc *' info='the warning function result'/>
      <arg name='ctx' type='void **' info='the functions context result'/>
    </function>
    <function name='xmlRelaxNGInitTypes' file='relaxng' module='relaxng'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Initilize the default type libraries.</info>
      <return type='int' info='0 in case of success and -1 in case of error.'/>
    </function>
    <function name='xmlRelaxNGNewDocParserCtxt' file='relaxng' module='relaxng'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>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.</info>
      <return type='xmlRelaxNGParserCtxtPtr' info='the parser context or NULL in case of error'/>
      <arg name='doc' type='xmlDocPtr' info='a preparsed document tree'/>
    </function>
    <function name='xmlRelaxNGNewMemParserCtxt' file='relaxng' module='relaxng'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Create an XML RelaxNGs parse context for that memory buffer expected to contain an XML RelaxNGs file.</info>
      <return type='xmlRelaxNGParserCtxtPtr' info='the parser context or NULL in case of error'/>
      <arg name='buffer' type='const char *' info='a pointer to a char array containing the schemas'/>
      <arg name='size' type='int' info='the size of the array'/>
    </function>
    <function name='xmlRelaxNGNewParserCtxt' file='relaxng' module='relaxng'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Create an XML RelaxNGs parse context for that file/resource expected to contain an XML RelaxNGs file.</info>
      <return type='xmlRelaxNGParserCtxtPtr' info='the parser context or NULL in case of error'/>
      <arg name='URL' type='const char *' info='the location of the schema'/>
    </function>
    <function name='xmlRelaxNGNewValidCtxt' file='relaxng' module='relaxng'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Create an XML RelaxNGs validation context based on the given schema</info>
      <return type='xmlRelaxNGValidCtxtPtr' info='the validation context or NULL in case of error'/>
      <arg name='schema' type='xmlRelaxNGPtr' info='a precompiled XML RelaxNGs'/>
    </function>
    <function name='xmlRelaxNGParse' file='relaxng' module='relaxng'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>parse a schema definition resource and build an internal XML Shema struture which can be used to validate instances.</info>
      <return type='xmlRelaxNGPtr' info='the internal XML RelaxNG structure built from the resource or NULL in case of error'/>
      <arg name='ctxt' type='xmlRelaxNGParserCtxtPtr' info='a Relax-NG parser context'/>
    </function>
    <function name='xmlRelaxNGSetParserErrors' file='relaxng' module='relaxng'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Set the callback functions used to handle errors for a validation context</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlRelaxNGParserCtxtPtr' info='a Relax-NG validation context'/>
      <arg name='err' type='xmlRelaxNGValidityErrorFunc' info='the error callback'/>
      <arg name='warn' type='xmlRelaxNGValidityWarningFunc' info='the warning callback'/>
      <arg name='ctx' type='void *' info='contextual data for the callbacks'/>
    </function>
    <function name='xmlRelaxNGSetParserStructuredErrors' file='relaxng' module='relaxng'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Set the callback functions used to handle errors for a parsing context</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlRelaxNGParserCtxtPtr' info='a Relax-NG parser context'/>
      <arg name='serror' type='xmlStructuredErrorFunc' info='the error callback'/>
      <arg name='ctx' type='void *' info='contextual data for the callbacks'/>
    </function>
    <function name='xmlRelaxNGSetValidErrors' file='relaxng' module='relaxng'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Set the error and warning callback informations</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='a Relax-NG validation context'/>
      <arg name='err' type='xmlRelaxNGValidityErrorFunc' info='the error function'/>
      <arg name='warn' type='xmlRelaxNGValidityWarningFunc' info='the warning function'/>
      <arg name='ctx' type='void *' info='the functions context'/>
    </function>
    <function name='xmlRelaxNGSetValidStructuredErrors' file='relaxng' module='relaxng'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Set the structured error callback</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='a Relax-NG validation context'/>
      <arg name='serror' type='xmlStructuredErrorFunc' info='the structured error function'/>
      <arg name='ctx' type='void *' info='the functions context'/>
    </function>
    <function name='xmlRelaxNGValidateDoc' file='relaxng' module='relaxng'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Validate a document tree in memory.</info>
      <return type='int' info='0 if the document is valid, a positive error code number otherwise and -1 in case of internal or API error.'/>
      <arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='a Relax-NG validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a parsed document tree'/>
    </function>
    <function name='xmlRelaxNGValidateFullElement' file='relaxng' module='relaxng'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Validate a full subtree when xmlRelaxNGValidatePushElement() returned 0 and the content of the node has been expanded.</info>
      <return type='int' info='1 if no validation problem was found or -1 in case of error.'/>
      <arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='elem' type='xmlNodePtr' info='an element instance'/>
    </function>
    <function name='xmlRelaxNGValidatePopElement' file='relaxng' module='relaxng'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Pop the element end from the RelaxNG validation stack.</info>
      <return type='int' info='1 if no validation problem was found or 0 otherwise'/>
      <arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='the RelaxNG validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='elem' type='xmlNodePtr' info='an element instance'/>
    </function>
    <function name='xmlRelaxNGValidatePushCData' file='relaxng' module='relaxng'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>check the CData parsed for validation in the current stack</info>
      <return type='int' info='1 if no validation problem was found or -1 otherwise'/>
      <arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='the RelaxNG validation context'/>
      <arg name='data' type='const xmlChar *' info='some character data read'/>
      <arg name='len' type='int' info='the length of the data'/>
    </function>
    <function name='xmlRelaxNGValidatePushElement' file='relaxng' module='relaxng'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Push a new element start on the RelaxNG validation stack.</info>
      <return type='int' info='1 if no validation problem was found or 0 if validating the element requires a full node, and -1 in case of error.'/>
      <arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='elem' type='xmlNodePtr' info='an element instance'/>
    </function>
    <functype name='xmlRelaxNGValidityErrorFunc' file='relaxng' module='relaxng'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Signature of an error callback from a Relax-NG validation</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the validation context'/>
      <arg name='msg' type='const char *' info='the message'/>
      <arg name='...' type='...' info='extra arguments'/>
    </functype>
    <functype name='xmlRelaxNGValidityWarningFunc' file='relaxng' module='relaxng'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Signature of a warning callback from a Relax-NG validation</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the validation context'/>
      <arg name='msg' type='const char *' info='the message'/>
      <arg name='...' type='...' info='extra arguments'/>
    </functype>
    <function name='xmlRelaxParserSetFlag' file='relaxng' module='relaxng'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Semi private function used to pass informations to a parser context which are a combination of xmlRelaxNGParserFlag .</info>
      <return type='int' info='0 if success and -1 in case of error'/>
      <arg name='ctxt' type='xmlRelaxNGParserCtxtPtr' info='a RelaxNG parser context'/>
      <arg name='flags' type='int' info='a set of flags values'/>
    </function>
    <function name='xmlRemoveID' file='valid' module='valid'>
      <info>Remove the given attribute from the ID table maintained internally.</info>
      <return type='int' info='-1 if the lookup failed and 0 otherwise'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='attr' type='xmlAttrPtr' info='the attribute'/>
    </function>
    <function name='xmlRemoveProp' file='tree' module='tree'>
      <info>Unlink and free one attribute, all the content is freed too Note this doesn&apos;t work for namespace definition attributes</info>
      <return type='int' info='0 if success and -1 in case of error.'/>
      <arg name='cur' type='xmlAttrPtr' info='an attribute'/>
    </function>
    <function name='xmlRemoveRef' file='valid' module='valid'>
      <info>Remove the given attribute from the Ref table maintained internally.</info>
      <return type='int' info='-1 if the lookup failed and 0 otherwise'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='attr' type='xmlAttrPtr' info='the attribute'/>
    </function>
    <function name='xmlReplaceNode' file='tree' module='tree'>
      <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED)</cond>
      <info>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.</info>
      <return type='xmlNodePtr' info='the @old node'/>
      <arg name='old' type='xmlNodePtr' info='the old node'/>
      <arg name='cur' type='xmlNodePtr' info='the node'/>
    </function>
    <function name='xmlResetError' file='xmlerror' module='error'>
      <info>Cleanup the error.</info>
      <return type='void'/>
      <arg name='err' type='xmlErrorPtr' info='pointer to the error.'/>
    </function>
    <function name='xmlResetLastError' file='xmlerror' module='error'>
      <info>Cleanup the last global error registered. For parsing error this does not change the well-formedness result.</info>
      <return type='void'/>
    </function>
    <function name='xmlSAX2AttributeDecl' file='SAX2' module='SAX2'>
      <info>An attribute definition has been parsed</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='elem' type='const xmlChar *' info='the name of the element'/>
      <arg name='fullname' type='const xmlChar *' info='the attribute name'/>
      <arg name='type' type='int' info='the attribute type'/>
      <arg name='def' type='int' info='the type of default value'/>
      <arg name='defaultValue' type='const xmlChar *' info='the attribute default value'/>
      <arg name='tree' type='xmlEnumerationPtr' info='the tree of enumerated value set'/>
    </function>
    <function name='xmlSAX2CDataBlock' file='SAX2' module='SAX2'>
      <info>called when a pcdata block has been parsed</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='value' type='const xmlChar *' info='The pcdata content'/>
      <arg name='len' type='int' info='the block length'/>
    </function>
    <function name='xmlSAX2Characters' file='SAX2' module='SAX2'>
      <info>receiving some chars from the parser.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='ch' type='const xmlChar *' info='a xmlChar string'/>
      <arg name='len' type='int' info='the number of xmlChar'/>
    </function>
    <function name='xmlSAX2Comment' file='SAX2' module='SAX2'>
      <info>A xmlSAX2Comment has been parsed.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='value' type='const xmlChar *' info='the xmlSAX2Comment content'/>
    </function>
    <function name='xmlSAX2ElementDecl' file='SAX2' module='SAX2'>
      <info>An element definition has been parsed</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='the element name'/>
      <arg name='type' type='int' info='the element type'/>
      <arg name='content' type='xmlElementContentPtr' info='the element value tree'/>
    </function>
    <function name='xmlSAX2EndDocument' file='SAX2' module='SAX2'>
      <info>called when the document end has been detected.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <function name='xmlSAX2EndElement' file='SAX2' module='SAX2'>
      <cond>defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED) || defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>called when the end of an element has been detected.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='The element name'/>
    </function>
    <function name='xmlSAX2EndElementNs' file='SAX2' module='SAX2'>
      <info>SAX2 callback when an element end has been detected by the parser. It provides the namespace informations for the element.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='localname' type='const xmlChar *' info='the local name of the element'/>
      <arg name='prefix' type='const xmlChar *' info='the element namespace prefix if available'/>
      <arg name='URI' type='const xmlChar *' info='the element namespace name if available'/>
    </function>
    <function name='xmlSAX2EntityDecl' file='SAX2' module='SAX2'>
      <info>An entity definition has been parsed</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='the entity name'/>
      <arg name='type' type='int' info='the entity type'/>
      <arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
      <arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
      <arg name='content' type='xmlChar *' info='the entity value (without processing).'/>
    </function>
    <function name='xmlSAX2ExternalSubset' file='SAX2' module='SAX2'>
      <info>Callback on external subset declaration.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='the root element name'/>
      <arg name='ExternalID' type='const xmlChar *' info='the external ID'/>
      <arg name='SystemID' type='const xmlChar *' info='the SYSTEM ID (e.g. filename or URL)'/>
    </function>
    <function name='xmlSAX2GetColumnNumber' file='SAX2' module='SAX2'>
      <info>Provide the column number of the current parsing point.</info>
      <return type='int' info='an int'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <function name='xmlSAX2GetEntity' file='SAX2' module='SAX2'>
      <info>Get an entity by name</info>
      <return type='xmlEntityPtr' info='the xmlEntityPtr if found.'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='The entity name'/>
    </function>
    <function name='xmlSAX2GetLineNumber' file='SAX2' module='SAX2'>
      <info>Provide the line number of the current parsing point.</info>
      <return type='int' info='an int'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <function name='xmlSAX2GetParameterEntity' file='SAX2' module='SAX2'>
      <info>Get a parameter entity by name</info>
      <return type='xmlEntityPtr' info='the xmlEntityPtr if found.'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='The entity name'/>
    </function>
    <function name='xmlSAX2GetPublicId' file='SAX2' module='SAX2'>
      <info>Provides the public ID e.g. &quot;-//SGMLSOURCE//DTD DEMO//EN&quot;</info>
      <return type='const xmlChar *' info='a xmlChar *'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <function name='xmlSAX2GetSystemId' file='SAX2' module='SAX2'>
      <info>Provides the system ID, basically URL or filename e.g. http://www.sgmlsource.com/dtds/memo.dtd</info>
      <return type='const xmlChar *' info='a xmlChar *'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <function name='xmlSAX2HasExternalSubset' file='SAX2' module='SAX2'>
      <info>Does this document has an external subset</info>
      <return type='int' info='1 if true'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <function name='xmlSAX2HasInternalSubset' file='SAX2' module='SAX2'>
      <info>Does this document has an internal subset</info>
      <return type='int' info='1 if true'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <function name='xmlSAX2IgnorableWhitespace' file='SAX2' module='SAX2'>
      <info>receiving some ignorable whitespaces from the parser. UNUSED: by default the DOM building will use xmlSAX2Characters</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='ch' type='const xmlChar *' info='a xmlChar string'/>
      <arg name='len' type='int' info='the number of xmlChar'/>
    </function>
    <function name='xmlSAX2InitDefaultSAXHandler' file='SAX2' module='SAX2'>
      <info>Initialize the default XML SAX2 handler</info>
      <return type='void'/>
      <arg name='hdlr' type='xmlSAXHandler *' info='the SAX handler'/>
      <arg name='warning' type='int' info='flag if non-zero sets the handler warning procedure'/>
    </function>
    <function name='xmlSAX2InitDocbDefaultSAXHandler' file='SAX2' module='SAX2'>
      <cond>defined(LIBXML_DOCB_ENABLED)</cond>
      <info>Initialize the default DocBook SAX2 handler</info>
      <return type='void'/>
      <arg name='hdlr' type='xmlSAXHandler *' info='the SAX handler'/>
    </function>
    <function name='xmlSAX2InitHtmlDefaultSAXHandler' file='SAX2' module='SAX2'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>Initialize the default HTML SAX2 handler</info>
      <return type='void'/>
      <arg name='hdlr' type='xmlSAXHandler *' info='the SAX handler'/>
    </function>
    <function name='xmlSAX2InternalSubset' file='SAX2' module='SAX2'>
      <info>Callback on internal subset declaration.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='the root element name'/>
      <arg name='ExternalID' type='const xmlChar *' info='the external ID'/>
      <arg name='SystemID' type='const xmlChar *' info='the SYSTEM ID (e.g. filename or URL)'/>
    </function>
    <function name='xmlSAX2IsStandalone' file='SAX2' module='SAX2'>
      <info>Is this document tagged standalone ?</info>
      <return type='int' info='1 if true'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <function name='xmlSAX2NotationDecl' file='SAX2' module='SAX2'>
      <info>What to do when a notation declaration has been parsed.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='The name of the notation'/>
      <arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
      <arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
    </function>
    <function name='xmlSAX2ProcessingInstruction' file='SAX2' module='SAX2'>
      <info>A processing instruction has been parsed.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='target' type='const xmlChar *' info='the target name'/>
      <arg name='data' type='const xmlChar *' info='the PI data&apos;s'/>
    </function>
    <function name='xmlSAX2Reference' file='SAX2' module='SAX2'>
      <info>called when an entity xmlSAX2Reference is detected.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='The entity name'/>
    </function>
    <function name='xmlSAX2ResolveEntity' file='SAX2' module='SAX2'>
      <info>The entity loader, to control the loading of external entities, the application can either: - override this xmlSAX2ResolveEntity() callback in the SAX block - or better use the xmlSetExternalEntityLoader() function to set up it&apos;s own entity resolution routine</info>
      <return type='xmlParserInputPtr' info='the xmlParserInputPtr if inlined or NULL for DOM behaviour.'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
      <arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
    </function>
    <function name='xmlSAX2SetDocumentLocator' file='SAX2' module='SAX2'>
      <info>Receive the document locator at startup, actually xmlDefaultSAXLocator Everything is available on the context, so this is useless in our case.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='loc' type='xmlSAXLocatorPtr' info='A SAX Locator'/>
    </function>
    <function name='xmlSAX2StartDocument' file='SAX2' module='SAX2'>
      <info>called when the document start being processed.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <function name='xmlSAX2StartElement' file='SAX2' module='SAX2'>
      <cond>defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED) || defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>called when an opening tag has been processed.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='fullname' type='const xmlChar *' info='The element name, including namespace prefix'/>
      <arg name='atts' type='const xmlChar **' info='An array of name/value attributes pairs, NULL terminated'/>
    </function>
    <function name='xmlSAX2StartElementNs' file='SAX2' module='SAX2'>
      <info>SAX2 callback when an element start has been detected by the parser. It provides the namespace informations for the element, as well as the new namespace declarations on the element.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='localname' type='const xmlChar *' info='the local name of the element'/>
      <arg name='prefix' type='const xmlChar *' info='the element namespace prefix if available'/>
      <arg name='URI' type='const xmlChar *' info='the element namespace name if available'/>
      <arg name='nb_namespaces' type='int' info='number of namespace definitions on that node'/>
      <arg name='namespaces' type='const xmlChar **' info='pointer to the array of prefix/URI pairs namespace definitions'/>
      <arg name='nb_attributes' type='int' info='the number of attributes on that node'/>
      <arg name='nb_defaulted' type='int' info='the number of defaulted attributes.'/>
      <arg name='attributes' type='const xmlChar **' info='pointer to the array of (localname/prefix/URI/value/end) attribute values.'/>
    </function>
    <function name='xmlSAX2UnparsedEntityDecl' file='SAX2' module='SAX2'>
      <info>What to do when an unparsed entity declaration is parsed</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='The name of the entity'/>
      <arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
      <arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
      <arg name='notationName' type='const xmlChar *' info='the name of the notation'/>
    </function>
    <function name='xmlSAXDefaultVersion' file='SAX2' module='SAX2'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <info>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.</info>
      <return type='int' info='the previous value in case of success and -1 in case of error.'/>
      <arg name='version' type='int' info='the version, 1 or 2'/>
    </function>
    <function name='xmlSAXParseDTD' file='parser' module='parser'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Load and parse an external subset.</info>
      <return type='xmlDtdPtr' info='the resulting xmlDtdPtr or NULL in case of error.'/>
      <arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler block'/>
      <arg name='ExternalID' type='const xmlChar *' info='a NAME* containing the External ID of the DTD'/>
      <arg name='SystemID' type='const xmlChar *' info='a NAME* containing the URL to the DTD'/>
    </function>
    <function name='xmlSAXParseDoc' file='parser' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <info>parse an XML in-memory document and build a tree. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</info>
      <return type='xmlDocPtr' info='the resulting document tree'/>
      <arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler block'/>
      <arg name='cur' type='const xmlChar *' info='a pointer to an array of xmlChar'/>
      <arg name='recovery' type='int' info='work in recovery mode, i.e. tries to read no Well Formed documents'/>
    </function>
    <function name='xmlSAXParseEntity' file='parser' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <info>parse an XML external entity out of context and build a tree. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.  [78] extParsedEnt ::= TextDecl? content  This correspond to a &quot;Well Balanced&quot; chunk</info>
      <return type='xmlDocPtr' info='the resulting document tree'/>
      <arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler block'/>
      <arg name='filename' type='const char *' info='the filename'/>
    </function>
    <function name='xmlSAXParseFile' file='parser' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <info>parse an XML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</info>
      <return type='xmlDocPtr' info='the resulting document tree'/>
      <arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler block'/>
      <arg name='filename' type='const char *' info='the filename'/>
      <arg name='recovery' type='int' info='work in recovery mode, i.e. tries to read no Well Formed documents'/>
    </function>
    <function name='xmlSAXParseFileWithData' file='parser' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <info>parse an XML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided