# ## Module xmlreader from libxml2

API Menu
Main Menu Developer Menu Code Examples API Menu Parser API Tree API Reader API XML Guidelines ChangeLog
API Indexes
Alphabetic Constructors Functions/Types Modules Symbols
Related links
Mail archive XSLT libxslt DOM gdome2 XML-DSig xmlsec FTP Windows binaries Solaris binaries MacOsX binaries lxml Python bindings Perl bindings C++ bindings PHP bindings Pascal bindings Ruby bindings Tcl bindings Bug Tracker
API of the XML streaming API based on C# interfaces. ## Table of Contents
    Enum xmlParserProperties
    Enum xmlParserSeverities
    Enum xmlReaderTypes
    Structure xmlTextReader
    struct _xmlTextReader
    The content of this structure is not made public by the API.
    Typedef void * xmlTextReaderLocatorPtr
    Enum xmlTextReaderMode
    Typedef xmlTextReader * xmlTextReaderPtr
    void	xmlFreeTextReader		(xmlTextReaderPtr reader)
    xmlTextReaderPtr	xmlNewTextReader	(xmlParserInputBufferPtr input,
    						 const char * URI)
    xmlTextReaderPtr	xmlNewTextReaderFilename	(const char * URI)
    xmlTextReaderPtr	xmlReaderForDoc	(const xmlChar * cur,
    					 const char * URL,
    					 const char * encoding,
    					 int options)
    xmlTextReaderPtr	xmlReaderForFd	(int fd,
    					 const char * URL,
    					 const char * encoding,
    					 int options)
    xmlTextReaderPtr	xmlReaderForFile	(const char * filename,
    						 const char * encoding,
    						 int options)
    xmlTextReaderPtr	xmlReaderForIO	(xmlInputReadCallback ioread,
    					 xmlInputCloseCallback ioclose,
    					 void * ioctx,
    					 const char * URL,
    					 const char * encoding,
    					 int options)
    xmlTextReaderPtr	xmlReaderForMemory	(const char * buffer,
    						 int size,
    						 const char * URL,
    						 const char * encoding,
    						 int options)
    int	xmlReaderNewDoc			(xmlTextReaderPtr reader,
    					 const xmlChar * cur,
    					 const char * URL,
    					 const char * encoding,
    					 int options)
    int	xmlReaderNewFd			(xmlTextReaderPtr reader,
    					 int fd,
    					 const char * URL,
    					 const char * encoding,
    					 int options)
    int	xmlReaderNewFile		(xmlTextReaderPtr reader,
    					 const char * filename,
    					 const char * encoding,
    					 int options)
    int	xmlReaderNewIO			(xmlTextReaderPtr reader,
    					 xmlInputReadCallback ioread,
    					 xmlInputCloseCallback ioclose,
    					 void * ioctx,
    					 const char * URL,
    					 const char * encoding,
    					 int options)
    int	xmlReaderNewMemory		(xmlTextReaderPtr reader,
    					 const char * buffer,
    					 int size,
    					 const char * URL,
    					 const char * encoding,
    					 int options)
    int	xmlReaderNewWalker		(xmlTextReaderPtr reader,
    					 xmlDocPtr doc)
    xmlTextReaderPtr	xmlReaderWalker	(xmlDocPtr doc)
    int	xmlTextReaderAttributeCount	(xmlTextReaderPtr reader)
    xmlChar *	xmlTextReaderBaseUri	(xmlTextReaderPtr reader)
    long	xmlTextReaderByteConsumed	(xmlTextReaderPtr reader)
    int	xmlTextReaderClose		(xmlTextReaderPtr reader)
    const xmlChar *	xmlTextReaderConstBaseUri	(xmlTextReaderPtr reader)
    const xmlChar *	xmlTextReaderConstEncoding	(xmlTextReaderPtr reader)
    const xmlChar *	xmlTextReaderConstLocalName	(xmlTextReaderPtr reader)
    const xmlChar *	xmlTextReaderConstName	(xmlTextReaderPtr reader)
    const xmlChar *	xmlTextReaderConstNamespaceUri	(xmlTextReaderPtr reader)
    const xmlChar *	xmlTextReaderConstPrefix	(xmlTextReaderPtr reader)
    const xmlChar *	xmlTextReaderConstString	(xmlTextReaderPtr reader,
    						 const xmlChar * str)
    const xmlChar *	xmlTextReaderConstValue	(xmlTextReaderPtr reader)
    const xmlChar *	xmlTextReaderConstXmlLang	(xmlTextReaderPtr reader)
    const xmlChar *	xmlTextReaderConstXmlVersion	(xmlTextReaderPtr reader)
    xmlDocPtr	xmlTextReaderCurrentDoc	(xmlTextReaderPtr reader)
    xmlNodePtr	xmlTextReaderCurrentNode	(xmlTextReaderPtr reader)
    int	xmlTextReaderDepth		(xmlTextReaderPtr reader)
    Function type: xmlTextReaderErrorFunc
    void	xmlTextReaderErrorFunc		(void * arg,
    					 const char * msg,
    					 xmlParserSeverities severity,
    					 xmlTextReaderLocatorPtr locator)
    xmlNodePtr	xmlTextReaderExpand	(xmlTextReaderPtr reader)
    xmlChar *	xmlTextReaderGetAttribute	(xmlTextReaderPtr reader,
    						 const xmlChar * name)
    xmlChar *	xmlTextReaderGetAttributeNo	(xmlTextReaderPtr reader,
    						 int no)
    xmlChar *	xmlTextReaderGetAttributeNs	(xmlTextReaderPtr reader,
    						 const xmlChar * localName,
    						 const xmlChar * namespaceURI)
    void	xmlTextReaderGetErrorHandler	(xmlTextReaderPtr reader,
    					 xmlTextReaderErrorFunc * f,
    					 void ** arg)
    int	xmlTextReaderGetParserColumnNumber	(xmlTextReaderPtr reader)
    int	xmlTextReaderGetParserLineNumber	(xmlTextReaderPtr reader)
    int	xmlTextReaderGetParserProp	(xmlTextReaderPtr reader,
    					 int prop)
    xmlParserInputBufferPtr	xmlTextReaderGetRemainder	(xmlTextReaderPtr reader)
    int	xmlTextReaderHasAttributes	(xmlTextReaderPtr reader)
    int	xmlTextReaderHasValue		(xmlTextReaderPtr reader)
    int	xmlTextReaderIsDefault		(xmlTextReaderPtr reader)
    int	xmlTextReaderIsEmptyElement	(xmlTextReaderPtr reader)
    int	xmlTextReaderIsNamespaceDecl	(xmlTextReaderPtr reader)
    int	xmlTextReaderIsValid		(xmlTextReaderPtr reader)
    xmlChar *	xmlTextReaderLocalName	(xmlTextReaderPtr reader)
    xmlChar *	xmlTextReaderLocatorBaseURI	(xmlTextReaderLocatorPtr locator)
    int	xmlTextReaderLocatorLineNumber	(xmlTextReaderLocatorPtr locator)
    xmlChar *	xmlTextReaderLookupNamespace	(xmlTextReaderPtr reader,
    						 const xmlChar * prefix)
    int	xmlTextReaderMoveToAttribute	(xmlTextReaderPtr reader,
    					 const xmlChar * name)
    int	xmlTextReaderMoveToAttributeNo	(xmlTextReaderPtr reader,
    					 int no)
    int	xmlTextReaderMoveToAttributeNs	(xmlTextReaderPtr reader,
    					 const xmlChar * localName,
    					 const xmlChar * namespaceURI)
    int	xmlTextReaderMoveToElement	(xmlTextReaderPtr reader)
    int	xmlTextReaderMoveToFirstAttribute	(xmlTextReaderPtr reader)
    int	xmlTextReaderMoveToNextAttribute	(xmlTextReaderPtr reader)
    xmlChar *	xmlTextReaderName	(xmlTextReaderPtr reader)
    xmlChar *	xmlTextReaderNamespaceUri	(xmlTextReaderPtr reader)
    int	xmlTextReaderNext		(xmlTextReaderPtr reader)
    int	xmlTextReaderNextSibling	(xmlTextReaderPtr reader)
    int	xmlTextReaderNodeType		(xmlTextReaderPtr reader)
    int	xmlTextReaderNormalization	(xmlTextReaderPtr reader)
    xmlChar *	xmlTextReaderPrefix	(xmlTextReaderPtr reader)
    xmlNodePtr	xmlTextReaderPreserve	(xmlTextReaderPtr reader)
    int	xmlTextReaderPreservePattern	(xmlTextReaderPtr reader,
    					 const xmlChar * pattern,
    					 const xmlChar ** namespaces)
    int	xmlTextReaderQuoteChar		(xmlTextReaderPtr reader)
    int	xmlTextReaderRead		(xmlTextReaderPtr reader)
    int	xmlTextReaderReadAttributeValue	(xmlTextReaderPtr reader)
    xmlChar *	xmlTextReaderReadInnerXml	(xmlTextReaderPtr reader)
    xmlChar *	xmlTextReaderReadOuterXml	(xmlTextReaderPtr reader)
    int	xmlTextReaderReadState		(xmlTextReaderPtr reader)
    xmlChar *	xmlTextReaderReadString	(xmlTextReaderPtr reader)
    int	xmlTextReaderRelaxNGSetSchema	(xmlTextReaderPtr reader,
    					 xmlRelaxNGPtr schema)
    int	xmlTextReaderRelaxNGValidate	(xmlTextReaderPtr reader,
    					 const char * rng)
    int	xmlTextReaderRelaxNGValidateCtxt	(xmlTextReaderPtr reader,
    						 xmlRelaxNGValidCtxtPtr ctxt,
    						 int options)
    int	xmlTextReaderSchemaValidate	(xmlTextReaderPtr reader,
    					 const char * xsd)
    int	xmlTextReaderSchemaValidateCtxt	(xmlTextReaderPtr reader,
    					 xmlSchemaValidCtxtPtr ctxt,
    					 int options)
    void	xmlTextReaderSetErrorHandler	(xmlTextReaderPtr reader,
    					 xmlTextReaderErrorFunc f,
    					 void * arg)
    int	xmlTextReaderSetParserProp	(xmlTextReaderPtr reader,
    					 int prop,
    					 int value)
    int	xmlTextReaderSetSchema		(xmlTextReaderPtr reader,
    					 xmlSchemaPtr schema)
    void	xmlTextReaderSetStructuredErrorHandler	(xmlTextReaderPtr reader,
    						 xmlStructuredErrorFunc f,
    						 void * arg)
    int	xmlTextReaderSetup		(xmlTextReaderPtr reader,
    					 xmlParserInputBufferPtr input,
    					 const char * URL,
    					 const char * encoding,
    					 int options)
    int	xmlTextReaderStandalone		(xmlTextReaderPtr reader)
    xmlChar *	xmlTextReaderValue	(xmlTextReaderPtr reader)
    xmlChar *	xmlTextReaderXmlLang	(xmlTextReaderPtr reader)
