### ----------------------------------------------------
### -- LibXML
### -- Licenses: Artistic-2.0
### -- Authors: David Warring
### -- File: etc/libxml2-api.xml
### ----------------------------------------------------
### -- Chunk 30 of 44
='ExternalID' type='const xmlChar *' info='the external identifier'/>
      <arg name='SystemID' type='const xmlChar *' info='the system identifier (or URL)'/>
    </function>
    <function name='xmlParseFile' file='parser' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <info>parse an XML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</info>
      <return type='xmlDocPtr' info='the resulting document tree if the file was wellformed, NULL otherwise.'/>
      <arg name='filename' type='const char *' info='the filename'/>
    </function>
    <function name='xmlParseInNodeContext' file='parser' module='parser'>
      <info>Parse a well-balanced chunk of an XML document within the context (DTD, namespaces, etc ...) of the given node.  The allowed sequence for the data is a Well Balanced Chunk defined by the content production in the XML grammar:  [43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*</info>
      <return type='xmlParserErrors' info='XML_ERR_OK if the chunk is well balanced, and the parser error code otherwise'/>
      <arg name='node' type='xmlNodePtr' info='the context node'/>
      <arg name='data' type='const char *' info='the input string'/>
      <arg name='datalen' type='int' info='the input string length in bytes'/>
      <arg name='options' type='int' info='a combination of xmlParserOption'/>
      <arg name='lst' type='xmlNodePtr *' info='the return value for the set of parsed nodes'/>
    </function>
    <function name='xmlParseMarkupDecl' file='parserInternals' module='parser'>
      <info>parse Markup declarations  [29] markupdecl ::= elementdecl | AttlistDecl | EntityDecl | NotationDecl | PI | Comment  [ VC: Proper Declaration/PE Nesting ] Parameter-entity replacement text must be properly nested with markup declarations. That is to say, if either the first character or the last character of a markup declaration (markupdecl above) is contained in the replacement text for a parameter-entity reference, both must be contained in the same replacement text.  [ WFC: PEs in Internal Subset ] In the internal DTD subset, parameter-entity references can occur only where markup declarations can occur, not within markup declarations. (This does not apply to references that occur in external parameter entities or to the external subset.)</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseMemory' file='parser' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <info>parse an XML in-memory block and build a tree.</info>
      <return type='xmlDocPtr' info='the resulting document tree'/>
      <arg name='buffer' type='const char *' info='an pointer to a char array'/>
      <arg name='size' type='int' info='the size of the array'/>
    </function>
    <function name='xmlParseMisc' file='parserInternals' module='parser'>
      <info>parse an XML Misc* optional field.  [27] Misc ::= Comment | PI |  S</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseName' file='parserInternals' module='parser'>
      <info>parse an XML name.  [4] NameChar ::= Letter | Digit | &apos;.&apos; | &apos;-&apos; | &apos;_&apos; | &apos;:&apos; | CombiningChar | Extender  [5] Name ::= (Letter | &apos;_&apos; | &apos;:&apos;) (NameChar)*  [6] Names ::= Name (#x20 Name)*</info>
      <return type='const xmlChar *' info='the Name parsed or NULL'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseNamespace' file='parserInternals' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>xmlParseNamespace: parse specific PI &apos;&lt;?namespace ...&apos; constructs.  This is what the older xml-name Working Draft specified, a bunch of other stuff may still rely on it, so support is still here as if it was declared on the root of the Tree:-(  TODO: remove from library  To be removed at next drop of binary compatibility</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseNmtoken' file='parserInternals' module='parser'>
      <info>parse an XML Nmtoken.  [7] Nmtoken ::= (NameChar)+  [8] Nmtokens ::= Nmtoken (#x20 Nmtoken)*</info>
      <return type='xmlChar *' info='the Nmtoken parsed or NULL'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseNotationDecl' file='parserInternals' module='parser'>
      <info>parse a notation declaration  [82] NotationDecl ::= &apos;&lt;!NOTATION&apos; S Name S (ExternalID |  PublicID) S? &apos;&gt;&apos;  Hence there is actually 3 choices: &apos;PUBLIC&apos; S PubidLiteral &apos;PUBLIC&apos; S PubidLiteral S SystemLiteral and &apos;SYSTEM&apos; S SystemLiteral  See the NOTE on xmlParseExternalID().</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseNotationType' file='parserInternals' module='parser'>
      <info>parse an Notation attribute type.  Note: the leading &apos;NOTATION&apos; S part has already being parsed...  [58] NotationType ::= &apos;NOTATION&apos; S &apos;(&apos; S? Name (S? &apos;|&apos; S? Name)* S? &apos;)&apos;  [ VC: Notation Attributes ] Values of this type must match one of the notation names included in the declaration; all notation names in the declaration must be declared.</info>
      <return type='xmlEnumerationPtr' info='the notation attribute tree built while parsing'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParsePEReference' file='parserInternals' module='parser'>
      <info>parse PEReference declarations The entity content is handled directly by pushing it&apos;s content as a new input stream.  [69] PEReference ::= &apos;%&apos; Name &apos;;&apos;  [ WFC: No Recursion ] A parsed entity must not contain a recursive reference to itself, either directly or indirectly.  [ WFC: Entity Declared ] In a document without any DTD, a document with only an internal DTD subset which contains no parameter entity references, or a document with &quot;standalone=&apos;yes&apos;&quot;, ...  ... The declaration of a parameter entity must precede any reference to it...  [ VC: Entity Declared ] In a document with an external subset or external parameter entities with &quot;standalone=&apos;no&apos;&quot;, ...  ... The declaration of a parameter entity must precede any reference to it...  [ WFC: In DTD ] Parameter-entity references may only appear in the DTD. NOTE: misleading but this is handled.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParsePI' file='parserInternals' module='parser'>
      <info>parse an XML Processing Instruction.  [16] PI ::= &apos;&lt;?&apos; PITarget (S (Char* - (Char* &apos;?&gt;&apos; Char*)))? &apos;?&gt;&apos;  The processing is transfered to SAX once parsed.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParsePITarget' file='parserInternals' module='parser'>
      <info>parse the name of a PI  [17] PITarget ::= Name - ((&apos;X&apos; | &apos;x&apos;) (&apos;M&apos; | &apos;m&apos;) (&apos;L&apos; | &apos;l&apos;))</info>
      <return type='const xmlChar *' info='the PITarget name or NULL'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParsePubidLiteral' file='parserInternals' module='parser'>
      <info>parse an XML public literal  [12] PubidLiteral ::= &apos;&quot;&apos; PubidChar* &apos;&quot;&apos; | &quot;&apos;&quot; (PubidChar - &quot;&apos;&quot;)* &quot;&apos;&quot;</info>
      <return type='xmlChar *' info='the PubidLiteral parsed or NULL.'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseQuotedString' file='parserInternals' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>Parse and return a string between quotes or doublequotes  TODO: Deprecated, to  be removed at next drop of binary compatibility</info>
      <return type='xmlChar *' info='the string parser or NULL.'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseReference' file='parserInternals' module='parser'>
      <info>parse and handle entity references in content, depending on the SAX interface, this may end-up in a call to character() if this is a CharRef, a predefined entity, if there is no reference() callback. or if the parser was asked to switch to that mode.  [67] Reference ::= EntityRef | CharRef</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseSDDecl' file='parserInternals' module='parser'>
      <info>parse the XML standalone declaration  [32] SDDecl ::= S &apos;standalone&apos; Eq ((&quot;&apos;&quot; (&apos;yes&apos; | &apos;no&apos;) &quot;&apos;&quot;) | (&apos;&quot;&apos; (&apos;yes&apos; | &apos;no&apos;)&apos;&quot;&apos;))  [ VC: Standalone Document Declaration ] TODO The standalone document declaration must have the value &quot;no&quot; if any external markup declarations contain declarations of: - attributes with default values, if elements to which these attributes apply appear in the document without specifications of values for these attributes, or - entities (other than amp, lt, gt, apos, quot), if references to those entities appear in the document, or - attributes with values subject to normalization, where the attribute appears in the document with a value which will change as a result of normalization, or - element types with element content, if white space occurs directly within any instance of those types.</info>
      <return type='int' info='1 if standalone=&quot;yes&quot; 0 if standalone=&quot;no&quot; -2 if standalone attribute is missing or invalid (A standalone value of -2 means that the XML declaration was found, but no value was specified for the standalone attribute).'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseStartTag' file='parserInternals' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <info>parse a start of tag either for rule element or EmptyElement. In both case we don&apos;t parse the tag closing chars.  [40] STag ::= &apos;&lt;&apos; Name (S Attribute)* S? &apos;&gt;&apos;  [ WFC: Unique Att Spec ] No attribute name may appear more than once in the same start-tag or empty-element tag.  [44] EmptyElemTag ::= &apos;&lt;&apos; Name (S Attribute)* S? &apos;/&gt;&apos;  [ WFC: Unique Att Spec ] No attribute name may appear more than once in the same start-tag or empty-element tag.  With namespace:  [NS 8] STag ::= &apos;&lt;&apos; QName (S Attribute)* S? &apos;&gt;&apos;  [NS 10] EmptyElement ::= &apos;&lt;&apos; QName (S Attribute)* S? &apos;/&gt;&apos;</info>
      <return type='const xmlChar *' info='the element name parsed'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseSystemLiteral' file='parserInternals' module='parser'>
      <info>parse an XML Literal  [11] SystemLiteral ::= (&apos;&quot;&apos; [^&quot;]* &apos;&quot;&apos;) | (&quot;&apos;&quot; [^&apos;]* &quot;&apos;&quot;)</info>
      <return type='xmlChar *' info='the SystemLiteral parsed or NULL'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseTextDecl' file='parserInternals' module='parser'>
      <info>parse an XML declaration header for external entities  [77] TextDecl ::= &apos;&lt;?xml&apos; VersionInfo? EncodingDecl S? &apos;?&gt;&apos;</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseURI' file='uri' module='uri'>
      <info>Parse an URI based on RFC 3986  URI-reference = [ absoluteURI | relativeURI ] [ &quot;#&quot; fragment ]</info>
      <return type='xmlURIPtr' info='a newly built xmlURIPtr or NULL in case of error'/>
      <arg name='str' type='const char *' info='the URI string to analyze'/>
    </function>
    <function name='xmlParseURIRaw' file='uri' module='uri'>
      <info>Parse an URI but allows to keep intact the original fragments.  URI-reference = URI / relative-ref</info>
      <return type='xmlURIPtr' info='a newly built xmlURIPtr or NULL in case of error'/>
      <arg name='str' type='const char *' info='the URI string to analyze'/>
      <arg name='raw' type='int' info='if 1 unescaping of URI pieces are disabled'/>
    </function>
    <function name='xmlParseURIReference' file='uri' module='uri'>
      <info>Parse an URI reference string based on RFC 3986 and fills in the appropriate fields of the @uri structure  URI-reference = URI / relative-ref</info>
      <return type='int' info='0 or the error code'/>
      <arg name='uri' type='xmlURIPtr' info='pointer to an URI structure'/>
      <arg name='str' type='const char *' info='the string to analyze'/>
    </function>
    <function name='xmlParseVersionInfo' file='parserInternals' module='parser'>
      <info>parse the XML version.  [24] VersionInfo ::= S &apos;version&apos; Eq (&apos; VersionNum &apos; | &quot; VersionNum &quot;)  [25] Eq ::= S? &apos;=&apos; S?</info>
      <return type='xmlChar *' info='the version string, e.g. &quot;1.0&quot;'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseVersionNum' file='parserInternals' module='parser'>
      <info>parse the XML version value.  [26] VersionNum ::= &apos;1.&apos; [0-9]+  In practice allow [0-9].[0-9]+ at that level</info>
      <return type='xmlChar *' info='the string giving the XML version number, or NULL'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseXMLDecl' file='parserInternals' module='parser'>
      <info>parse an XML declaration header  [23] XMLDecl ::= &apos;&lt;?xml&apos; VersionInfo EncodingDecl? SDDecl? S? &apos;?&gt;&apos;</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParserAddNodeInfo' file='parser' module='parserInternals'>
      <info>Insert node info record into the sorted sequence</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='info' type='const xmlParserNodeInfoPtr' info='a node info sequence pointer'/>
    </function>
    <function name='xmlParserError' file='xmlerror' module='error'>
      <info>Display and format an error messages, gives file, line, position and extra parameters.</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'/>
    </function>
    <function name='xmlParserFindNodeInfo' file='parser' module='parserInternals'>
      <info>Find the parser node info struct for a given node</info>
      <return type='const xmlParserNodeInfo *' info='an xmlParserNodeInfo block pointer or NULL'/>
      <arg name='ctx' type='const xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='node' type='const xmlNodePtr' info='an XML node within the tree'/>
    </function>
    <function name='xmlParserFindNodeInfoIndex' file='parser' module='parserInternals'>
      <info>xmlParserFindNodeInfoIndex : Find the index that the info record for the given node is or should be at in a sorted sequence</info>
      <return type='unsigned long' info='a long indicating the position of the record'/>
      <arg name='seq' type='const xmlParserNodeInfoSeqPtr' info='a node info sequence pointer'/>
      <arg name='node' type='const xmlNodePtr' info='an XML node pointer'/>
    </function>
    <function name='xmlParserGetDirectory' file='xmlIO' module='xmlIO'>
      <info>lookup the directory for that file</info>
      <return type='char *' info='a new allocated string containing the directory, or NULL.'/>
      <arg name='filename' type='const char *' info='the path to a file'/>
    </function>
    <function name='xmlParserHandlePEReference' file='parserInternals' module='parser'>
      <info>[69] PEReference ::= &apos;%&apos; Name &apos;;&apos;  [ WFC: No Recursion ] A parsed entity must not contain a recursive reference to itself, either directly or indirectly.  [ WFC: Entity Declared ] In a document without any DTD, a document with only an internal DTD subset which contains no parameter entity references, or a document with &quot;standalone=&apos;yes&apos;&quot;, ...  ... The declaration of a parameter entity must precede any reference to it...  [ VC: Entity Declared ] In a document with an external subset or external parameter entities with &quot;standalone=&apos;no&apos;&quot;, ...  ... The declaration of a parameter entity must precede any reference to it...  [ WFC: In DTD ] Parameter-entity references may only appear in the DTD. NOTE: misleading but this is handled.  A PEReference may have been detected in the current input stream the handling is done accordingly to http://www.w3.org/TR/REC-xml#entproc i.e. - Included in literal in entity values - Included as Parameter Entity reference within DTDs</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='the parser context'/>
    </function>
    <function name='xmlParserHandleReference' file='parserInternals' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>TODO: Remove, now deprecated ... the test is done directly in the content parsing routines.  [67] Reference ::= EntityRef | CharRef  [68] EntityRef ::= &apos;&amp;&apos; Name &apos;;&apos;  [ WFC: Entity Declared ] the Name given in the entity reference must match that in an entity declaration, except that well-formed documents need not declare any of the following entities: amp, lt, gt, apos, quot.  [ WFC: Parsed Entity ] An entity reference must not contain the name of an unparsed entity  [66] CharRef ::= &apos;&amp;#&apos; [0-9]+ &apos;;&apos; | &apos;&amp;#x&apos; [0-9a-fA-F]+ &apos;;&apos;  A PEReference may have been detected in the current input stream the handling is done accordingly to http://www.w3.org/TR/REC-xml#entproc</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='the parser context'/>
    </function>
    <function name='xmlParserInputBufferCreateFd' file='xmlIO' module='xmlIO'>
      <info>Create a buffered parser input for the progressive parsing for the input from a file descriptor</info>
      <return type='xmlParserInputBufferPtr' info='the new parser input or NULL'/>
      <arg name='fd' type='int' info='a file descriptor number'/>
      <arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
    </function>
    <function name='xmlParserInputBufferCreateFile' file='xmlIO' module='xmlIO'>
      <info>Create a buffered parser input for the progressive parsing of a FILE * buffered C I/O</info>
      <return type='xmlParserInputBufferPtr' info='the new parser input or NULL'/>
      <arg name='file' type='FILE *' info='a FILE*'/>
      <arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
    </function>
    <function name='xmlParserInputBufferCreateFilename' file='xmlIO' module='xmlIO'>
      <info>Create a buffered parser input for the progressive parsing of a file If filename is &quot;-&apos; then we use stdin as the input. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. Do an encoding check if enc == XML_CHAR_ENCODING_NONE</info>
      <return type='xmlParserInputBufferPtr' info='the new parser input or NULL'/>
      <arg name='URI' type='const char *' info='a C string containing the URI or filename'/>
      <arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
    </function>
    <function name='xmlParserInputBufferCreateFilenameDefault' file='globals' module='xmlIO'>
      <info>Registers a callback for URI input file handling</info>
      <return type='xmlParserInputBufferCreateFilenameFunc' info='the old value of the registration function'/>
      <arg name='func' type='xmlParserInputBufferCreateFilenameFunc' info='function pointer to the new ParserInputBufferCreateFilenameFunc'/>
    </function>
    <functype name='xmlParserInputBufferCreateFilenameFunc' file='globals' module='globals'>
      <info>Signature for the function doing the lookup for a suitable input method corresponding to an URI.</info>
      <return type='xmlParserInputBufferPtr' info='the new xmlParserInputBufferPtr in case of success or NULL if no method was found.'/>
      <arg name='URI' type='const char *' info='the URI to read from'/>
      <arg name='enc' type='xmlCharEncoding' info='the requested source encoding'/>
    </functype>
    <function name='xmlParserInputBufferCreateIO' file='xmlIO' module='xmlIO'>
      <info>Create a buffered parser input for the progressive parsing for the input from an I/O handler</info>
      <return type='xmlParserInputBufferPtr' info='the new parser input or NULL'/>
      <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='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
    </function>
    <function name='xmlParserInputBufferCreateMem' file='xmlIO' module='xmlIO'>
      <info>Create a buffered parser input for the progressive parsing for the input from a memory area.</info>
      <return type='xmlParserInputBufferPtr' info='the new parser input or NULL'/>
      <arg name='mem' type='const char *' info='the memory input'/>
      <arg name='size' type='int' info='the length of the memory block'/>
      <arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
    </function>
    <function name='xmlParserInputBufferCreateStatic' file='xmlIO' module='xmlIO'>
      <info>Create a buffered parser input for the progressive parsing for the input from an immutable memory area. This will not copy the memory area to the buffer, but the memory is expected to be available until the end of the parsing, this is useful for example when using mmap&apos;ed file.</info>
      <return type='xmlParserInputBufferPtr' info='the new parser input or NULL'/>
      <arg name='mem' type='const char *' info='the memory input'/>
      <arg name='size' type='int' info='the length of the memory block'/>
      <arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
    </function>
    <function name='xmlParserInputBufferGrow' file='xmlIO' module='xmlIO'>
      <info>Grow up the content of the input buffer, the old data are preserved This routine handle the I18N transcoding to internal UTF-8 This routine is used when operating the parser in normal (pull) mode  TODO: one should be able to remove one extra copy by copying directly onto in-&gt;buffer or in-&gt;raw</info>
      <return type='int' info='the number of chars read and stored in the buffer, or -1 in case of error.'/>
      <arg name='in' type='xmlParserInputBufferPtr' info='a buffered parser input'/>
      <arg name='len' type='int' info='indicative value of the amount of chars to read'/>
    </function>
    <function name='xmlParserInputBufferPush' file='xmlIO' module='xmlIO'>
      <info>Push the content of the arry in the input buffer This routine handle the I18N transcoding to internal UTF-8 This is used when operating the parser in progressive (push) mode.</info>
      <return type='int' info='the number of chars read and stored in the buffer, or -1 in case of error.'/>
      <arg name='in' type='xmlParserInputBufferPtr' info='a buffered parser input'/>
      <arg name='len' type='int' info='the size in bytes of the array.'/>
      <arg name='buf' type='const char *' info='an char array'/>
    </function>
    <function name='xmlParserInputBufferRead' file='xmlIO' module='xmlIO'>
      <info>Refresh the content of the input buffer, the old data are considered consumed This routine handle the I18N transcoding to internal UTF-8</info>
      <return type='int' info='the number of chars read and stored in the buffer, or -1 in case of error.'/>
      <arg name='in' type='xmlParserInputBufferPtr' info='a buffered parser input'/>
      <arg name='len' type='int' info='indicative value of the amount of chars to read'/>
    </function>
    <functype name='xmlParserInputDeallocate' file='parser' module='parser'>
      <info>Callback for freeing some parser input allocations.</info>
      <return type='void'/>
      <arg name='str' type='xmlChar *' info='the string to deallocate'/>
    </functype>
    <function name='xmlParserInputGrow' file='parser' module='parserInternals'>
      <info>This function increase the input for the parser. It tries to preserve pointers to the input buffer, and keep already read data</info>
      <return type='int' info='the amount of char read, or -1 in case of error, 0 indicate the end of this entity'/>
      <arg name='in' type='xmlParserInputPtr' info='an XML parser input'/>
      <arg name='len' type='int' info='an indicative size for the lookahead'/>
    </function>
    <function name='xmlParserInputRead' file='parser' module='parserInternals'>
      <info>This function was internal and is deprecated.</info>
      <return type='int' info='-1 as this is an error to use it.'/>
      <arg name='in' type='xmlParserInputPtr' info='an XML parser input'/>
      <arg name='len' type='int' info='an indicative size for the lookahead'/>
    </function>
    <function name='xmlParserInputShrink' file='parserInternals' module='parserInternals'>
      <info>This function removes used input for the parser.</info>
      <return type='void'/>
      <arg name='in' type='xmlParserInputPtr' info='an XML parser input'/>
    </function>
    <function name='xmlParserPrintFileContext' file='xmlerror' module='error'>
      <info>Displays current context within the input content for error tracking</info>
      <return type='void'/>
      <arg name='input' type='xmlParserInputPtr' info='an xmlParserInputPtr input'/>
    </function>
    <function name='xmlParserPrintFileInfo' file='xmlerror' module='error'>
      <info>Displays the associated file and line informations for the current input</info>
      <return type='void'/>
      <arg name='input' type='xmlParserInputPtr' info='an xmlParserInputPtr input'/>
    </function>
    <function name='xmlParserValidityError' file='xmlerror' module='error'>
      <info>Display and format an validity error messages, gives file, line, position and extra parameters.</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'/>
    </function>
    <function name='xmlParserValidityWarning' file='xmlerror' module='error'>
      <info>Display and format a validity warning messages, gives file, line, position and extra parameters.</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'/>
    </function>
    <function name='xmlParserWarning' file='xmlerror' module='error'>
      <info>Display and format a warning messages, gives file, line, position and extra parameters.</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'/>
    </function>
    <function name='xmlPathToURI' file='uri' module='uri'>
      <info>Constructs an URI expressing the existing path</info>
      <return type='xmlChar *' info='a new URI, 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='xmlPatternFromRoot' file='pattern' module='pattern'>
      <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
      <info>Check if the pattern must be looked at from the root.</info>
      <return type='int' info='1 if true, 0 if false and -1 in case of error'/>
      <arg name='comp' type='xmlPatternPtr' info='the precompiled pattern'/>
    </function>
    <function name='xmlPatternGetStreamCtxt' file='pattern' module='pattern'>
      <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
      <info>Get a streaming context for that pattern Use xmlFreeStreamCtxt to free the context.</info>
      <return type='xmlStreamCtxtPtr' info='a pointer to the context or NULL in case of failure'/>
      <arg name='comp' type='xmlPatternPtr' info='the precompiled pattern'/>
    </function>
    <function name='xmlPatternMatch' file='pattern' module='pattern'>
      <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
      <info>Test whether the node matches the pattern</info>
      <return type='int' info='1 if it matches, 0 if it doesn&apos;t and -1 in case of failure'/>
      <arg name='comp' type='xmlPatternPtr' info='the precompiled pattern'/>
      <arg name='node' type='xmlNodePtr' info='a node'/>
    </function>
    <function name='xmlPatternMaxDepth' file='pattern' module='pattern'>
      <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
      <info>Check the maximum depth reachable by a pattern</info>
      <return type='int' info='-2 if no limit (using //), otherwise the depth, and -1 in case of error'/>
      <arg name='comp' type='xmlPatternPtr' info='the precompiled pattern'/>
    </function>
    <function name='xmlPatternMinDepth' file='pattern' module='pattern'>
      <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
      <info>Check the minimum depth reachable by a pattern, 0 mean the / or . are part of the set.</info>
      <return type='int' info='-1 in case of error otherwise the depth,'/>
      <arg name='comp' type='xmlPatternPtr' info='the precompiled pattern'/>
    </function>
    <function name='xmlPatternStreamable' file='pattern' module='pattern'>
      <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
      <info>Check if the pattern is streamable i