### ----------------------------------------------------
### -- LibXML
### -- Licenses: Artistic-2.0
### -- Authors: David Warring
### -- File: etc/libxml2-api.xml
### ----------------------------------------------------
### -- Chunk 21 of 44
 <function name='xmlAutomataNewTransition' file='xmlautomata' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
      <info>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by the value of @token</info>
      <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
      <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
      <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
      <arg name='token' type='const xmlChar *' info='the input string associated to that transition'/>
      <arg name='data' type='void *' info='data passed to the callback function if the transition is activated'/>
    </function>
    <function name='xmlAutomataNewTransition2' file='xmlautomata' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
      <info>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by the value of @token</info>
      <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
      <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
      <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
      <arg name='token' type='const xmlChar *' info='the first input string associated to that transition'/>
      <arg name='token2' type='const xmlChar *' info='the second input string associated to that transition'/>
      <arg name='data' type='void *' info='data passed to the callback function if the transition is activated'/>
    </function>
    <function name='xmlAutomataSetFinalState' file='xmlautomata' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
      <info>Makes that state a final state</info>
      <return type='int' info='0 or -1 in case of error'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
      <arg name='state' type='xmlAutomataStatePtr' info='a state in this automata'/>
    </function>
    <function name='xmlBoolToText' file='debugXML' module='debugXML'>
      <cond>defined(LIBXML_DEBUG_ENABLED)</cond>
      <info>Convenient way to turn bool into text</info>
      <return type='const char *' info='a pointer to either &quot;True&quot; or &quot;False&quot;'/>
      <arg name='boolval' type='int' info='a bool to turn into text'/>
    </function>
    <function name='xmlBufContent' file='tree' module='buf'>
      <info>Function to extract the content of a buffer</info>
      <return type='xmlChar *' info='the internal content'/>
      <arg name='buf' type='const xmlBuf *' info='the buffer'/>
    </function>
    <function name='xmlBufEnd' file='tree' module='buf'>
      <info>Function to extract the end of the content of a buffer</info>
      <return type='xmlChar *' info='the end of the internal content or NULL in case of error'/>
      <arg name='buf' type='xmlBufPtr' info='the buffer'/>
    </function>
    <function name='xmlBufGetNodeContent' file='tree' module='tree'>
      <info>Read the value of a node @cur, this can be either the text carried directly by this node if it&apos;s a TEXT node or the aggregate string of the values carried by this node child&apos;s (TEXT and ENTITY_REF). Entity references are substituted. Fills up the buffer @buf with this value</info>
      <return type='int' info='0 in case of success and -1 in case of error.'/>
      <arg name='buf' type='xmlBufPtr' info='a buffer xmlBufPtr'/>
      <arg name='cur' type='const xmlNode *' info='the node being read'/>
    </function>
    <function name='xmlBufNodeDump' file='tree' module='xmlsave'>
      <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Dump an XML node, recursive behaviour,children are printed too. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called</info>
      <return type='size_t' info='the number of bytes written to the buffer, in case of error 0 is returned or @buf stores the error'/>
      <arg name='buf' type='xmlBufPtr' info='the XML buffer output'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='cur' type='xmlNodePtr' info='the current node'/>
      <arg name='level' type='int' info='the imbrication level for indenting'/>
      <arg name='format' type='int' info='is formatting allowed'/>
    </function>
    <function name='xmlBufShrink' file='tree' module='buf'>
      <info>Remove the beginning of an XML buffer. NOTE that this routine behaviour differs from xmlBufferShrink() as it will return 0 on error instead of -1 due to size_t being used as the return type.</info>
      <return type='size_t' info='the number of byte removed or 0 in case of failure'/>
      <arg name='buf' type='xmlBufPtr' info='the buffer to dump'/>
      <arg name='len' type='size_t' info='the number of xmlChar to remove'/>
    </function>
    <function name='xmlBufUse' file='tree' module='buf'>
      <info>Function to get the length of a buffer</info>
      <return type='size_t' info='the length of data in the internal content'/>
      <arg name='buf' type='const xmlBufPtr' info='the buffer'/>
    </function>
    <function name='xmlBufferAdd' file='tree' module='tree'>
      <info>Add a string range to an XML buffer. if len == -1, the length of str is recomputed.</info>
      <return type='int' info='0 successful, a positive error code number otherwise and -1 in case of internal or API error.'/>
      <arg name='buf' type='xmlBufferPtr' info='the buffer to dump'/>
      <arg name='str' type='const xmlChar *' info='the #xmlChar string'/>
      <arg name='len' type='int' info='the number of #xmlChar to add'/>
    </function>
    <function name='xmlBufferAddHead' file='tree' module='tree'>
      <info>Add a string range to the beginning of an XML buffer. if len == -1, the length of @str is recomputed.</info>
      <return type='int' info='0 successful, a positive error code number otherwise and -1 in case of internal or API error.'/>
      <arg name='buf' type='xmlBufferPtr' info='the buffer'/>
      <arg name='str' type='const xmlChar *' info='the #xmlChar string'/>
      <arg name='len' type='int' info='the number of #xmlChar to add'/>
    </function>
    <function name='xmlBufferCCat' file='tree' module='tree'>
      <info>Append a zero terminated C string to an XML buffer.</info>
      <return type='int' info='0 successful, a positive error code number otherwise and -1 in case of internal or API error.'/>
      <arg name='buf' type='xmlBufferPtr' info='the buffer to dump'/>
      <arg name='str' type='const char *' info='the C char string'/>
    </function>
    <function name='xmlBufferCat' file='tree' module='tree'>
      <info>Append a zero terminated string to an XML buffer.</info>
      <return type='int' info='0 successful, a positive error code number otherwise and -1 in case of internal or API error.'/>
      <arg name='buf' type='xmlBufferPtr' info='the buffer to add to'/>
      <arg name='str' type='const xmlChar *' info='the #xmlChar string'/>
    </function>
    <function name='xmlBufferContent' file='tree' module='tree'>
      <info>Function to extract the content of a buffer</info>
      <return type='const xmlChar *' info='the internal content'/>
      <arg name='buf' type='const xmlBuffer *' info='the buffer'/>
    </function>
    <function name='xmlBufferCreate' file='tree' module='tree'>
      <info>routine to create an XML buffer.</info>
      <return type='xmlBufferPtr' info='the new structure.'/>
    </function>
    <function name='xmlBufferCreateSize' file='tree' module='tree'>
      <info>routine to create an XML buffer.</info>
      <return type='xmlBufferPtr' info='the new structure.'/>
      <arg name='size' type='size_t' info='initial size of buffer'/>
    </function>
    <function name='xmlBufferCreateStatic' file='tree' module='tree'>
      <info>routine to create an XML buffer from an immutable memory area. The area won&apos;t be modified nor copied, and is expected to be present until the end of the buffer lifetime.</info>
      <return type='xmlBufferPtr' info='the new structure.'/>
      <arg name='mem' type='void *' info='the memory area'/>
      <arg name='size' type='size_t' info='the size in byte'/>
    </function>
    <function name='xmlBufferDetach' file='tree' module='tree'>
      <info>Remove the string contained in a buffer and gie it back to the caller. The buffer is reset to an empty content. This doesn&apos;t work with immutable buffers as they can&apos;t be reset.</info>
      <return type='xmlChar *' info='the previous string contained by the buffer.'/>
      <arg name='buf' type='xmlBufferPtr' info='the buffer'/>
    </function>
    <function name='xmlBufferDump' file='tree' module='tree'>
      <info>Dumps an XML buffer to  a FILE *.</info>
      <return type='int' info='the number of #xmlChar written'/>
      <arg name='file' type='FILE *' info='the file output'/>
      <arg name='buf' type='xmlBufferPtr' info='the buffer to dump'/>
    </function>
    <function name='xmlBufferEmpty' file='tree' module='tree'>
      <info>empty a buffer.</info>
      <return type='void'/>
      <arg name='buf' type='xmlBufferPtr' info='the buffer'/>
    </function>
    <function name='xmlBufferFree' file='tree' module='tree'>
      <info>Frees an XML buffer. It frees both the content and the structure which encapsulate it.</info>
      <return type='void'/>
      <arg name='buf' type='xmlBufferPtr' info='the buffer to free'/>
    </function>
    <function name='xmlBufferGrow' file='tree' module='tree'>
      <info>Grow the available space of an XML buffer.</info>
      <return type='int' info='the new available space or -1 in case of error'/>
      <arg name='buf' type='xmlBufferPtr' info='the buffer'/>
      <arg name='len' type='unsigned int' info='the minimum free size to allocate'/>
    </function>
    <function name='xmlBufferLength' file='tree' module='tree'>
      <info>Function to get the length of a buffer</info>
      <return type='int' info='the length of data in the internal content'/>
      <arg name='buf' type='const xmlBuffer *' info='the buffer'/>
    </function>
    <function name='xmlBufferResize' file='tree' module='tree'>
      <info>Resize a buffer to accommodate minimum size of @size.</info>
      <return type='int' info='0 in case of problems, 1 otherwise'/>
      <arg name='buf' type='xmlBufferPtr' info='the buffer to resize'/>
      <arg name='size' type='unsigned int' info='the desired size'/>
    </function>
    <function name='xmlBufferSetAllocationScheme' file='tree' module='tree'>
      <info>Sets the allocation scheme for this buffer</info>
      <return type='void'/>
      <arg name='buf' type='xmlBufferPtr' info='the buffer to tune'/>
      <arg name='scheme' type='xmlBufferAllocationScheme' info='allocation scheme to use'/>
    </function>
    <function name='xmlBufferShrink' file='tree' module='tree'>
      <info>Remove the beginning of an XML buffer.</info>
      <return type='int' info='the number of #xmlChar removed, or -1 in case of failure.'/>
      <arg name='buf' type='xmlBufferPtr' info='the buffer to dump'/>
      <arg name='len' type='unsigned int' info='the number of xmlChar to remove'/>
    </function>
    <function name='xmlBufferWriteCHAR' file='tree' module='tree'>
      <info>routine which manages and grows an output buffer. This one adds xmlChars at the end of the buffer.</info>
      <return type='void'/>
      <arg name='buf' type='xmlBufferPtr' info='the XML buffer'/>
      <arg name='string' type='const xmlChar *' info='the string to add'/>
    </function>
    <function name='xmlBufferWriteChar' file='tree' module='tree'>
      <info>routine which manage and grows an output buffer. This one add C chars at the end of the array.</info>
      <return type='void'/>
      <arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
      <arg name='string' type='const char *' info='the string to add'/>
    </function>
    <function name='xmlBufferWriteQuotedString' file='tree' module='tree'>
      <info>routine which manage and grows an output buffer. This one writes a quoted or double quoted #xmlChar string, checking first if it holds quote or double-quotes internally</info>
      <return type='void'/>
      <arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
      <arg name='string' type='const xmlChar *' info='the string to add'/>
    </function>
    <function name='xmlBuildQName' file='tree' module='tree'>
      <info>Builds the QName @prefix:@ncname in @memory if there is enough space and prefix is not NULL nor empty, otherwise allocate a new string. If prefix is NULL or empty it returns ncname.</info>
      <return type='xmlChar *' info='the new string which must be freed by the caller if different from @memory and @ncname or NULL in case of error'/>
      <arg name='ncname' type='const xmlChar *' info='the Name'/>
      <arg name='prefix' type='const xmlChar *' info='the prefix'/>
      <arg name='memory' type='xmlChar *' info='preallocated memory'/>
      <arg name='len' type='int' info='preallocated memory length'/>
    </function>
    <function name='xmlBuildRelativeURI' file='uri' module='uri'>
      <info>Expresses the URI of the reference in terms relative to the base.  Some examples of this operation include: base = &quot;http://site1.com/docs/book1.html&quot; URI input                        URI returned docs/pic1.gif                    pic1.gif docs/img/pic1.gif                img/pic1.gif img/pic1.gif                     ../img/pic1.gif http://site1.com/docs/pic1.gif   pic1.gif http://site2.com/docs/pic1.gif   http://site2.com/docs/pic1.gif  base = &quot;docs/book1.html&quot; URI input                        URI returned docs/pic1.gif                    pic1.gif docs/img/pic1.gif                img/pic1.gif img/pic1.gif                     ../img/pic1.gif http://site1.com/docs/pic1.gif   http://site1.com/docs/pic1.gif   Note: if the URI reference is really wierd or complicated, it may be worthwhile to first convert it into a &quot;nice&quot; one by calling xmlBuildURI (using &apos;base&apos;) before calling this routine, since this routine (for reasonable efficiency) assumes URI has already been through some validation.</info>
      <return type='xmlChar *' info='a new URI string (to be freed by the caller) or NULL in case error.'/>
      <arg name='URI' type='const xmlChar *' info='the URI reference under consideration'/>
      <arg name='base' type='const xmlChar *' info='the base value'/>
    </function>
    <function name='xmlBuildURI' file='uri' module='uri'>
      <info>Computes he final URI of the reference done by checking that the given URI is valid, and building the final URI using the base URI. This is processed according to section 5.2 of the RFC 2396  5.2. Resolving Relative References to Absolute Form</info>
      <return type='xmlChar *' info='a new URI string (to be freed by the caller) or NULL in case of error.'/>
      <arg name='URI' type='const xmlChar *' info='the URI instance found in the document'/>
      <arg name='base' type='const xmlChar *' info='the base value'/>
    </function>
    <function name='xmlByteConsumed' file='parser' module='encoding'>
      <info>This function provides the current index of the parser relative to the start of the current entity. This function is computed in bytes from the beginning starting at zero and finishing at the size in byte of the file if parsing a file. The function is of constant cost if the input is UTF-8 but can be costly if run on non-UTF-8 input.</info>
      <return type='long' info='the index in bytes from the beginning of the entity or -1 in case the index could not be computed.'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlC14NDocDumpMemory' file='c14n' module='c14n'>
      <cond>defined(LIBXML_C14N_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Dumps the canonized image of given XML document into memory. For details see &quot;Canonical XML&quot; (http://www.w3.org/TR/xml-c14n) or &quot;Exclusive XML Canonicalization&quot; (http://www.w3.org/TR/xml-exc-c14n)</info>
      <return type='int' info='the number of bytes written on success or a negative value on fail'/>
      <arg name='doc' type='xmlDocPtr' info='the XML document for canonization'/>
      <arg name='nodes' type='xmlNodeSetPtr' info='the nodes set to be included in the canonized image or NULL if all document nodes should be included'/>
      <arg name='mode' type='int' info='the c14n mode (see @xmlC14NMode)'/>
      <arg name='inclusive_ns_prefixes' type='xmlChar **' info='the list of inclusive namespace prefixes ended with a NULL or NULL if there is no inclusive namespaces (only for exclusive canonicalization, ignored otherwise)'/>
      <arg name='with_comments' type='int' info='include comments in the result (!=0) or not (==0)'/>
      <arg name='doc_txt_ptr' type='xmlChar **' info='the memory pointer for allocated canonical XML text; the caller of this functions is responsible for calling xmlFree() to free allocated memory'/>
    </function>
    <function name='xmlC14NDocSave' file='c14n' module='c14n'>
      <cond>defined(LIBXML_C14N_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Dumps the canonized image of given XML document into the file. For details see &quot;Canonical XML&quot; (http://www.w3.org/TR/xml-c14n) or &quot;Exclusive XML Canonicalization&quot; (http://www.w3.org/TR/xml-exc-c14n)</info>
      <return type='int' info='the number of bytes written success or a negative value on fail'/>
      <arg name='doc' type='xmlDocPtr' info='the XML document for canonization'/>
      <arg name='nodes' type='xmlNodeSetPtr' info='the nodes set to be included in the canonized image or NULL if all document nodes should be included'/>
      <arg name='mode' type='int' info='the c14n mode (see @xmlC14NMode)'/>
      <arg name='inclusive_ns_prefixes' type='xmlChar **' info='the list of inclusive namespace prefixes ended with a NULL or NULL if there is no inclusive namespaces (only for exclusive canonicalization, ignored otherwise)'/>
      <arg name='with_comments' type='int' info='include comments in the result (!=0) or not (==0)'/>
      <arg name='filename' type='const char *' info='the filename to store canonical XML image'/>
      <arg name='compression' type='int' info='the compression level (zlib requred): -1 - libxml default, 0 - uncompressed, &gt;0 - compression level'/>
    </function>
    <function name='xmlC14NDocSaveTo' file='c14n' module='c14n'>
      <cond>defined(LIBXML_C14N_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Dumps the canonized image of given XML document into the provided buffer. For details see &quot;Canonical XML&quot; (http://www.w3.org/TR/xml-c14n) or &quot;Exclusive XML Canonicalization&quot; (http://www.w3.org/TR/xml-exc-c14n)</info>
      <return type='int' info='non-negative value on success or a negative value on fail'/>
      <arg name='doc' type='xmlDocPtr' info='the XML document for canonization'/>
      <arg name='nodes' type='xmlNodeSetPtr' info='the nodes set to be included in the canonized image or NULL if all document nodes should be included'/>
      <arg name='mode' type='int' info='the c14n mode (see @xmlC14NMode)'/>
      <arg name='inclusive_ns_prefixes' type='xmlChar **' info='the list of inclusive namespace prefixes ended with a NULL or NULL if there is no inclusive namespaces (only for exclusive canonicalization, ignored otherwise)'/>
      <arg name='with_comments' type='int' info='include comments in the result (!=0) or not (==0)'/>
      <arg name='buf' type='xmlOutputBufferPtr' info='the output buffer to store canonical XML; this buffer MUST have encoder==NULL because C14N requires UTF-8 output'/>
    </function>
    <function name='xmlC14NExecute' file='c14n' module='c14n'>
      <cond>defined(LIBXML_C14N_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Dumps the canonized image of given XML document into the provided buffer. For details see &quot;Canonical XML&quot; (http://www.w3.org/TR/xml-c14n) or &quot;Exclusive XML Canonicalization&quot; (http://www.w3.org/TR/xml-exc-c14n)</info>
      <return type='int' info='non-negative value on success or a negative value on fail'/>
      <arg name='doc' type='xmlDocPtr' info='the XML document for canonization'/>
      <arg name='is_visible_callback' type='xmlC14NIsVisibleCallback' info='the function to use to determine is node visible or not'/>
      <arg name='user_data' type='void *' info='the first parameter for @is_visible_callback function (in most cases, it is nodes set)'/>
      <arg name='mode' type='int' info='the c14n mode (see @xmlC14NMode)'/>
      <arg name='inclusive_ns_prefixes' type='xmlChar **' info='the list of inclusive namespace prefixes ended with a NULL or NULL if there is no inclusive namespaces (only for exclusive canonicalization, ignored otherwise)'/>
      <arg name='with_comments' type='int' info='include comments in the result (!=0) or not (==0)'/>
      <arg name='buf' type='xmlOutputBufferPtr' info='the output buffer to store canonical XML; this buffer MUST have encoder==NULL because C14N requires UTF-8 output'/>
    </function>
    <functype name='xmlC14NIsVisibleCallback' file='c14n' module='c14n'>
      <cond>defined(LIBXML_C14N_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Signature for a C14N callback on visible nodes</info>
      <return type='int' info='1 if the node should be included'/>
      <arg name='user_data' type='void *' info='user data'/>
      <arg name='node' type='xmlNodePtr' info='the curent node'/>
      <arg name='parent' type='xmlNodePtr' info='the parent node'/>
    </functype>
    <function name='xmlCanonicPath' file='uri' module='uri'>
      <info>Constructs a canonic path from the specified path.</info>
      <return type='xmlChar *' info='a new canonic path, or a duplicate of the path parameter if the construction fails. The caller is responsible for freeing the memory occupied by the returned string. If there is insufficient memory available, or the argument is NULL, the function returns NULL.'/>
      <arg name='path' type='const xmlChar *' info='the resource locator in a filesystem notation'/>
    </function>
    <function name='xmlCatalogAdd' file='catalog' module='catalog'>
      <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
      <info>Add an entry in the catalog, it may overwrite existing but different entries. If called before any other catalog routine, allows to override the default shared catalog put in place by xmlInitializeCatalog();</info>
      <return type='int' info='0 if successful, -1 otherwise'/>
      <arg name='type' type='const xmlChar *' info='the type of record to add to the catalog'/>
      <arg name='orig' type='const xmlChar *' info='the system, public or prefix to match'/>
      <arg name='replace' type='const xmlChar *' info='the replacement value for the match'/>
    </function>
    <function name='xmlCatalogAddLocal' file='catalog' module='catalog'>
      <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
      <info>Add the new entry to the catalog list</info>
      <return type='void *' info='the updated list'/>
      <arg name='catalogs' type='void *' info='a document&apos;s list of catalogs'/>
      <arg name='URL' type='const xmlChar *' info='the URL to a new local catalog'/>
    </function>
    <function name='xmlCatalogCleanup' file='catalog' module='catalog'>
      <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
      <info>Free up all the memory associated with catalogs</info>
      <return type='void'/>
    </function>
    <function name='xmlCatalogConvert' file='catalog' module='catalog'>
      <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
      <info>Convert all the SGML catalog entries as XML ones</info>
      <return type='int' info='the number of entries converted if successful, -1 otherwise'/>
    </function>
    <function name='xmlCatalogDump' file='catalog' module='catalog'>
      <cond>defined(LIBXML_CATALOG_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Dump all the global catalog content to the given file.</info>
      <return type='void'/>
      <arg name='out' type='FILE *' info='the file.'/>
    </function>
    <function name='xmlCatalogFreeLocal' file='catalog' module='catalog'>
      <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
      <info>Free up the memory associated to the catalog list</info>
      <return type='void'/>
      <arg name='catalogs' type='void *' info='a document&apos;s list of catalogs'/>
    </function>
    <function name='xmlCatalogGetDefaults' file='catalog' module='catalog'>
      <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
      <info>Used to get the user preference w.r.t. to what catalogs should be accepted</info>
      <return type='xmlCatalogAllow' info='the current xmlCatalogAllow value'/>
    </function>
    <function name='xmlCatalogGetPublic' file='catalog' module='catalog'>
      <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
      <info>Try to lookup the catalog reference associated to a public ID DEPRECATED, use xmlCatalogResolvePublic()</info>
      <return type='const xmlChar *' info='the resource if found or NULL otherwise.'/>
      <arg name='pubID' type='const xmlChar *' info='the public ID string'/>
    </function>
    <function name='xmlCatalogGetSystem' file='catalog' module='catalog'>
      <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
      <info>Try to lookup the catalog reference associated to a system ID DEPRECATED, use xmlCatalogResolveSystem()</info>
      <return type='const xmlChar *' info='the resource if found or NULL otherwise.'/>
      <arg name='sysID' type='const xmlChar *' info='the system ID string'/>
    </function>
    <function name='xmlCatalogIsEmpty' file='catalog' module='catalog'>
      <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
      <info>Check is a catalog is empty</info>
      <return type='int' info='1 if the catalog is empty, 0 if not, amd -1 in case of error.'/>
      <arg name='catal' type='xmlCatalogPtr' info='should this create an SGML catalog'/>
    </function>
    <function name='xmlCatalogLocalResolve' file='catalog' module='catalog'>
      <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
      <info>Do a complete resolution lookup of an External Identifier using a document&apos;s private catalog list</info>
      <return type='xmlChar *' info='the URI of the resource or NULL if not found, it must be freed by the caller.'/>
      <arg name='catalogs' type='void *' info='a document&apos;s list of catalogs'/>
      <arg name='pubID' type='const xmlChar *' info='the public ID string'/>
      <arg name='sysID' type='const xmlChar *' info='the system ID string'/>
    </function>
    <function name='xmlCatalogLocalResolveURI' file='catalog' module='catalog'>
      <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
      <info>Do a complete resolution lookup of an URI using a document&apos;s private catalog list</info>
      <return type='xmlChar *' info='the URI of the resource or NULL if not found, it must be freed by the caller.'/>
      <arg name='catalogs' type='void *' info='a document&apos;s list of catalogs'/>
      <arg name='URI' type='const xmlChar *' info='the URI'/>
    </function>
    <function name='xmlCatalogRemove' file='catalog' module='catalog'>
      <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
      <info>Remove an entry from the catalog</info>
      <return type='int' info='the number of entries removed if successful, -1 otherwise'/>
      <arg name='value' type='const xmlChar *' info='the value to remove'/>
    </function>
    <function name='xmlCatalogResolve' file='catalog' module='catalog'>
      <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
      <info>Do a complete resolution lookup of an External Identifier</info>
      <return type='xmlChar *' info='the URI of the resource or NULL if not found, it must be freed by the caller.'/>
      <arg name='pubID' type='const xmlChar *' info='the public ID string'/>
      <arg name='sysID' type='const xmlChar *' info='the system ID string'/>
    </function>
    <function name='xmlCatalogResolvePublic' file='catalog' module='catalog'>
      <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
      <info>Try to lookup the catalog reference associated to a public ID</info>
      <return type='xmlChar *' info='the resource if found or NULL otherwise, the value returned must be freed by the caller.'/>
      <arg name='pubID' type='const xmlChar *' info='the public ID string'/>
    </function>
    <function name='xmlCatalogResolveSystem' file='catalog' module='catalog'>
      <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
      <info>Try to lookup the catalog resource for a system ID</info>
      <return type='xmlChar *' info='the resource if found or NULL otherwise, the value returned must be freed by the caller.'/>
      <arg name='sysID' type='const xmlChar *' info='the system ID string'/>
    </function>
    <function name='xmlCatalogResolveURI' file='catalog' module='catalog'>
      <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
      <info>Do a complete resolution lookup of an URI</info>
      <return type='xmlChar *' info='the URI of the resource or NULL if not found, it must be freed by the caller.'/>
      <arg name='URI' type='const xmlChar *' info='the URI'/>
    </function>
    <function name='xmlCatalogSetDebug' file='catalog' module='catalog'>
      <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
      <info>Used to set the debug level for catalog operation, 0 disable debugging, 1 enable it</info>
      <return type='int' info='the previous value of the catalog debugging level'/>
      <arg name='level' type='int' info='the debug level of catalogs required'/>
    </function>
    <function name='xmlCatalogSetDefaultPrefer' file='catalog' module='catalog'>
      <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
      <info>Allows to set the preference between public and system for deletion in XML Catalog resolution. C.f. section 4.1.1 of the spec Values accepted are XML_CATA_PREFER_PUBLIC or XML_CATA_PREFER_SYSTEM</info>
      <return type='xmlCatalogPrefer' info='the previous value of the default preference for delegation'/>
      <arg name='prefer' type='xmlCatalogPrefer' info='the default preference for delegation'/>
    </function>
    <function name='xmlCatalogSetDefaults' file='catalog' module='catalog'>
      <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
      <info>Used to set the user preference w.r.t. to what catalogs should be accepted</info>
      <return type='void'/>
      <arg name='allow' type='xmlCatalogAllow' info='what catalogs should be accepted'/>
    </function>
    <function name='xmlCharEncCloseFunc' file='encoding' module='encoding'>
      <info>Generic front-end for encoding handler close function</info>
      <return type='int' info='