## Description ### Enum xmlParserProperties
    Enum xmlParserProperties {
        XML_PARSER_LOADDTD = 1
        XML_PARSER_DEFAULTATTRS = 2
        XML_PARSER_VALIDATE = 3
        XML_PARSER_SUBST_ENTITIES = 4
    }
### Enum xmlParserSeverities
    Enum xmlParserSeverities {
        XML_PARSER_SEVERITY_VALIDITY_WARNING = 1
        XML_PARSER_SEVERITY_VALIDITY_ERROR = 2
        XML_PARSER_SEVERITY_WARNING = 3
        XML_PARSER_SEVERITY_ERROR = 4
    }
### Enum xmlReaderTypes
    Enum xmlReaderTypes {
        XML_READER_TYPE_NONE = 0
        XML_READER_TYPE_ELEMENT = 1
        XML_READER_TYPE_ATTRIBUTE = 2
        XML_READER_TYPE_TEXT = 3
        XML_READER_TYPE_CDATA = 4
        XML_READER_TYPE_ENTITY_REFERENCE = 5
        XML_READER_TYPE_ENTITY = 6
        XML_READER_TYPE_PROCESSING_INSTRUCTION = 7
        XML_READER_TYPE_COMMENT = 8
        XML_READER_TYPE_DOCUMENT = 9
        XML_READER_TYPE_DOCUMENT_TYPE = 10
        XML_READER_TYPE_DOCUMENT_FRAGMENT = 11
        XML_READER_TYPE_NOTATION = 12
        XML_READER_TYPE_WHITESPACE = 13
        XML_READER_TYPE_SIGNIFICANT_WHITESPACE = 14
        XML_READER_TYPE_END_ELEMENT = 15
        XML_READER_TYPE_END_ENTITY = 16
        XML_READER_TYPE_XML_DECLARATION = 17
    }
