### ----------------------------------------------------
### -- LibXML
### -- Licenses: Artistic-2.0
### -- Authors: David Warring
### -- File: etc/libxml2-api.xml
### ----------------------------------------------------
### -- Chunk 18 of 44
>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>called when the document end has been detected. DEPRECATED: use xmlSAX2EndDocument()</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <functype name='endDocumentSAXFunc' file='parser' module='parser'>
      <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)'/>
    </functype>
    <function name='endElement' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>called when the end of an element has been detected. DEPRECATED: use xmlSAX2EndElement()</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>
    <functype name='endElementNsSAX2Func' file='parser' module='parser'>
      <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'/>
    </functype>
    <functype name='endElementSAXFunc' file='parser' module='parser'>
      <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'/>
    </functype>
    <function name='entityDecl' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>An entity definition has been parsed DEPRECATED: use xmlSAX2EntityDecl()</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>
    <functype name='entityDeclSAXFunc' file='parser' module='parser'>
      <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).'/>
    </functype>
    <functype name='errorSAXFunc' file='parser' module='parser'>
      <info>Display and format an error messages, callback.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='an XML parser context'/>
      <arg name='msg' type='const char *' info='the message to display/transmit'/>
      <arg name='...' type='...' info='extra parameters for the message display'/>
    </functype>
    <function name='externalSubset' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>Callback on external subset declaration. DEPRECATED: use xmlSAX2ExternalSubset()</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='externalSubsetSAXFunc' file='parser' module='parser'>
      <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)'/>
    </functype>
    <functype name='fatalErrorSAXFunc' file='parser' module='parser'>
      <info>Display and format fatal error messages, callback. Note: so far fatalError() SAX callbacks are not used, error() get all the callbacks for errors.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='an XML parser context'/>
      <arg name='msg' type='const char *' info='the message to display/transmit'/>
      <arg name='...' type='...' info='extra parameters for the message display'/>
    </functype>
    <functype name='ftpDataCallback' file='nanoftp' module='nanoftp'>
      <cond>defined(LIBXML_FTP_ENABLED)</cond>
      <info>A callback for the xmlNanoFTPGet command.</info>
      <return type='void'/>
      <arg name='userData' type='void *' info='the user provided context'/>
      <arg name='data' type='const char *' info='the data received'/>
      <arg name='len' type='int' info='its size in bytes'/>
    </functype>
    <functype name='ftpListCallback' file='nanoftp' module='nanoftp'>
      <cond>defined(LIBXML_FTP_ENABLED)</cond>
      <info>A callback for the xmlNanoFTPList command. Note that only one of year and day:minute are specified.</info>
      <return type='void'/>
      <arg name='userData' type='void *' info='user provided data for the callback'/>
      <arg name='filename' type='const char *' info='the file name (including &quot;-&gt;&quot; when links are shown)'/>
      <arg name='attrib' type='const char *' info='the attribute string'/>
      <arg name='owner' type='const char *' info='the owner string'/>
      <arg name='group' type='const char *' info='the group string'/>
      <arg name='size' type='unsigned long' info='the file size'/>
      <arg name='links' type='int' info='the link count'/>
      <arg name='year' type='int' info='the year'/>
      <arg name='month' type='const char *' info='the month'/>
      <arg name='day' type='int' info='the day'/>
      <arg name='hour' type='int' info='the hour'/>
      <arg name='minute' type='int' info='the minute'/>
    </functype>
    <function name='getColumnNumber' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>Provide the column number of the current parsing point. DEPRECATED: use xmlSAX2GetColumnNumber()</info>
      <return type='int' info='an int'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <function name='getEntity' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>Get an entity by name DEPRECATED: use xmlSAX2GetEntity()</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>
    <functype name='getEntitySAXFunc' file='parser' module='parser'>
      <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'/>
    </functype>
    <function name='getLineNumber' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>Provide the line number of the current parsing point. DEPRECATED: use xmlSAX2GetLineNumber()</info>
      <return type='int' info='an int'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <function name='getNamespace' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>Get the current element namespace. DEPRECATED</info>
      <return type='xmlNsPtr' info='the xmlNsPtr or NULL if none'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <function name='getParameterEntity' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>Get a parameter entity by name DEPRECATED: use xmlSAX2GetParameterEntity()</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>
    <functype name='getParameterEntitySAXFunc' file='parser' module='parser'>
      <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'/>
    </functype>
    <function name='getPublicId' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>Provides the public ID e.g. &quot;-//SGMLSOURCE//DTD DEMO//EN&quot; DEPRECATED: use xmlSAX2GetPublicId()</info>
      <return type='const xmlChar *' info='a xmlChar *'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <function name='getSystemId' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>Provides the system ID, basically URL or filename e.g. http://www.sgmlsource.com/dtds/memo.dtd DEPRECATED: use xmlSAX2GetSystemId()</info>
      <return type='const xmlChar *' info='a xmlChar *'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <function name='globalNamespace' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>An old global 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='hasExternalSubset' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>Does this document has an external subset DEPRECATED: use xmlSAX2HasExternalSubset()</info>
      <return type='int' info='1 if true'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <functype name='hasExternalSubsetSAXFunc' file='parser' module='parser'>
      <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)'/>
    </functype>
    <function name='hasInternalSubset' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>Does this document has an internal subset DEPRECATED: use xmlSAX2HasInternalSubset()</info>
      <return type='int' info='1 if true'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <functype name='hasInternalSubsetSAXFunc' file='parser' module='parser'>
      <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)'/>
    </functype>
    <function name='htmlAttrAllowed' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>Checks whether an attribute is valid for an element Has full knowledge of Required and Deprecated attributes</info>
      <return type='htmlStatus' info='one of HTML_REQUIRED, HTML_VALID, HTML_DEPRECATED, HTML_INVALID'/>
      <arg name='elt' type='const htmlElemDesc *' info='HTML element'/>
      <arg name='attr' type='const xmlChar *' info='HTML attribute'/>
      <arg name='legacy' type='int' info='whether to allow deprecated attributes'/>
    </function>
    <function name='htmlAutoCloseTag' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>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&apos;s children would autoclose the given tag.</info>
      <return type='int' info='1 if autoclose, 0 otherwise'/>
      <arg name='doc' type='htmlDocPtr' info='the HTML document'/>
      <arg name='name' type='const xmlChar *' info='The tag name'/>
      <arg name='elem' type='htmlNodePtr' info='the HTML element'/>
    </function>
    <function name='htmlCreateFileParserCtxt' file='parserInternals' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>Create a parser context for a file content. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</info>
      <return type='htmlParserCtxtPtr' info='the new parser context or NULL'/>
      <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='htmlCreateMemoryParserCtxt' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>Create a parser context for an HTML in-memory document.</info>
      <return type='htmlParserCtxtPtr' info='the new parser context or NULL'/>
      <arg name='buffer' type='const char *' info='a pointer to a char array'/>
      <arg name='size' type='int' info='the size of the array'/>
    </function>
    <function name='htmlCreatePushParserCtxt' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_PUSH_ENABLED)</cond>
      <info>Create a parser context for using the HTML parser in push mode The value of @filename is used for fetching external entities and error/warning reports.</info>
      <return type='htmlParserCtxtPtr' info='the new parser context or NULL'/>
      <arg name='sax' type='htmlSAXHandlerPtr' info='a SAX handler'/>
      <arg name='user_data' type='void *' info='The user data returned on SAX callbacks'/>
      <arg name='chunk' type='const char *' info='a pointer to an array of chars'/>
      <arg name='size' type='int' info='number of chars in the array'/>
      <arg name='filename' type='const char *' info='an optional file name or URI'/>
      <arg name='enc' type='xmlCharEncoding' info='an optional encoding'/>
    </function>
    <function name='htmlCtxtReadDoc' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>parse an XML in-memory document and build a tree. This reuses the existing @ctxt parser context</info>
      <return type='htmlDocPtr' info='the resulting document tree'/>
      <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
      <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='htmlCtxtReadFd' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>parse an XML from a file descriptor and build a tree. This reuses the existing @ctxt parser context</info>
      <return type='htmlDocPtr' info='the resulting document tree'/>
      <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
      <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='htmlCtxtReadFile' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>parse an XML file from the filesystem or the network. This reuses the existing @ctxt parser context</info>
      <return type='htmlDocPtr' info='the resulting document tree'/>
      <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
      <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='htmlCtxtReadIO' 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. This reuses the existing @ctxt parser context</info>
      <return type='htmlDocPtr' info='the resulting document tree'/>
      <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
      <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='htmlCtxtReadMemory' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>parse an XML in-memory document and build a tree. This reuses the existing @ctxt parser context</info>
      <return type='htmlDocPtr' info='the resulting document tree'/>
      <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
      <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='htmlCtxtReset' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>Reset a parser context</info>
      <return type='void'/>
      <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
    </function>
    <function name='htmlCtxtUseOptions' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>Applies the options to the parser context</info>
      <return type='int' info='0 in case of success, the set of unknown or unimplemented options in case of error.'/>
      <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
      <arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
    </function>
    <function name='htmlDefaultSAXHandlerInit' file='SAX2' module='SAX2'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>Initialize the default SAX handler</info>
      <return type='void'/>
    </function>
    <function name='htmlDocContentDumpFormatOutput' file='HTMLtree' module='HTMLtree'>
      <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Dump an HTML document.</info>
      <return type='void'/>
      <arg name='buf' type='xmlOutputBufferPtr' info='the HTML buffer output'/>
      <arg name='cur' type='xmlDocPtr' info='the document'/>
      <arg name='encoding' type='const char *' info='the encoding string'/>
      <arg name='format' type='int' info='should formatting spaces been added'/>
    </function>
    <function name='htmlDocContentDumpOutput' file='HTMLtree' module='HTMLtree'>
      <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Dump an HTML document. Formating return/spaces are added.</info>
      <return type='void'/>
      <arg name='buf' type='xmlOutputBufferPtr' info='the HTML buffer output'/>
      <arg name='cur' type='xmlDocPtr' info='the document'/>
      <arg name='encoding' type='const char *' info='the encoding string'/>
    </function>
    <function name='htmlDocDump' file='HTMLtree' module='HTMLtree'>
      <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Dump an HTML document to an open FILE.</info>
      <return type='int' info='the number of byte written or -1 in case of failure.'/>
      <arg name='f' type='FILE *' info='the FILE*'/>
      <arg name='cur' type='xmlDocPtr' info='the document'/>
    </function>
    <function name='htmlDocDumpMemory' file='HTMLtree' module='HTMLtree'>
      <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Dump an HTML document in memory and return the xmlChar * and it&apos;s size. It&apos;s up to the caller to free the memory.</info>
      <return type='void'/>
      <arg name='cur' type='xmlDocPtr' info='the document'/>
      <arg name='mem' type='xmlChar **' info='OUT: the memory pointer'/>
      <arg name='size' type='int *' info='OUT: the memory length'/>
    </function>
    <function name='htmlDocDumpMemoryFormat' file='HTMLtree' module='HTMLtree'>
      <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Dump an HTML document in memory and return the xmlChar * and it&apos;s size. It&apos;s up to the caller to free the memory.</info>
      <return type='void'/>
      <arg name='cur' type='xmlDocPtr' info='the document'/>
      <arg name='mem' type='xmlChar **' info='OUT: the memory pointer'/>
      <arg name='size' type='int *' info='OUT: the memory length'/>
      <arg name='format' type='int' info='should formatting spaces been added'/>
    </function>
    <function name='htmlElementAllowedHere' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>Checks whether an HTML element may be a direct child of a parent element. Note - doesn&apos;t check for deprecated elements</info>
      <return type='int' info='1 if allowed; 0 otherwise.'/>
      <arg name='parent' type='const htmlElemDesc *' info='HTML parent element'/>
      <arg name='elt' type='const xmlChar *' info='HTML element'/>
    </function>
    <function name='htmlElementStatusHere' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>Checks whether an HTML element may be a direct child of a parent element. and if so whether it is valid or deprecated.</info>
      <return type='htmlStatus' info='one of HTML_VALID, HTML_DEPRECATED, HTML_INVALID'/>
      <arg name='parent' type='const htmlElemDesc *' info='HTML parent element'/>
      <arg name='elt' type='const htmlElemDesc *' info='HTML element'/>
    </function>
    <function name='htmlEncodeEntities' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>Take a block of UTF-8 chars in and try to convert it to an ASCII plus HTML entities block of chars out.</info>
      <return type='int' info='0 if success, -2 if the transcoding fails, or -1 otherwise The value of @inlen after return is the number of octets consumed as 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 UTF-8 chars'/>
      <arg name='inlen' type='int *' info='the length of @in'/>
      <arg name='quoteChar' type='int' info='the quote character to escape (&apos; or &quot;) or zero.'/>
    </function>
    <function name='htmlEntityLookup' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>Lookup the given entity in EntitiesTable  TODO: the linear scan is really ugly, an hash table is really needed.</info>
      <return type='const htmlEntityDesc *' info='the associated htmlEntityDescPtr if found, NULL otherwise.'/>
      <arg name='name' type='const xmlChar *' info='the entity name'/>
    </function>
    <function name='htmlEntityValueLookup' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>Lookup the given entity in EntitiesTable  TODO: the linear scan is really ugly, an hash table is really needed.</info>
      <return type='const htmlEntityDesc *' info='the associated htmlEntityDescPtr if found, NULL otherwise.'/>
      <arg name='value' type='unsigned int' info='the entity&apos;s unicode value'/>
    </function>
    <function name='htmlFreeParserCtxt' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>Free all the memory used by a parser context. However the parsed document in ctxt-&gt;myDoc is not freed.</info>
      <return type='void'/>
      <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
    </function>
    <function name='htmlGetMetaEncoding' file='HTMLtree' module='HTMLtree'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>Encoding definition lookup in the Meta tags</info>
      <return type='const xmlChar *' info='the current encoding as flagged in the HTML source'/>
      <arg name='doc' type='htmlDocPtr' info='the document'/>
    </function>
    <function name='htmlHandleOmittedElem' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>Set and return the previous value for handling HTML omitted tags.</info>
      <return type='int' info='the last value for 0 for no handling, 1 for auto insertion.'/>
      <arg name='val' type='int' info='int 0 or 1'/>
    </function>
    <function name='htmlInitAutoClose' file='parserInternals' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>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.</info>
      <return type='void'/>
    </function>
    <function name='htmlIsAutoClosed' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>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&apos;s child</info>
      <return type='int' info='1 if autoclosed, 0 otherwise'/>
      <arg name='doc' type='htmlDocPtr' info='the HTML document'/>
      <arg name='elem' type='htmlNodePtr' info='the HTML element'/>
    </function>
    <function name='htmlIsBooleanAttr' file='HTMLtree' module='HTMLtree'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>Determine if a given attribute is a boolean attribute.</info>
      <return type='int' info='false if the attribute is not boolean, true otherwise.'/>
      <arg name='name' type='const xmlChar *' info='the name of the attribute to check'/>
    </function>
    <function name='htmlIsScriptAttribute' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>Check if an attribute is of content type Script</info>
      <return type='int' info='1 is the attribute is a script 0 otherwise'/>
      <arg name='name' type='const xmlChar *' info='an attribute name'/>
    </function>
    <function name='htmlNewDoc' file='HTMLtree' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>Creates a new HTML document</info>
      <return type='htmlDocPtr' info='a new document'/>
      <arg name='URI' type='const xmlChar *' info='URI for the dtd, or NULL'/>
      <arg name='ExternalID' type='const xmlChar *' info='the external ID of the DTD, or NULL'/>
    </function>
    <function name='htmlNewDocNoDtD' file='HTMLtree' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>Creates a new HTML document without a DTD node if @URI and @ExternalID are NULL</info>
      <return type='htmlDocPtr' info='a new document, do not initialize the DTD if not provided'/>
      <arg name='URI' type='const xmlChar *' info='URI for the dtd, or NULL'/>
      <arg name='ExternalID' type='const xmlChar *' info='the external ID of the DTD, or NULL'/>
    </function>
    <function name='htmlNewParserCtxt' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>Allocate and initialize a new parser context.</info>
      <return type='htmlParserCtxtPtr' info='the htmlParserCtxtPtr or NULL in case of allocation error'/>
    </function>
    <function name='htmlNodeDump' 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 are added.</info>
      <return type='int' info='the number of byte written or -1 in case of error'/>
      <arg name='buf' type='xmlBufferPtr' info='the HTML buffer output'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='cur' type='xmlNodePtr' info='the current node'/>
    </function>
    <function name='htmlNodeDumpFile' 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 are added.</info>
      <return type='void'/>
      <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'/>
    </function>
    <function name='htmlNodeDumpFileFormat' file='HTMLtree' module='HTMLtree'>
      <cond