### ----------------------------------------------------
### -- LibXML
### -- Licenses: Artistic-2.0
### -- Authors: David Warring
### -- File: etc/libxml2-api.xml
### ----------------------------------------------------
### -- Chunk 36 of 44
Concat the given string at the end of the existing node content</info>
      <return type='int' info='-1 in case of error, 0 otherwise'/>
      <arg name='node' type='xmlNodePtr' info='the node'/>
      <arg name='content' type='const xmlChar *' info='the content'/>
      <arg name='len' type='int' info='@content length'/>
    </function>
    <function name='xmlTextMerge' file='tree' module='tree'>
      <info>Merge two text nodes into one</info>
      <return type='xmlNodePtr' info='the first text node augmented'/>
      <arg name='first' type='xmlNodePtr' info='the first text node'/>
      <arg name='second' type='xmlNodePtr' info='the second text node being merged'/>
    </function>
    <function name='xmlTextReaderAttributeCount' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Provides the number of attributes of the current node</info>
      <return type='int' info='0 i no attributes, -1 in case of error or the attribute count'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderBaseUri' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>The base URI of the node.</info>
      <return type='xmlChar *' info='the base URI or NULL if not available, if non NULL it need to be freed by the caller.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderByteConsumed' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>This function provides the current index of the parser used by the reader, relative to the start of the current entity. This function actually just wraps a call to xmlBytesConsumed() for the parser context associated with the reader. See xmlBytesConsumed() for more information.</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='reader' type='xmlTextReaderPtr' info='an XML reader'/>
    </function>
    <function name='xmlTextReaderClose' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>This method releases any resources allocated by the current instance changes the state to Closed and close any underlying input.</info>
      <return type='int' info='0 or -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderConstBaseUri' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>The base URI of the node.</info>
      <return type='const xmlChar *' info='the base URI or NULL if not available, the string will be deallocated with the reader'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderConstEncoding' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Determine the encoding of the document being read.</info>
      <return type='const xmlChar *' info='a string containing the encoding of the document or NULL in case of error.  The string is deallocated with the reader.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderConstLocalName' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>The local name of the node.</info>
      <return type='const xmlChar *' info='the local name or NULL if not available, the string will be deallocated with the reader.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderConstName' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>The qualified name of the node, equal to Prefix :LocalName.</info>
      <return type='const xmlChar *' info='the local name or NULL if not available, the string is deallocated with the reader.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderConstNamespaceUri' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>The URI defining the namespace associated with the node.</info>
      <return type='const xmlChar *' info='the namespace URI or NULL if not available, the string will be deallocated with the reader'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderConstPrefix' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>A shorthand reference to the namespace associated with the node.</info>
      <return type='const xmlChar *' info='the prefix or NULL if not available, the string is deallocated with the reader.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderConstString' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Get an interned string from the reader, allows for example to speedup string name comparisons</info>
      <return type='const xmlChar *' info='an interned copy of the string or NULL in case of error. The string will be deallocated with the reader.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='str' type='const xmlChar *' info='the string to intern.'/>
    </function>
    <function name='xmlTextReaderConstValue' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Provides the text value of the node if present</info>
      <return type='const xmlChar *' info='the string or NULL if not available. The result will be deallocated on the next Read() operation.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderConstXmlLang' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>The xml:lang scope within which the node resides.</info>
      <return type='const xmlChar *' info='the xml:lang value or NULL if none exists.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderConstXmlVersion' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Determine the XML version of the document being read.</info>
      <return type='const xmlChar *' info='a string containing the XML version of the document or NULL in case of error.  The string is deallocated with the reader.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderCurrentDoc' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Hacking interface allowing to get the xmlDocPtr correponding to the current document being accessed by the xmlTextReader. NOTE: as a result of this call, the reader will not destroy the associated XML document and calling xmlFreeDoc() on the result is needed once the reader parsing has finished.</info>
      <return type='xmlDocPtr' info='the xmlDocPtr or NULL in case of error.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderCurrentNode' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Hacking interface allowing to get the xmlNodePtr correponding to the current node being accessed by the xmlTextReader. This is dangerous because the underlying node may be destroyed on the next Reads.</info>
      <return type='xmlNodePtr' info='the xmlNodePtr or NULL in case of error.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderDepth' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>The depth of the node in the tree.</info>
      <return type='int' info='the depth or -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <functype name='xmlTextReaderErrorFunc' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Signature of an error callback from a reader parser</info>
      <return type='void'/>
      <arg name='arg' type='void *' info='the user argument'/>
      <arg name='msg' type='const char *' info='the message'/>
      <arg name='severity' type='xmlParserSeverities' info='the severity of the error'/>
      <arg name='locator' type='xmlTextReaderLocatorPtr' info='a locator indicating where the error occurred'/>
    </functype>
    <function name='xmlTextReaderExpand' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Reads the contents of the current node and the full subtree. It then makes the subtree available until the next xmlTextReaderRead() call</info>
      <return type='xmlNodePtr' info='a node pointer valid until the next xmlTextReaderRead() call or NULL in case of error.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderGetAttribute' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Provides the value of the attribute with the specified qualified name.</info>
      <return type='xmlChar *' info='a string containing the value of the specified attribute, or NULL in case of error. The string must be deallocated by the caller.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='name' type='const xmlChar *' info='the qualified name of the attribute.'/>
    </function>
    <function name='xmlTextReaderGetAttributeNo' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Provides the value of the attribute with the specified index relative to the containing element.</info>
      <return type='xmlChar *' info='a string containing the value of the specified attribute, or NULL in case of error. The string must be deallocated by the caller.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='no' type='int' info='the zero-based index of the attribute relative to the containing element'/>
    </function>
    <function name='xmlTextReaderGetAttributeNs' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Provides the value of the specified attribute</info>
      <return type='xmlChar *' info='a string containing the value of the specified attribute, or NULL in case of error. The string must be deallocated by the caller.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='localName' type='const xmlChar *' info='the local name of the attribute.'/>
      <arg name='namespaceURI' type='const xmlChar *' info='the namespace URI of the attribute.'/>
    </function>
    <function name='xmlTextReaderGetErrorHandler' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Retrieve the error callback function and user argument.</info>
      <return type='void'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='f' type='xmlTextReaderErrorFunc *' info='the callback function or NULL is no callback has been registered'/>
      <arg name='arg' type='void **' info='a user argument'/>
    </function>
    <function name='xmlTextReaderGetParserColumnNumber' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Provide the column number of the current parsing point.</info>
      <return type='int' info='an int or 0 if not available'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the user data (XML reader context)'/>
    </function>
    <function name='xmlTextReaderGetParserLineNumber' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Provide the line number of the current parsing point.</info>
      <return type='int' info='an int or 0 if not available'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the user data (XML reader context)'/>
    </function>
    <function name='xmlTextReaderGetParserProp' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Read the parser internal property.</info>
      <return type='int' info='the value, usually 0 or 1, or -1 in case of error.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='prop' type='int' info='the xmlParserProperties to get'/>
    </function>
    <function name='xmlTextReaderGetRemainder' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Method to get the remainder of the buffered XML. this method stops the parser, set its state to End Of File and return the input stream with what is left that the parser did not use.  The implementation is not good, the parser certainly procgressed past what&apos;s left in reader-&gt;input, and there is an allocation problem. Best would be to rewrite it differently.</info>
      <return type='xmlParserInputBufferPtr' info='the xmlParserInputBufferPtr attached to the XML or NULL in case of error.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderHasAttributes' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Whether the node has attributes.</info>
      <return type='int' info='1 if true, 0 if false, and -1 in case or error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderHasValue' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Whether the node can have a text value.</info>
      <return type='int' info='1 if true, 0 if false, and -1 in case or error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderIsDefault' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Whether an Attribute  node was generated from the default value defined in the DTD or schema.</info>
      <return type='int' info='0 if not defaulted, 1 if defaulted, and -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderIsEmptyElement' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Check if the current node is empty</info>
      <return type='int' info='1 if empty, 0 if not and -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderIsNamespaceDecl' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Determine whether the current node is a namespace declaration rather than a regular attribute.</info>
      <return type='int' info='1 if the current node is a namespace declaration, 0 if it is a regular attribute or other type of node, or -1 in case of error.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderIsValid' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Retrieve the validity status from the parser context</info>
      <return type='int' info='the flag value 1 if valid, 0 if no, and -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderLocalName' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>The local name of the node.</info>
      <return type='xmlChar *' info='the local name or NULL if not available, if non NULL it need to be freed by the caller.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderLocatorBaseURI' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Obtain the base URI for the given locator.</info>
      <return type='xmlChar *' info='the base URI or NULL in case of error, if non NULL it need to be freed by the caller.'/>
      <arg name='locator' type='xmlTextReaderLocatorPtr' info='the xmlTextReaderLocatorPtr used'/>
    </function>
    <function name='xmlTextReaderLocatorLineNumber' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Obtain the line number for the given locator.</info>
      <return type='int' info='the line number or -1 in case of error.'/>
      <arg name='locator' type='xmlTextReaderLocatorPtr' info='the xmlTextReaderLocatorPtr used'/>
    </function>
    <function name='xmlTextReaderLookupNamespace' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Resolves a namespace prefix in the scope of the current element.</info>
      <return type='xmlChar *' info='a string containing the namespace URI to which the prefix maps or NULL in case of error. The string must be deallocated by the caller.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='prefix' type='const xmlChar *' info='the prefix whose namespace URI is to be resolved. To return the default namespace, specify NULL'/>
    </function>
    <function name='xmlTextReaderMoveToAttribute' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Moves the position of the current instance to the attribute with the specified qualified name.</info>
      <return type='int' info='1 in case of success, -1 in case of error, 0 if not found'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='name' type='const xmlChar *' info='the qualified name of the attribute.'/>
    </function>
    <function name='xmlTextReaderMoveToAttributeNo' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Moves the position of the current instance to the attribute with the specified index relative to the containing element.</info>
      <return type='int' info='1 in case of success, -1 in case of error, 0 if not found'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='no' type='int' info='the zero-based index of the attribute relative to the containing element.'/>
    </function>
    <function name='xmlTextReaderMoveToAttributeNs' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Moves the position of the current instance to the attribute with the specified local name and namespace URI.</info>
      <return type='int' info='1 in case of success, -1 in case of error, 0 if not found'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='localName' type='const xmlChar *' info='the local name of the attribute.'/>
      <arg name='namespaceURI' type='const xmlChar *' info='the namespace URI of the attribute.'/>
    </function>
    <function name='xmlTextReaderMoveToElement' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Moves the position of the current instance to the node that contains the current Attribute  node.</info>
      <return type='int' info='1 in case of success, -1 in case of error, 0 if not moved'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderMoveToFirstAttribute' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Moves the position of the current instance to the first attribute associated with the current node.</info>
      <return type='int' info='1 in case of success, -1 in case of error, 0 if not found'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderMoveToNextAttribute' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Moves the position of the current instance to the next attribute associated with the current node.</info>
      <return type='int' info='1 in case of success, -1 in case of error, 0 if not found'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderName' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>The qualified name of the node, equal to Prefix :LocalName.</info>
      <return type='xmlChar *' info='the local name or NULL if not available, if non NULL it need to be freed by the caller.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderNamespaceUri' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>The URI defining the namespace associated with the node.</info>
      <return type='xmlChar *' info='the namespace URI or NULL if not available, if non NULL it need to be freed by the caller.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderNext' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Skip to the node following the current one in document order while avoiding the subtree if any.</info>
      <return type='int' info='1 if the node was read successfully, 0 if there is no more nodes to read, or -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderNextSibling' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Skip to the node following the current one in document order while avoiding the subtree if any. Currently implemented only for Readers built on a document</info>
      <return type='int' info='1 if the node was read successfully, 0 if there is no more nodes to read, or -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderNodeType' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Get the node type of the current node Reference: http://www.gnu.org/software/dotgnu/pnetlib-doc/System/Xml/XmlNodeType.html</info>
      <return type='int' info='the xmlNodeType of the current node or -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderNormalization' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>The value indicating whether to normalize white space and attribute values. Since attribute value and end of line normalizations are a MUST in the XML specification only the value true is accepted. The broken bahaviour of accepting out of range character entities like &amp;#0; is of course not supported either.</info>
      <return type='int' info='1 or -1 in case of error.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderPrefix' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>A shorthand reference to the namespace associated with the node.</info>
      <return type='xmlChar *' info='the prefix or NULL if not available, if non NULL it need to be freed by the caller.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderPreserve' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>This tells the XML Reader to preserve the current node. The caller must also use xmlTextReaderCurrentDoc() to keep an handle on the resulting document once parsing has finished</info>
      <return type='xmlNodePtr' info='the xmlNodePtr or NULL in case of error.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderPreservePattern' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED) &amp;&amp; defined(LIBXML_PATTERN_ENABLED)</cond>
      <info>This tells the XML Reader to preserve all nodes matched by the pattern. The caller must also use xmlTextReaderCurrentDoc() to keep an handle on the resulting document once parsing has finished</info>
      <return type='int' info='a non-negative number in case of success and -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='pattern' type='const xmlChar *' info='an XPath subset pattern'/>
      <arg name='namespaces' type='const xmlChar **' info='the prefix definitions, array of [URI, prefix] or NULL'/>
    </function>
    <function name='xmlTextReaderQuoteChar' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>The quotation mark character used to enclose the value of an attribute.</info>
      <return type='int' info='&quot; or &apos; and -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderRead' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Moves the position of the current instance to the next node in the stream, exposing its properties.</info>
      <return type='int' info='1 if the node was read successfully, 0 if there is no more nodes to read, or -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderReadAttributeValue' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Parses an attribute value into one or more Text and EntityReference nodes.</info>
      <return type='int' info='1 in case of success, 0 if the reader was not positionned on an ttribute node or all the attribute values have been read, or -1 in case of error.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderReadInnerXml' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED) &amp;&amp; defined(LIBXML_WRITER_ENABLED)</cond>
      <info>Reads the contents of the current node, including child nodes and markup.</info>
      <return type='xmlChar *' info='a string containing the XML content, or NULL if the current node is neither an element nor attribute, or has no child nodes. The string must be deallocated by the caller.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderReadOuterXml' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED) &amp;&amp; defined(LIBXML_WRITER_ENABLED)</cond>
      <info>Reads the contents of the current node, including child nodes and markup.</info>
      <return type='xmlChar *' info='a string containing the node and any XML content, or NULL if the current node cannot be serialized. The string must be deallocated by the caller.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderReadState' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Gets the read state of the reader.</info>
      <return type='int' info='the state value, or -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderReadString' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Reads the contents of an element or a text node as a string.</info>
      <return type='xmlChar *' info='a string containing the contents of the Element or Text node, or NULL if the reader is positioned on any other type of node. The string must be deallocated by the caller.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderRelaxNGSetSchema' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED) &amp;&amp; defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Use RelaxNG to validate the document as it is processed. Activation is only possible before the first Read(). if @schema is NULL, then RelaxNG validation is desactivated. @ The @schema should not be freed until the reader is deallocated or its use has been deactivated.</info>
      <return type='int' info='0 in case the RelaxNG validation could be (des)activated and -1 in case of error.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='schema' type='xmlRelaxNGPtr' info='a precompiled RelaxNG schema'/>
    </function>
    <function name='xmlTextReaderRelaxNGValidate' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED) &amp;&amp; defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Use RelaxNG schema to validate the document as it is processed. Activation is only possible before the first Read(). If @rng is NULL, then RelaxNG schema validation is deactivated.</info>
      <return type='int' info='0 in case the schemas validation could be (de)activated and -1 in case of error.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='rng' type='const char *' info='the path to a RelaxNG schema or NULL'/>
    </function>
    <function name='xmlTextReaderRelaxNGValidateCtxt' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED) &amp;&amp; defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Use RelaxNG schema context to validate the document as it is processed. Activation is only possible before the first Read(). If @ctxt is NULL, then RelaxNG schema validation is deactivated.</info>
      <return type='int' info='0 in case the schemas validation could be (de)activated and -1 in case of error.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='the RelaxNG schema validation context or NULL'/>
      <arg name='options' type='int' info='options (not used yet)'/>
    </function>
    <function name='xmlTextReaderSchemaValidate' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED) &amp;&amp; defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Use W3C XSD schema to validate the document as it is processed. Activation is only