### Structure xmlTextReader
    Structure xmlTextReader
    struct _xmlTextReader {
    The content of this structure is not made public by the API.
    }
### Enum xmlTextReaderMode
    Enum xmlTextReaderMode {
        XML_TEXTREADER_MODE_INITIAL = 0
        XML_TEXTREADER_MODE_INTERACTIVE = 1
        XML_TEXTREADER_MODE_ERROR = 2
        XML_TEXTREADER_MODE_EOF = 3
        XML_TEXTREADER_MODE_CLOSED = 4
        XML_TEXTREADER_MODE_READING = 5
    }
Pointer to an xmlReader context. ### Function: xmlFreeTextReader
    void	xmlFreeTextReader		(xmlTextReaderPtr reader)
Deallocate all the resources associated to the reader
`reader`: | the xmlTextReaderPtr
### Function: xmlNewTextReader
    xmlTextReaderPtr	xmlNewTextReader	(xmlParserInputBufferPtr input,
    						 const char * URI)
Create an xmlTextReader structure fed with @input
`input`: | the xmlParserInputBufferPtr used to read data
`URI`: | the URI information for the source if available
`Returns`: | the new xmlTextReaderPtr or NULL in case of error
### Function: xmlNewTextReaderFilename
    xmlTextReaderPtr	xmlNewTextReaderFilename	(const char * URI)
Create an xmlTextReader structure fed with the resource at @URI
`URI`: | the URI of the resource to process
`Returns`: | the new xmlTextReaderPtr or NULL in case of error
### Function: xmlReaderForDoc
    xmlTextReaderPtr	xmlReaderForDoc	(const xmlChar * cur,
    					 const char * URL,
    					 const char * encoding,
    					 int options)
Create an xmltextReader for an XML in-memory document. The parsing flags @options are a combination of xmlParserOption.
`cur`: | a pointer to a zero terminated string
`URL`: | the base URL to use for the document
`encoding`: | the document encoding, or NULL
`options`: | a combination of xmlParserOption
`Returns`: | the new reader or NULL in case of error.
### Function: xmlReaderForFd
    xmlTextReaderPtr	xmlReaderForFd	(int fd,
    					 const char * URL,
    					 const char * encoding,
    					 int options)
Create an xmltextReader for an XML from a file descriptor. The parsing flags @options are a combination of xmlParserOption. NOTE that the file descriptor will not be closed when the reader is closed or reset.
`fd`: | an open file descriptor
`URL`: | the base URL to use for the document
`encoding`: | the document encoding, or NULL
`options`: | a combination of xmlParserOption
`Returns`: | the new reader or NULL in case of error.
### Function: xmlReaderForFile
    xmlTextReaderPtr	xmlReaderForFile	(const char * filename,
    						 const char * encoding,
    						 int options)
parse an XML file from the filesystem or the network. The parsing flags @options are a combination of xmlParserOption.
`filename`: | a file or URL
`encoding`: | the document encoding, or NULL
`options`: | a combination of xmlParserOption
`Returns`: | the new reader or NULL in case of error.
### Function: xmlReaderForIO
    xmlTextReaderPtr	xmlReaderForIO	(xmlInputReadCallback ioread,
    					 xmlInputCloseCallback ioclose,
    					 void * ioctx,
    					 const char * URL,
    					 const char * encoding,
    					 int options)
Create an xmltextReader for an XML document from I/O functions and source. The parsing flags @options are a combination of xmlParserOption.
`ioread`: | an I/O read function
`ioclose`: | an I/O close function
`ioctx`: | an I/O handler
`URL`: | the base URL to use for the document
`encoding`: | the document encoding, or NULL
`options`: | a combination of xmlParserOption
`Returns`: | the new reader or NULL in case of error.
### Function: xmlReaderForMemory
    xmlTextReaderPtr	xmlReaderForMemory	(const char * buffer,
    						 int size,
    						 const char * URL,
    						 const char * encoding,
    						 int options)
Create an xmltextReader for an XML in-memory document. The parsing flags @options are a combination of xmlParserOption.
`buffer`: | a pointer to a char array
`size`: | the size of the array
`URL`: | the base URL to use for the document
`encoding`: | the document encoding, or NULL
`options`: | a combination of xmlParserOption
`Returns`: | the new reader or NULL in case of error.
### Function: xmlReaderNewDoc
    int	xmlReaderNewDoc			(xmlTextReaderPtr reader,
    					 const xmlChar * cur,
    					 const char * URL,
    					 const char * encoding,
    					 int options)
