### ----------------------------------------------------
### -- LibXML
### -- Licenses: Artistic-2.0
### -- Authors: David Warring
### -- File: etc/libxml2-api.xml
### ----------------------------------------------------
### -- Chunk 19 of 44
>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Dump an HTML node, recursive behaviour,children are printed too.  TODO: if encoding == NULL try to save in the doc encoding</info>
      <return type='int' info='the number of byte written or -1 in case of failure.'/>
      <arg name='out' type='FILE *' info='the FILE pointer'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='cur' type='xmlNodePtr' info='the current node'/>
      <arg name='encoding' type='const char *' info='the document encoding'/>
      <arg name='format' type='int' info='should formatting spaces been added'/>
    </function>
    <function name='htmlNodeDumpFormatOutput' file='HTMLtree' module='HTMLtree'>
      <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Dump an HTML node, recursive behaviour,children are printed too.</info>
      <return type='void'/>
      <arg name='buf' type='xmlOutputBufferPtr' info='the HTML buffer output'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='cur' type='xmlNodePtr' info='the current node'/>
      <arg name='encoding' type='const char *' info='the encoding string'/>
      <arg name='format' type='int' info='should formatting spaces been added'/>
    </function>
    <function name='htmlNodeDumpOutput' file='HTMLtree' module='HTMLtree'>
      <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Dump an HTML node, recursive behaviour,children are printed too, and formatting returns/spaces are added.</info>
      <return type='void'/>
      <arg name='buf' type='xmlOutputBufferPtr' info='the HTML buffer output'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='cur' type='xmlNodePtr' info='the current node'/>
      <arg name='encoding' type='const char *' info='the encoding string'/>
    </function>
    <function name='htmlNodeStatus' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>Checks whether the tree node is valid.  Experimental (the author only uses the HTML enhancements in a SAX parser)</info>
      <return type='htmlStatus' info='for Element nodes, a return from htmlElementAllowedHere (if legacy allowed) or htmlElementStatusHere (otherwise). for Attribute nodes, a return from htmlAttrAllowed for other nodes, HTML_NA (no checks performed)'/>
      <arg name='node' type='const htmlNodePtr' info='an htmlNodePtr in a tree'/>
      <arg name='legacy' type='int' info='whether to allow deprecated elements (YES is faster here for Element nodes)'/>
    </function>
    <function name='htmlParseCharRef' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>parse Reference declarations  [66] CharRef ::= &apos;&amp;#&apos; [0-9]+ &apos;;&apos; | &apos;&amp;#x&apos; [0-9a-fA-F]+ &apos;;&apos;</info>
      <return type='int' info='the value parsed (as an int)'/>
      <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
    </function>
    <function name='htmlParseChunk' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_PUSH_ENABLED)</cond>
      <info>Parse a Chunk of memory</info>
      <return type='int' info='zero if no error, the xmlParserErrors otherwise.'/>
      <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
      <arg name='chunk' type='const char *' info='an char array'/>
      <arg name='size' type='int' info='the size in byte of the chunk'/>
      <arg name='terminate' type='int' info='last chunk indicator'/>
    </function>
    <function name='htmlParseDoc' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>parse an HTML in-memory document and build a tree.</info>
      <return type='htmlDocPtr' info='the resulting document tree'/>
      <arg name='cur' type='const xmlChar *' info='a pointer to an array of xmlChar'/>
      <arg name='encoding' type='const char *' info='a free form C string describing the HTML document encoding, or NULL'/>
    </function>
    <function name='htmlParseDocument' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>parse an HTML document (and build a tree if using the standard SAX interface).</info>
      <return type='int' info='0, -1 in case of error. the parser context is augmented as a result of the parsing.'/>
      <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
    </function>
    <function name='htmlParseElement' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>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</info>
      <return type='void'/>
      <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
    </function>
    <function name='htmlParseEntityRef' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>parse an HTML ENTITY references  [68] EntityRef ::= &apos;&amp;&apos; Name &apos;;&apos;</info>
      <return type='const htmlEntityDesc *' info='the associated htmlEntityDescPtr if found, or NULL otherwise, if non-NULL *str will have to be freed by the caller.'/>
      <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
      <arg name='str' type='const xmlChar **' info='location to store the entity name'/>
    </function>
    <function name='htmlParseFile' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>parse an HTML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</info>
      <return type='htmlDocPtr' info='the resulting document tree'/>
      <arg name='filename' type='const char *' info='the filename'/>
      <arg name='encoding' type='const char *' info='a free form C string describing the HTML document encoding, or NULL'/>
    </function>
    <function name='htmlReadDoc' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>parse an XML in-memory document and build a tree.</info>
      <return type='htmlDocPtr' info='the resulting document tree'/>
      <arg name='cur' type='const xmlChar *' info='a pointer to a zero terminated string'/>
      <arg name='URL' type='const char *' info='the base URL to use for the document'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
    </function>
    <function name='htmlReadFd' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>parse an XML from a file descriptor and build a tree.</info>
      <return type='htmlDocPtr' info='the resulting document tree'/>
      <arg name='fd' type='int' info='an open file descriptor'/>
      <arg name='URL' type='const char *' info='the base URL to use for the document'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
    </function>
    <function name='htmlReadFile' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>parse an XML file from the filesystem or the network.</info>
      <return type='htmlDocPtr' info='the resulting document tree'/>
      <arg name='filename' type='const char *' info='a file or URL'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
    </function>
    <function name='htmlReadIO' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>parse an HTML document from I/O functions and source and build a tree.</info>
      <return type='htmlDocPtr' info='the resulting document tree'/>
      <arg name='ioread' type='xmlInputReadCallback' info='an I/O read function'/>
      <arg name='ioclose' type='xmlInputCloseCallback' info='an I/O close function'/>
      <arg name='ioctx' type='void *' info='an I/O handler'/>
      <arg name='URL' type='const char *' info='the base URL to use for the document'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
    </function>
    <function name='htmlReadMemory' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>parse an XML in-memory document and build a tree.</info>
      <return type='htmlDocPtr' info='the resulting document tree'/>
      <arg name='buffer' type='const char *' info='a pointer to a char array'/>
      <arg name='size' type='int' info='the size of the array'/>
      <arg name='URL' type='const char *' info='the base URL to use for the document'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
    </function>
    <function name='htmlSAXParseDoc' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>Parse an HTML in-memory document. If sax is not NULL, use the SAX callbacks to handle parse events. If sax is NULL, fallback to the default DOM behavior and return a tree.</info>
      <return type='htmlDocPtr' info='the resulting document tree unless SAX is NULL or the document is not well formed.'/>
      <arg name='cur' type='const xmlChar *' info='a pointer to an array of xmlChar'/>
      <arg name='encoding' type='const char *' info='a free form C string describing the HTML document encoding, or NULL'/>
      <arg name='sax' type='htmlSAXHandlerPtr' info='the SAX handler block'/>
      <arg name='userData' type='void *' info='if using SAX, this pointer will be provided on callbacks.'/>
    </function>
    <function name='htmlSAXParseFile' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>parse an HTML 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='htmlDocPtr' info='the resulting document tree unless SAX is NULL or the document is not well formed.'/>
      <arg name='filename' type='const char *' info='the filename'/>
      <arg name='encoding' type='const char *' info='a free form C string describing the HTML document encoding, or NULL'/>
      <arg name='sax' type='htmlSAXHandlerPtr' info='the SAX handler block'/>
      <arg name='userData' type='void *' info='if using SAX, this pointer will be provided on callbacks.'/>
    </function>
    <function name='htmlSaveFile' file='HTMLtree' module='HTMLtree'>
      <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Dump an HTML document to a file. If @filename is &quot;-&quot; the stdout file is used.</info>
      <return type='int' info='the number of byte written or -1 in case of failure.'/>
      <arg name='filename' type='const char *' info='the filename (or URL)'/>
      <arg name='cur' type='xmlDocPtr' info='the document'/>
    </function>
    <function name='htmlSaveFileEnc' file='HTMLtree' module='HTMLtree'>
      <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Dump an HTML document to a file using a given encoding and formatting returns/spaces are added.</info>
      <return type='int' info='the number of byte written or -1 in case of failure.'/>
      <arg name='filename' type='const char *' info='the filename'/>
      <arg name='cur' type='xmlDocPtr' info='the document'/>
      <arg name='encoding' type='const char *' info='the document encoding'/>
    </function>
    <function name='htmlSaveFileFormat' file='HTMLtree' module='HTMLtree'>
      <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Dump an HTML document to a file using a given encoding.</info>
      <return type='int' info='the number of byte written or -1 in case of failure.'/>
      <arg name='filename' type='const char *' info='the filename'/>
      <arg name='cur' type='xmlDocPtr' info='the document'/>
      <arg name='encoding' type='const char *' info='the document encoding'/>
      <arg name='format' type='int' info='should formatting spaces been added'/>
    </function>
    <function name='htmlSetMetaEncoding' file='HTMLtree' module='HTMLtree'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>Sets the current encoding in the Meta tags NOTE: this will not change the document content encoding, just the META flag associated.</info>
      <return type='int' info='0 in case of success and -1 in case of error'/>
      <arg name='doc' type='htmlDocPtr' info='the document'/>
      <arg name='encoding' type='const xmlChar *' info='the encoding string'/>
    </function>
    <function name='htmlTagLookup' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>Lookup the HTML tag in the ElementTable</info>
      <return type='const htmlElemDesc *' info='the related htmlElemDescPtr or NULL if not found.'/>
      <arg name='tag' type='const xmlChar *' info='The tag name in lowercase'/>
    </function>
    <function name='ignorableWhitespace' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>receiving some ignorable whitespaces from the parser. UNUSED: by default the DOM building will use characters DEPRECATED: use xmlSAX2IgnorableWhitespace()</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>
    <functype name='ignorableWhitespaceSAXFunc' file='parser' module='parser'>
      <info>Receiving some ignorable whitespaces from the parser. UNUSED: by default the DOM building will use characters.</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'/>
    </functype>
    <function name='initGenericErrorDefaultFunc' file='xmlerror' module='error'>
      <info>Set or reset (if NULL) the default handler for generic errors to the builtin error function.</info>
      <return type='void'/>
      <arg name='handler' type='xmlGenericErrorFunc *' info='the handler'/>
    </function>
    <function name='initdocbDefaultSAXHandler' file='SAX' module='SAX'>
      <cond>defined(LIBXML_LEGACY_ENABLED) &amp;&amp; defined(LIBXML_SAX1_ENABLED) &amp;&amp; defined(LIBXML_DOCB_ENABLED)</cond>
      <info>Initialize the default DocBook SAX version 1 handler DEPRECATED: use xmlSAX2InitDocbDefaultSAXHandler() for the new SAX2 blocks</info>
      <return type='void'/>
      <arg name='hdlr' type='xmlSAXHandlerV1 *' info='the SAX handler'/>
    </function>
    <function name='inithtmlDefaultSAXHandler' file='SAX' module='SAX'>
      <cond>defined(LIBXML_LEGACY_ENABLED) &amp;&amp; defined(LIBXML_SAX1_ENABLED) &amp;&amp; defined(LIBXML_HTML_ENABLED)</cond>
      <info>Initialize the default HTML SAX version 1 handler DEPRECATED: use xmlSAX2InitHtmlDefaultSAXHandler() for the new SAX2 blocks</info>
      <return type='void'/>
      <arg name='hdlr' type='xmlSAXHandlerV1 *' info='the SAX handler'/>
    </function>
    <function name='initxmlDefaultSAXHandler' file='SAX' module='SAX'>
      <cond>defined(LIBXML_LEGACY_ENABLED) &amp;&amp; defined(LIBXML_SAX1_ENABLED)</cond>
      <info>Initialize the default XML SAX version 1 handler DEPRECATED: use xmlSAX2InitDefaultSAXHandler() for the new SAX2 blocks</info>
      <return type='void'/>
      <arg name='hdlr' type='xmlSAXHandlerV1 *' info='the SAX handler'/>
      <arg name='warning' type='int' info='flag if non-zero sets the handler warning procedure'/>
    </function>
    <function name='inputPop' file='parserInternals' module='parser'>
      <info>Pops the top parser input from the input stack</info>
      <return type='xmlParserInputPtr' info='the input just removed'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='inputPush' file='parserInternals' module='parser'>
      <info>Pushes a new parser input on top of the input stack</info>
      <return type='int' info='-1 in case of error, the index in the stack otherwise'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='value' type='xmlParserInputPtr' info='the parser input'/>
    </function>
    <function name='internalSubset' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>Callback on internal subset declaration. DEPRECATED: use xmlSAX2InternalSubset()</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>
    <functype name='internalSubsetSAXFunc' file='parser' module='parser'>
      <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)'/>
    </functype>
    <function name='isStandalone' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>Is this document tagged standalone ? DEPRECATED: use xmlSAX2IsStandalone()</info>
      <return type='int' info='1 if true'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <functype name='isStandaloneSAXFunc' file='parser' module='parser'>
      <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)'/>
    </functype>
    <function name='isolat1ToUTF8' file='encoding' module='encoding'>
      <info>Take a block of ISO Latin 1 chars in and try to convert it to an UTF-8 block of chars out.</info>
      <return type='int' info='the number of bytes written if success, or -1 otherwise The value of @inlen after return is the number of octets consumed if the return value is positive, else unpredictable. The value of @outlen after return is the number of octets consumed.'/>
      <arg name='out' type='unsigned char *' info='a pointer to an array of bytes to store the result'/>
      <arg name='outlen' type='int *' info='the length of @out'/>
      <arg name='in' type='const unsigned char *' info='a pointer to an array of ISO Latin 1 chars'/>
      <arg name='inlen' type='int *' info='the length of @in'/>
    </function>
    <function name='namePop' file='parserInternals' module='parser'>
      <info>Pops the top element name from the name stack</info>
      <return type='const xmlChar *' info='the name just removed'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='namePush' file='parserInternals' module='parser'>
      <info>Pushes a new element name on top of the name stack</info>
      <return type='int' info='-1 in case of error, the index in the stack otherwise'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='value' type='const xmlChar *' info='the element name'/>
    </function>
    <function name='namespaceDecl' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>A namespace has been parsed. DEPRECATED</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='href' type='const xmlChar *' info='the namespace associated URN'/>
      <arg name='prefix' type='const xmlChar *' info='the namespace prefix'/>
    </function>
    <function name='nodePop' file='parserInternals' module='parser'>
      <info>Pops the top element node from the node stack</info>
      <return type='xmlNodePtr' info='the node just removed'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='nodePush' file='parserInternals' module='parser'>
      <info>Pushes a new element node on top of the node stack</info>
      <return type='int' info='-1 in case of error, the index in the stack otherwise'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='value' type='xmlNodePtr' info='the element node'/>
    </function>
    <function name='notationDecl' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>What to do when a notation declaration has been parsed. DEPRECATED: use xmlSAX2NotationDecl()</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>
    <functype name='notationDeclSAXFunc' file='parser' module='parser'>
      <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'/>
    </functype>
    <function name='processingInstruction' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>A processing instruction has been parsed. DEPRECATED: use xmlSAX2ProcessingInstruction()</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>
    <functype name='processingInstructionSAXFunc' file='parser' module='parser'>
      <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'/>
    </functype>
    <function name='reference' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>called when an entity reference is detected. DEPRECATED: use xmlSAX2Reference()</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>
    <functype name='referenceSAXFunc' file='parser' module='parser'>
      <info>Called when an entity reference 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'/>
    </functype>
    <function name='resolveEntity' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>The entity loader, to control the loading of external entities, the application can either: - override this resolveEntity() callback in the SAX block - or better use the xmlSetExternalEntityLoader() function to set up it&apos;s own entity resolution routine DEPRECATED: use xmlSAX2ResolveEntity()</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>
    <functype name='resolveEntitySAXFunc' file='parser' module='parser'>
      <info>Callback: The entity loader, to control the loading of external entities, the application can either: - override this resolveEntity() 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'/>
    </functype>
    <function name='setDocumentLocator' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>Receive the document locator at startup, actually xmlDefaultSAXLocator Everything is available on the context, so this is useless in our case. DEPRECATED</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>
    <functype name='setDocumentLocatorSAXFunc' file='parser' module='parser'>
      <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'/>
    </functype>
    <function name='setNamespace' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>Set the current element namespace. DEPRECATED</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='the namespace prefix'/>
    </function>
    <function name='startDocument' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>called when the document start being processed. DEPRECATED: use xmlSAX2StartDocument()</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <functype name='startDocumentSAXFunc' file='parser' module='parser'>
      <info>Called when the document start being processed.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </functype>
    <function name='startElement' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>called when an opening tag has been processed. DEPRECATED: use xmlSAX2StartElement()</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>
    <functype name='startElementNsSAX2Func' file='parser' module='parser'>
      <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. The defaulted ones are at the end of the array'/>
      <arg name='attributes' type='const xmlChar **' info='pointer to the array of (localname/prefix/URI/value/end) attribute values.'/>
    </functype>
    <functype name='startElementSAXFunc' file='parser' module='parser'>
      <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='name' 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'/>
    </functype>
    <function name='unparsedEntityDecl' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>What to do when an unparsed entity declaration is parsed DEPRECATED: use xmlSAX2UnparsedEntityDecl()</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>
    <functype name='unparsedEntityDeclSAXFunc' file='parser' module='parser'>
      <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)'/>
      <