Setup an xmltextReader to parse an XML in-memory document. The parsing flags @options are a combination of xmlParserOption. This reuses the existing @reader xmlTextReader.
`reader`: | an XML reader
`cur`: | a pointer to a zero terminated string
`URL`: | the base URL to use for the document
`encoding`: | the document encoding, or NULL
`options`: | a combination of xmlParserOption
`Returns`: | 0 in case of success and -1 in case of error
### Function: xmlReaderNewFd
    int	xmlReaderNewFd			(xmlTextReaderPtr reader,
    					 int fd,
    					 const char * URL,
    					 const char * encoding,
    					 int options)
Setup an xmltextReader to parse an XML from a file descriptor. NOTE that the file descriptor will not be closed when the reader is closed or reset. The parsing flags @options are a combination of xmlParserOption. This reuses the existing @reader xmlTextReader.
`reader`: | an XML reader
`fd`: | an open file descriptor
`URL`: | the base URL to use for the document
`encoding`: | the document encoding, or NULL
`options`: | a combination of xmlParserOption
`Returns`: | 0 in case of success and -1 in case of error
### Function: xmlReaderNewFile
    int	xmlReaderNewFile		(xmlTextReaderPtr reader,
    					 const char * filename,
    					 const char * encoding,
    					 int options)
parse an XML file from the filesystem or the network. The parsing flags @options are a combination of xmlParserOption. This reuses the existing @reader xmlTextReader.
`reader`: | an XML reader
`filename`: | a file or URL
`encoding`: | the document encoding, or NULL
`options`: | a combination of xmlParserOption
`Returns`: | 0 in case of success and -1 in case of error
### Function: xmlReaderNewIO
    int	xmlReaderNewIO			(xmlTextReaderPtr reader,
    					 xmlInputReadCallback ioread,
    					 xmlInputCloseCallback ioclose,
    					 void * ioctx,
    					 const char * URL,
    					 const char * encoding,
    					 int options)
Setup an xmltextReader to parse an XML document from I/O functions and source. The parsing flags @options are a combination of xmlParserOption. This reuses the existing @reader xmlTextReader.
`reader`: | an XML reader
`ioread`: | an I/O read function
`ioclose`: | an I/O close function
`ioctx`: | an I/O handler
`URL`: | the base URL to use for the document
`encoding`: | the document encoding, or NULL
`options`: | a combination of xmlParserOption
`Returns`: | 0 in case of success and -1 in case of error
### Function: xmlReaderNewMemory
    int	xmlReaderNewMemory		(xmlTextReaderPtr reader,
    					 const char * buffer,
    					 int size,
    					 const char * URL,
    					 const char * encoding,
    					 int options)
Setup an xmltextReader to parse an XML in-memory document. The parsing flags @options are a combination of xmlParserOption. This reuses the existing @reader xmlTextReader.
`reader`: | an XML reader
`buffer`: | a pointer to a char array
`size`: | the size of the array
`URL`: | the base URL to use for the document
`encoding`: | the document encoding, or NULL
`options`: | a combination of xmlParserOption
`Returns`: | 0 in case of success and -1 in case of error
### Function: xmlReaderNewWalker
    int	xmlReaderNewWalker		(xmlTextReaderPtr reader,
    					 xmlDocPtr doc)
Setup an xmltextReader to parse a preparsed XML document. This reuses the existing @reader xmlTextReader.
`reader`: | an XML reader
`doc`: | a preparsed document
`Returns`: | 0 in case of success and -1 in case of error
### Function: xmlReaderWalker
    xmlTextReaderPtr	xmlReaderWalker	(xmlDocPtr doc)
Create an xmltextReader for a preparsed document.
`doc`: | a preparsed document
`Returns`: | the new reader or NULL in case of error.
### Function: xmlTextReaderAttributeCount
    int	xmlTextReaderAttributeCount	(xmlTextReaderPtr reader)
Provides the number of attributes of the current node
`reader`: | the xmlTextReaderPtr used
`Returns`: | 0 i no attributes, -1 in case of error or the attribute count
### Function: xmlTextReaderBaseUri
    xmlChar *	xmlTextReaderBaseUri	(xmlTextReaderPtr reader)
The base URI of the node.
`reader`: | the xmlTextReaderPtr used
`Returns`: | the base URI or NULL if not available, if non NULL it need to be freed by the caller.
### Function: xmlTextReaderByteConsumed
    long	xmlTextReaderByteConsumed	(xmlTextReaderPtr reader)
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.
`reader`: | an XML reader
`Returns`: | the index in bytes from the beginning of the entity or -1 in case the index could not be computed.
### Function: xmlTextReaderClose
    int	xmlTextReaderClose		(xmlTextReaderPtr reader)
This method releases any resources allocated by the current instance changes the state to Closed and close any underlying input.
`reader`: | the xmlTextReaderPtr used
`Returns`: | 0 or -1 in case of error
### Function: xmlTextReaderConstBaseUri
    const xmlChar *	xmlTextReaderConstBaseUri	(xmlTextReaderPtr reader)
The base URI of the node.
`reader`: | the xmlTextReaderPtr used
`Returns`: | the base URI or NULL if not available, the string will be deallocated with the reader
### Function: xmlTextReaderConstEncoding
    const xmlChar *	xmlTextReaderConstEncoding	(xmlTextReaderPtr reader)
Determine the encoding of the document being read.
`reader`: | the xmlTextReaderPtr used
`Returns`: | a string containing the encoding of the document or NULL in case of error. The string is deallocated with the reader.
### Function: xmlTextReaderConstLocalName
    const xmlChar *	xmlTextReaderConstLocalName	(xmlTextReaderPtr reader)
The local name of the node.
`reader`: | the xmlTextReaderPtr used
`Returns`: | the local name or NULL if not available, the string will be deallocated with the reader.
### Function: xmlTextReaderConstName
    const xmlChar *	xmlTextReaderConstName	(xmlTextReaderPtr reader)
The qualified name of the node, equal to Prefix :LocalName.
`reader`: | the xmlTextReaderPtr used
`Returns`: | the local name or NULL if not available, the string is deallocated with the reader.
### Function: xmlTextReaderConstNamespaceUri
    const xmlChar *	xmlTextReaderConstNamespaceUri	(xmlTextReaderPtr reader)
The URI defining the namespace associated with the node.
`reader`: | the xmlTextReaderPtr used
`Returns`: | the namespace URI or NULL if not available, the string will be deallocated with the reader
### Function: xmlTextReaderConstPrefix
    const xmlChar *	xmlTextReaderConstPrefix	(xmlTextReaderPtr reader)
A shorthand reference to the namespace associated with the node.
`reader`: | the xmlTextReaderPtr used
`Returns`: | the prefix or NULL if not available, the string is deallocated with the reader.
### Function: xmlTextReaderConstString
    const xmlChar *	xmlTextReaderConstString	(xmlTextReaderPtr reader,
    						 const xmlChar * str)
Get an interned string from the reader, allows for example to speedup string name comparisons
`reader`: | the xmlTextReaderPtr used
`str`: | the string to intern.
`Returns`: | an interned copy of the string or NULL in case of error. The string will be deallocated with the reader.
### Function: xmlTextReaderConstValue
    const xmlChar *	xmlTextReaderConstValue	(xmlTextReaderPtr reader)
Provides the text value of the node if present
`reader`: | the xmlTextReaderPtr used
`Returns`: | the string or NULL if not available. The result will be deallocated on the next Read() operation.
### Function: xmlTextReaderConstXmlLang
    const xmlChar *	xmlTextReaderConstXmlLang	(xmlTextReaderPtr reader)
The xml:lang scope within which the node resides.
`reader`: | the xmlTextReaderPtr used
`Returns`: | the xml:lang value or NULL if none exists.
### Function: xmlTextReaderConstXmlVersion
    const xmlChar *	xmlTextReaderConstXmlVersion	(xmlTextReaderPtr reader)
Determine the XML version of the document being read.
`reader`: | the xmlTextReaderPtr used
`Returns`: | a string containing the XML version of the document or NULL in case of error. The string is deallocated with the reader.
### Function: xmlTextReaderCurrentDoc
    xmlDocPtr	xmlTextReaderCurrentDoc	(xmlTextReaderPtr reader)
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.
`reader`: | the xmlTextReaderPtr used
`Returns`: | the xmlDocPtr or NULL in case of error.
### Function: xmlTextReaderCurrentNode
    xmlNodePtr	xmlTextReaderCurrentNode	(xmlTextReaderPtr reader)
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.
`reader`: | the xmlTextReaderPtr used
`Returns`: | the xmlNodePtr or NULL in case of error.
### Function: xmlTextReaderDepth
    int	xmlTextReaderDepth		(xmlTextReaderPtr reader)
The depth of the node in the tree.
`reader`: | the xmlTextReaderPtr used
`Returns`: | the depth or -1 in case of error
### Function type: xmlTextReaderErrorFunc
    Function type: xmlTextReaderErrorFunc
    void	xmlTextReaderErrorFunc		(void * arg,
    					 const char * msg,
    					 xmlParserSeverities severity,
    					 xmlTextReaderLocatorPtr locator)
Signature of an error callback from a reader parser
`arg`: | the user argument
`msg`: | the message
`severity`: | the severity of the error
`locator`: | a locator indicating where the error occured
### Function: xmlTextReaderExpand
    xmlNodePtr	xmlTextReaderExpand	(xmlTextReaderPtr reader)
Reads the contents of the current node and the full subtree. It then makes the subtree available until the next xmlTextReaderRead() call
`reader`: | the xmlTextReaderPtr used
`Returns`: | a node pointer valid until the next xmlTextReaderRead() call or NULL in case of error.
### Function: xmlTextReaderGetAttribute
    xmlChar *	xmlTextReaderGetAttribute	(xmlTextReaderPtr reader,
    						 const xmlChar * name)
Provides the value of the attribute with the specified qualified name.
`reader`: | the xmlTextReaderPtr used
`name`: | the qualified name of the attribute.
`Returns`: | a string containing the value of the specified attribute, or NULL in case of error. The string must be deallocated by the caller.
### Function: xmlTextReaderGetAttributeNo
    xmlChar *	xmlTextReaderGetAttributeNo	(xmlTextReaderPtr reader,
    						 int no)
Provides the value of the attribute with the specified index relative to the containing element.
`reader`: | the xmlTextReaderPtr used
`no`: | the zero-based index of the attribute relative to the containing element
`Returns`: | a string containing the value of the specified attribute, or NULL in case of error. The string must be deallocated by the caller.
### Function: xmlTextReaderGetAttributeNs
    xmlChar *	xmlTextReaderGetAttributeNs	(xmlTextReaderPtr reader,
    						 const xmlChar * localName,
    						 const xmlChar * namespaceURI)
Provides the value of the specified attribute
`reader`: | the xmlTextReaderPtr used
`localName`: | the local name of the attribute.
`namespaceURI`: | the namespace URI of the attribute.
`Returns`: | a string containing the value of the specified attribute, or NULL in case of error. The string must be deallocated by the caller.
### Function: xmlTextReaderGetErrorHandler
    void	xmlTextReaderGetErrorHandler	(xmlTextReaderPtr reader,
    					 xmlTextReaderErrorFunc * f,
    					 void ** arg)
Retrieve the error callback function and user argument.
`reader`: | the xmlTextReaderPtr used
`f`: | the callback function or NULL is no callback has been registered
`arg`: | a user argument
### Function: xmlTextReaderGetParserColumnNumber
    int	xmlTextReaderGetParserColumnNumber	(xmlTextReaderPtr reader)
Provide the column number of the current parsing point.
`reader`: | the user data (XML reader context)
`Returns`: | an int or 0 if not available
### Function: xmlTextReaderGetParserLineNumber
    int	xmlTextReaderGetParserLineNumber	(xmlTextReaderPtr reader)
Provide the line number of the current parsing point.
`reader`: | the user data (XML reader context)
`Returns`: | an int or 0 if not available
### Function: xmlTextReaderGetParserProp
    int	xmlTextReaderGetParserProp	(xmlTextReaderPtr reader,
    					 int prop)
Read the parser internal property.
`reader`: | the xmlTextReaderPtr used
`prop`: | the xmlParserProperties to get
`Returns`: | the value, usually 0 or 1, or -1 in case of error.
### Function: xmlTextReaderGetRemainder
    xmlParserInputBufferPtr	xmlTextReaderGetRemainder	(xmlTextReaderPtr reader)
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's left in reader->input, and there is an allocation problem. Best would be to rewrite it differently.
`reader`: | the xmlTextReaderPtr used
`Returns`: | the xmlParserInputBufferPtr attached to the XML or NULL in case of error.
### Function: xmlTextReaderHasAttributes
    int	xmlTextReaderHasAttributes	(xmlTextReaderPtr reader)
Whether the node has attributes.
`reader`: | the xmlTextReaderPtr used
`Returns`: | 1 if true, 0 if false, and -1 in case or error
### Function: xmlTextReaderHasValue
    int	xmlTextReaderHasValue		(xmlTextReaderPtr reader)
Whether the node can have a text value.
`reader`: | the xmlTextReaderPtr used
`Returns`: | 1 if true, 0 if false, and -1 in case or error
### Function: xmlTextReaderIsDefault
    int	xmlTextReaderIsDefault		(xmlTextReaderPtr reader)
Whether an Attribute node was generated from the default value defined in the DTD or schema.
`reader`: | the xmlTextReaderPtr used
`Returns`: | 0 if not defaulted, 1 if defaulted, and -1 in case of error
### Function: xmlTextReaderIsEmptyElement
    int	xmlTextReaderIsEmptyElement	(xmlTextReaderPtr reader)
Check if the current node is empty
`reader`: | the xmlTextReaderPtr used
`Returns`: | 1 if empty, 0 if not and -1 in case of error
### Function: xmlTextReaderIsNamespaceDecl
    int	xmlTextReaderIsNamespaceDecl	(xmlTextReaderPtr reader)
Determine whether the current node is a namespace declaration rather than a regular attribute.
`reader`: | the xmlTextReaderPtr used
`Returns`: | 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.
### Function: xmlTextReaderIsValid
    int	xmlTextReaderIsValid		(xmlTextReaderPtr reader)
Retrieve the validity status from the parser context
`reader`: | the xmlTextReaderPtr used
`Returns`: | the flag value 1 if valid, 0 if no, and -1 in case of error
### Function: xmlTextReaderLocalName
    xmlChar *	xmlTextReaderLocalName	(xmlTextReaderPtr reader)
The local name of the node.
`reader`: | the xmlTextReaderPtr used
`Returns`: | the local name or NULL if not available, if non NULL it need to be freed by the caller.
### Function: xmlTextReaderLocatorBaseURI
    xmlChar *	xmlTextReaderLocatorBaseURI	(xmlTextReaderLocatorPtr locator)
Obtain the base URI for the given locator.
`locator`: | the xmlTextReaderLocatorPtr used
`Returns`: | the base URI or NULL in case of error, if non NULL it need to be freed by the caller.
### Function: xmlTextReaderLocatorLineNumber
    int	xmlTextReaderLocatorLineNumber	(xmlTextReaderLocatorPtr locator)
Obtain the line number for the given locator.
`locator`: | the xmlTextReaderLocatorPtr used
`Returns`: | the line number or -1 in case of error.
### Function: xmlTextReaderLookupNamespace
    xmlChar *	xmlTextReaderLookupNamespace	(xmlTextReaderPtr reader,
    						 const xmlChar * prefix)
Resolves a namespace prefix in the scope of the current element.
`reader`: | the xmlTextReaderPtr used
`prefix`: | the prefix whose namespace URI is to be resolved. To return the default namespace, specify NULL
`Returns`: | 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.
### Function: xmlTextReaderMoveToAttribute
    int	xmlTextReaderMoveToAttribute	(xmlTextReaderPtr reader,
    					 const xmlChar * name)
Moves the position of the current instance to the attribute with the specified qualified name.
`reader`: | the xmlTextReaderPtr used
`name`: | the qualified name of the attribute.
`Returns`: | 1 in case of success, -1 in case of error, 0 if not found
### Function: xmlTextReaderMoveToAttributeNo
    int	xmlTextReaderMoveToAttributeNo	(xmlTextReaderPtr reader,
    					 int no)
Moves the position of the current instance to the attribute with the specified index relative to the containing element.
`reader`: | the xmlTextReaderPtr used
`no`: | the zero-based index of the attribute relative to the containing element.
`Returns`: | 1 in case of success, -1 in case of error, 0 if not found
### Function: xmlTextReaderMoveToAttributeNs
    int	xmlTextReaderMoveToAttributeNs	(xmlTextReaderPtr reader,
    					 const xmlChar * localName,
    					 const xmlChar * namespaceURI)
Moves the position of the current instance to the attribute with the specified local name and namespace URI.
`reader`: | the xmlTextReaderPtr used
`localName`: | the local name of the attribute.
`namespaceURI`: | the namespace URI of the attribute.
`Returns`: | 1 in case of success, -1 in case of error, 0 if not found
### Function: xmlTextReaderMoveToElement
    int	xmlTextReaderMoveToElement	(xmlTextReaderPtr reader)
Moves the position of the current instance to the node that contains the current Attribute node.
`reader`: | the xmlTextReaderPtr used
`Returns`: | 1 in case of success, -1 in case of error, 0 if not moved
### Function: xmlTextReaderMoveToFirstAttribute
    int	xmlTextReaderMoveToFirstAttribute	(xmlTextReaderPtr reader)
Moves the position of the current instance to the first attribute associated with the current node.
`reader`: | the xmlTextReaderPtr used
`Returns`: | 1 in case of success, -1 in case of error, 0 if not found
### Function: xmlTextReaderMoveToNextAttribute
    int	xmlTextReaderMoveToNextAttribute	(xmlTextReaderPtr reader)
Moves the position of the current instance to the next attribute associated with the current node.
`reader`: | the xmlTextReaderPtr used
`Returns`: | 1 in case of success, -1 in case of error, 0 if not found
### Function: xmlTextReaderName
    xmlChar *	xmlTextReaderName	(xmlTextReaderPtr reader)
The qualified name of the node, equal to Prefix :LocalName.
`reader`: | the xmlTextReaderPtr used
`Returns`: | the local name or NULL if not available, if non NULL it need to be freed by the caller.
### Function: xmlTextReaderNamespaceUri
    xmlChar *	xmlTextReaderNamespaceUri	(xmlTextReaderPtr reader)
The URI defining the namespace associated with the node.
`reader`: | the xmlTextReaderPtr used
`Returns`: | the namespace URI or NULL if not available, if non NULL it need to be freed by the caller.
### Function: xmlTextReaderNext
    int	xmlTextReaderNext		(xmlTextReaderPtr reader)
Skip to the node following the current one in document order while avoiding the subtree if any.
`reader`: | the xmlTextReaderPtr used
`Returns`: | 1 if the node was read successfully, 0 if there is no more nodes to read, or -1 in case of error
### Function: xmlTextReaderNextSibling
    int	xmlTextReaderNextSibling	(xmlTextReaderPtr reader)
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
`reader`: | the xmlTextReaderPtr used
`Returns`: | 1 if the node was read successfully, 0 if there is no more nodes to read, or -1 in case of error
### Function: xmlTextReaderNodeType
    int	xmlTextReaderNodeType		(xmlTextReaderPtr reader)
Get the node type of the current node Reference: http://www.gnu.org/software/dotgnu/pnetlib-doc/System/Xml/XmlNodeType.html
`reader`: | the xmlTextReaderPtr used
`Returns`: | the xmlNodeType of the current node or -1 in case of error
### Function: xmlTextReaderNormalization
    int	xmlTextReaderNormalization	(xmlTextReaderPtr reader)
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 &#0; is of course not supported either.
`reader`: | the xmlTextReaderPtr used
`Returns`: | 1 or -1 in case of error.
### Function: xmlTextReaderPrefix
    xmlChar *	xmlTextReaderPrefix	(xmlTextReaderPtr reader)
A shorthand reference to the namespace associated with the node.
`reader`: | the xmlTextReaderPtr used
`Returns`: | the prefix or NULL if not available, if non NULL it need to be freed by the caller.
### Function: xmlTextReaderPreserve
    xmlNodePtr	xmlTextReaderPreserve	(xmlTextReaderPtr reader)
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
`reader`: | the xmlTextReaderPtr used
`Returns`: | the xmlNodePtr or NULL in case of error.
### Function: xmlTextReaderPreservePattern
    int	xmlTextReaderPreservePattern	(xmlTextReaderPtr reader,
    					 const xmlChar * pattern,
    					 const xmlChar ** namespaces)
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
`reader`: | the xmlTextReaderPtr used
`pattern`: | an XPath subset pattern
`namespaces`: | the prefix definitions, array of [URI, prefix] or NULL
`Returns`: | a positive number in case of success and -1 in case of error
### Function: xmlTextReaderQuoteChar
    int	xmlTextReaderQuoteChar		(xmlTextReaderPtr reader)
The quotation mark character used to enclose the value of an attribute.
`reader`: | the xmlTextReaderPtr used
`Returns`: | " or ' and -1 in case of error
### Function: xmlTextReaderRead
    int	xmlTextReaderRead		(xmlTextReaderPtr reader)
Moves the position of the current instance to the next node in the stream, exposing its properties.
`reader`: | the xmlTextReaderPtr used
`Returns`: | 1 if the node was read successfully, 0 if there is no more nodes to read, or -1 in case of error
### Function: xmlTextReaderReadAttributeValue
    int	xmlTextReaderReadAttributeValue	(xmlTextReaderPtr reader)
Parses an attribute value into one or more Text and EntityReference nodes.
`reader`: | the xmlTextReaderPtr used
`Returns`: | 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.
### Function: xmlTextReaderReadInnerXml
    xmlChar *	xmlTextReaderReadInnerXml	(xmlTextReaderPtr reader)
Reads the contents of the current node, including child nodes and markup.
`reader`: | the xmlTextReaderPtr used
`Returns`: | 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.
### Function: xmlTextReaderReadOuterXml
    xmlChar *	xmlTextReaderReadOuterXml	(xmlTextReaderPtr reader)
Reads the contents of the current node, including child nodes and markup.
`reader`: | the xmlTextReaderPtr used
`Returns`: | 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.
### Function: xmlTextReaderReadState
    int	xmlTextReaderReadState		(xmlTextReaderPtr reader)
Gets the read state of the reader.
`reader`: | the xmlTextReaderPtr used
`Returns`: | the state value, or -1 in case of error
### Function: xmlTextReaderReadString
    xmlChar *	xmlTextReaderReadString	(xmlTextReaderPtr reader)
Reads the contents of an element or a text node as a string.
`reader`: | the xmlTextReaderPtr used
`Returns`: | 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.
### Function: xmlTextReaderRelaxNGSetSchema
    int	xmlTextReaderRelaxNGSetSchema	(xmlTextReaderPtr reader,
    					 xmlRelaxNGPtr schema)
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.
`reader`: | the xmlTextReaderPtr used
`schema`: | a precompiled RelaxNG schema
`Returns`: | 0 in case the RelaxNG validation could be (des)activated and -1 in case of error.
### Function: xmlTextReaderRelaxNGValidate
    int	xmlTextReaderRelaxNGValidate	(xmlTextReaderPtr reader,
    					 const char * rng)
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.
`reader`: | the xmlTextReaderPtr used
`rng`: | the path to a RelaxNG schema or NULL
`Returns`: | 0 in case the schemas validation could be (de)activated and -1 in case of error.
### Function: xmlTextReaderRelaxNGValidateCtxt
    int	xmlTextReaderRelaxNGValidateCtxt	(xmlTextReaderPtr reader,
    						 xmlRelaxNGValidCtxtPtr ctxt,
    						 int options)
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.
`reader`: | the xmlTextReaderPtr used
`ctxt`: | the RelaxNG schema validation context or NULL
`options`: | options (not used yet)
`Returns`: | 0 in case the schemas validation could be (de)activated and -1 in case of error.
### Function: xmlTextReaderSchemaValidate
    int	xmlTextReaderSchemaValidate	(xmlTextReaderPtr reader,
    					 const char * xsd)
Use W3C XSD schema to validate the document as it is processed. Activation is only possible before the first Read(). If @xsd is NULL, then XML Schema validation is deactivated.
`reader`: | the xmlTextReaderPtr used
`xsd`: | the path to a W3C XSD schema or NULL
`Returns`: | 0 in case the schemas validation could be (de)activated and -1 in case of error.
### Function: xmlTextReaderSchemaValidateCtxt
    int	xmlTextReaderSchemaValidateCtxt	(xmlTextReaderPtr reader,
    					 xmlSchemaValidCtxtPtr ctxt,
    					 int options)
Use W3C XSD schema context to validate the document as it is processed. Activation is only possible before the first Read(). If @ctxt is NULL, then XML Schema validation is deactivated.
`reader`: | the xmlTextReaderPtr used
`ctxt`: | the XML Schema validation context or NULL
`options`: | options (not used yet)
`Returns`: | 0 in case the schemas validation could be (de)activated and -1 in case of error.
### Function: xmlTextReaderSetErrorHandler
    void	xmlTextReaderSetErrorHandler	(xmlTextReaderPtr reader,
    					 xmlTextReaderErrorFunc f,
    					 void * arg)
Register a callback function that will be called on error and warnings. If @f is NULL, the default error and warning handlers are restored.
`reader`: | the xmlTextReaderPtr used
`f`: | the callback function to call on error and warnings
`arg`: | a user argument to pass to the callback function
### Function: xmlTextReaderSetParserProp
    int	xmlTextReaderSetParserProp	(xmlTextReaderPtr reader,
    					 int prop,
    					 int value)
Change the parser processing behaviour by changing some of its internal properties. Note that some properties can only be changed before any read has been done.
`reader`: | the xmlTextReaderPtr used
`prop`: | the xmlParserProperties to set
`value`: | usually 0 or 1 to (de)activate it
`Returns`: | 0 if the call was successful, or -1 in case of error
### Function: xmlTextReaderSetSchema
    int	xmlTextReaderSetSchema		(xmlTextReaderPtr reader,
    					 xmlSchemaPtr schema)
Use XSD Schema to validate the document as it is processed. Activation is only possible before the first Read(). if @schema is NULL, then Schema validation is desactivated. @ The @schema should not be freed until the reader is deallocated or its use has been deactivated.
`reader`: | the xmlTextReaderPtr used
`schema`: | a precompiled Schema schema
`Returns`: | 0 in case the Schema validation could be (des)activated and -1 in case of error.
### Function: xmlTextReaderSetStructuredErrorHandler
    void	xmlTextReaderSetStructuredErrorHandler	(xmlTextReaderPtr reader,
    						 xmlStructuredErrorFunc f,
    						 void * arg)
Register a callback function that will be called on error and warnings. If @f is NULL, the default error and warning handlers are restored.
`reader`: | the xmlTextReaderPtr used
`f`: | the callback function to call on error and warnings
`arg`: | a user argument to pass to the callback function
### Function: xmlTextReaderSetup
    int	xmlTextReaderSetup		(xmlTextReaderPtr reader,
    					 xmlParserInputBufferPtr input,
    					 const char * URL,
    					 const char * encoding,
    					 int options)
Setup an XML reader with new options
`reader`: | an XML reader
`input`: | xmlParserInputBufferPtr used to feed the reader, will be destroyed with it.
`URL`: | the base URL to use for the document
`encoding`: | the document encoding, or NULL
`options`: | a combination of xmlParserOption
`Returns`: | 0 in case of success and -1 in case of error.
### Function: xmlTextReaderStandalone
    int	xmlTextReaderStandalone		(xmlTextReaderPtr reader)
Determine the standalone status of the document being read.
`reader`: | the xmlTextReaderPtr used
`Returns`: | 1 if the document was declared to be standalone, 0 if it was declared to be not standalone, or -1 if the document did not specify its standalone status or in case of error.
### Function: xmlTextReaderValue
    xmlChar *	xmlTextReaderValue	(xmlTextReaderPtr reader)
Provides the text value of the node if present
`reader`: | the xmlTextReaderPtr used
`Returns`: | the string or NULL if not available. The result must be deallocated with xmlFree()
### Function: xmlTextReaderXmlLang
    xmlChar *	xmlTextReaderXmlLang	(xmlTextReaderPtr reader)
The xml:lang scope within which the node resides.
`reader`: | the xmlTextReaderPtr used
`Returns`: | the xml:lang value or NULL if none exists., if non NULL it need to be freed by the caller.
Daniel Veillard