doubango/thirdparties/common/include/libxml/xmlreader.h
c732d49e
 /*
  * Summary: the XMLReader implementation
  * Description: API of the XML streaming API based on C# interfaces.
  *
  * Copy: See Copyright for the status of this software.
  *
  * Author: Daniel Veillard
  */
 
 #ifndef __XML_XMLREADER_H__
 #define __XML_XMLREADER_H__
 
 #include <libxml/xmlversion.h>
 #include <libxml/tree.h>
 #include <libxml/xmlIO.h>
 #ifdef LIBXML_SCHEMAS_ENABLED
 #include <libxml/relaxng.h>
 #include <libxml/xmlschemas.h>
 #endif
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 /**
  * xmlParserSeverities:
  *
  * How severe an error callback is when the per-reader error callback API
  * is used.
  */
 typedef enum {
     XML_PARSER_SEVERITY_VALIDITY_WARNING = 1,
     XML_PARSER_SEVERITY_VALIDITY_ERROR = 2,
     XML_PARSER_SEVERITY_WARNING = 3,
     XML_PARSER_SEVERITY_ERROR = 4
 } xmlParserSeverities;
 
 #ifdef LIBXML_READER_ENABLED
 
 /**
  * xmlTextReaderMode:
  *
  * Internal state values for the reader.
  */
 typedef enum {
     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
 } xmlTextReaderMode;
 
 /**
  * xmlParserProperties:
  *
  * Some common options to use with xmlTextReaderSetParserProp, but it
  * is better to use xmlParserOption and the xmlReaderNewxxx and
  * xmlReaderForxxx APIs now.
  */
 typedef enum {
     XML_PARSER_LOADDTD = 1,
     XML_PARSER_DEFAULTATTRS = 2,
     XML_PARSER_VALIDATE = 3,
     XML_PARSER_SUBST_ENTITIES = 4
 } xmlParserProperties;
 
 /**
  * xmlReaderTypes:
  *
  * Predefined constants for the different types of nodes.
  */
 typedef enum {
     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
 } xmlReaderTypes;
 
 /**
  * xmlTextReader:
  *
  * Structure for an xmlReader context.
  */
 typedef struct _xmlTextReader xmlTextReader;
 
 /**
  * xmlTextReaderPtr:
  *
  * Pointer to an xmlReader context.
  */
 typedef xmlTextReader *xmlTextReaderPtr;
 
 /*
  * Constructors & Destructor
  */
 XMLPUBFUN xmlTextReaderPtr XMLCALL
 			xmlNewTextReader	(xmlParserInputBufferPtr input,
 	                                         const char *URI);
 XMLPUBFUN xmlTextReaderPtr XMLCALL
 			xmlNewTextReaderFilename(const char *URI);
 
 XMLPUBFUN void XMLCALL
 			xmlFreeTextReader	(xmlTextReaderPtr reader);
 
 XMLPUBFUN int XMLCALL
             xmlTextReaderSetup(xmlTextReaderPtr reader,
                    xmlParserInputBufferPtr input, const char *URL,
                    const char *encoding, int options);
 
 /*
  * Iterators
  */
 XMLPUBFUN int XMLCALL
 			xmlTextReaderRead	(xmlTextReaderPtr reader);
 
 #ifdef LIBXML_WRITER_ENABLED
 XMLPUBFUN xmlChar * XMLCALL
 			xmlTextReaderReadInnerXml(xmlTextReaderPtr reader);
 
 XMLPUBFUN xmlChar * XMLCALL
 			xmlTextReaderReadOuterXml(xmlTextReaderPtr reader);
 #endif
 
 XMLPUBFUN xmlChar * XMLCALL
 			xmlTextReaderReadString	(xmlTextReaderPtr reader);
 XMLPUBFUN int XMLCALL
 			xmlTextReaderReadAttributeValue(xmlTextReaderPtr reader);
 
 /*
  * Attributes of the node
  */
 XMLPUBFUN int XMLCALL
 			xmlTextReaderAttributeCount(xmlTextReaderPtr reader);
 XMLPUBFUN int XMLCALL
 			xmlTextReaderDepth	(xmlTextReaderPtr reader);
 XMLPUBFUN int XMLCALL
 			xmlTextReaderHasAttributes(xmlTextReaderPtr reader);
 XMLPUBFUN int XMLCALL
 			xmlTextReaderHasValue(xmlTextReaderPtr reader);
 XMLPUBFUN int XMLCALL
 			xmlTextReaderIsDefault	(xmlTextReaderPtr reader);
 XMLPUBFUN int XMLCALL
 			xmlTextReaderIsEmptyElement(xmlTextReaderPtr reader);
 XMLPUBFUN int XMLCALL
 			xmlTextReaderNodeType	(xmlTextReaderPtr reader);
 XMLPUBFUN int XMLCALL
 			xmlTextReaderQuoteChar	(xmlTextReaderPtr reader);
 XMLPUBFUN int XMLCALL
 			xmlTextReaderReadState	(xmlTextReaderPtr reader);
 XMLPUBFUN int XMLCALL
                         xmlTextReaderIsNamespaceDecl(xmlTextReaderPtr reader);
 
 XMLPUBFUN const xmlChar * XMLCALL
 		    xmlTextReaderConstBaseUri	(xmlTextReaderPtr reader);
 XMLPUBFUN const xmlChar * XMLCALL
 		    xmlTextReaderConstLocalName	(xmlTextReaderPtr reader);
 XMLPUBFUN const xmlChar * XMLCALL
 		    xmlTextReaderConstName	(xmlTextReaderPtr reader);
 XMLPUBFUN const xmlChar * XMLCALL
 		    xmlTextReaderConstNamespaceUri(xmlTextReaderPtr reader);
 XMLPUBFUN const xmlChar * XMLCALL
 		    xmlTextReaderConstPrefix	(xmlTextReaderPtr reader);
 XMLPUBFUN const xmlChar * XMLCALL
 		    xmlTextReaderConstXmlLang	(xmlTextReaderPtr reader);
 XMLPUBFUN const xmlChar * XMLCALL
 		    xmlTextReaderConstString	(xmlTextReaderPtr reader,
 						 const xmlChar *str);
 XMLPUBFUN const xmlChar * XMLCALL
 		    xmlTextReaderConstValue	(xmlTextReaderPtr reader);
 
 /*
  * use the Const version of the routine for
  * better performance and simpler code
  */
 XMLPUBFUN xmlChar * XMLCALL
 			xmlTextReaderBaseUri	(xmlTextReaderPtr reader);
 XMLPUBFUN xmlChar * XMLCALL
 			xmlTextReaderLocalName	(xmlTextReaderPtr reader);
 XMLPUBFUN xmlChar * XMLCALL
 			xmlTextReaderName	(xmlTextReaderPtr reader);
 XMLPUBFUN xmlChar * XMLCALL
 			xmlTextReaderNamespaceUri(xmlTextReaderPtr reader);
 XMLPUBFUN xmlChar * XMLCALL
 			xmlTextReaderPrefix	(xmlTextReaderPtr reader);
 XMLPUBFUN xmlChar * XMLCALL
 			xmlTextReaderXmlLang	(xmlTextReaderPtr reader);
 XMLPUBFUN xmlChar * XMLCALL
 			xmlTextReaderValue	(xmlTextReaderPtr reader);
 
 /*
  * Methods of the XmlTextReader
  */
 XMLPUBFUN int XMLCALL
 		    xmlTextReaderClose		(xmlTextReaderPtr reader);
 XMLPUBFUN xmlChar * XMLCALL
 		    xmlTextReaderGetAttributeNo	(xmlTextReaderPtr reader,
 						 int no);
 XMLPUBFUN xmlChar * XMLCALL
 		    xmlTextReaderGetAttribute	(xmlTextReaderPtr reader,
 						 const xmlChar *name);
 XMLPUBFUN xmlChar * XMLCALL
 		    xmlTextReaderGetAttributeNs	(xmlTextReaderPtr reader,
 						 const xmlChar *localName,
 						 const xmlChar *namespaceURI);
 XMLPUBFUN xmlParserInputBufferPtr XMLCALL
 		    xmlTextReaderGetRemainder	(xmlTextReaderPtr reader);
 XMLPUBFUN xmlChar * XMLCALL
 		    xmlTextReaderLookupNamespace(xmlTextReaderPtr reader,
 						 const xmlChar *prefix);
 XMLPUBFUN int XMLCALL
 		    xmlTextReaderMoveToAttributeNo(xmlTextReaderPtr reader,
 						 int no);
 XMLPUBFUN int XMLCALL
 		    xmlTextReaderMoveToAttribute(xmlTextReaderPtr reader,
 						 const xmlChar *name);
 XMLPUBFUN int XMLCALL
 		    xmlTextReaderMoveToAttributeNs(xmlTextReaderPtr reader,
 						 const xmlChar *localName,
 						 const xmlChar *namespaceURI);
 XMLPUBFUN int XMLCALL
 		    xmlTextReaderMoveToFirstAttribute(xmlTextReaderPtr reader);
 XMLPUBFUN int XMLCALL
 		    xmlTextReaderMoveToNextAttribute(xmlTextReaderPtr reader);
 XMLPUBFUN int XMLCALL
 		    xmlTextReaderMoveToElement	(xmlTextReaderPtr reader);
 XMLPUBFUN int XMLCALL
 		    xmlTextReaderNormalization	(xmlTextReaderPtr reader);
 XMLPUBFUN const xmlChar * XMLCALL
 		    xmlTextReaderConstEncoding  (xmlTextReaderPtr reader);
 
 /*
  * Extensions
  */
 XMLPUBFUN int XMLCALL
 		    xmlTextReaderSetParserProp	(xmlTextReaderPtr reader,
 						 int prop,
 						 int value);
 XMLPUBFUN int XMLCALL
 		    xmlTextReaderGetParserProp	(xmlTextReaderPtr reader,
 						 int prop);
 XMLPUBFUN xmlNodePtr XMLCALL
 		    xmlTextReaderCurrentNode	(xmlTextReaderPtr reader);
 
 XMLPUBFUN int XMLCALL
             xmlTextReaderGetParserLineNumber(xmlTextReaderPtr reader);
 
 XMLPUBFUN int XMLCALL
             xmlTextReaderGetParserColumnNumber(xmlTextReaderPtr reader);
 
 XMLPUBFUN xmlNodePtr XMLCALL
 		    xmlTextReaderPreserve	(xmlTextReaderPtr reader);
 #ifdef LIBXML_PATTERN_ENABLED
 XMLPUBFUN int XMLCALL
 		    xmlTextReaderPreservePattern(xmlTextReaderPtr reader,
 						 const xmlChar *pattern,
 						 const xmlChar **namespaces);
 #endif /* LIBXML_PATTERN_ENABLED */
 XMLPUBFUN xmlDocPtr XMLCALL
 		    xmlTextReaderCurrentDoc	(xmlTextReaderPtr reader);
 XMLPUBFUN xmlNodePtr XMLCALL
 		    xmlTextReaderExpand		(xmlTextReaderPtr reader);
 XMLPUBFUN int XMLCALL
 		    xmlTextReaderNext		(xmlTextReaderPtr reader);
 XMLPUBFUN int XMLCALL
 		    xmlTextReaderNextSibling	(xmlTextReaderPtr reader);
 XMLPUBFUN int XMLCALL
 		    xmlTextReaderIsValid	(xmlTextReaderPtr reader);
 #ifdef LIBXML_SCHEMAS_ENABLED
 XMLPUBFUN int XMLCALL
 		    xmlTextReaderRelaxNGValidate(xmlTextReaderPtr reader,
 						 const char *rng);
 XMLPUBFUN int XMLCALL
 		    xmlTextReaderRelaxNGValidateCtxt(xmlTextReaderPtr reader,
 						 xmlRelaxNGValidCtxtPtr ctxt,
 						 int options);
 
 XMLPUBFUN int XMLCALL
 		    xmlTextReaderRelaxNGSetSchema(xmlTextReaderPtr reader,
 						 xmlRelaxNGPtr schema);
 XMLPUBFUN int XMLCALL
 		    xmlTextReaderSchemaValidate	(xmlTextReaderPtr reader,
 						 const char *xsd);
 XMLPUBFUN int XMLCALL
 		    xmlTextReaderSchemaValidateCtxt(xmlTextReaderPtr reader,
 						 xmlSchemaValidCtxtPtr ctxt,
 						 int options);
 XMLPUBFUN int XMLCALL
 		    xmlTextReaderSetSchema	(xmlTextReaderPtr reader,
 						 xmlSchemaPtr schema);
 #endif
 XMLPUBFUN const xmlChar * XMLCALL
 		    xmlTextReaderConstXmlVersion(xmlTextReaderPtr reader);
 XMLPUBFUN int XMLCALL
 		    xmlTextReaderStandalone     (xmlTextReaderPtr reader);
 
 
 /*
  * Index lookup
  */
 XMLPUBFUN long XMLCALL
 		xmlTextReaderByteConsumed	(xmlTextReaderPtr reader);
 
 /*
  * New more complete APIs for simpler creation and reuse of readers
  */
 XMLPUBFUN xmlTextReaderPtr XMLCALL
 		xmlReaderWalker		(xmlDocPtr doc);
 XMLPUBFUN xmlTextReaderPtr XMLCALL
 		xmlReaderForDoc		(const xmlChar * cur,
 					 const char *URL,
 					 const char *encoding,
 					 int options);
 XMLPUBFUN xmlTextReaderPtr XMLCALL
 		xmlReaderForFile	(const char *filename,
 					 const char *encoding,
 					 int options);
 XMLPUBFUN xmlTextReaderPtr XMLCALL
 		xmlReaderForMemory	(const char *buffer,
 					 int size,
 					 const char *URL,
 					 const char *encoding,
 					 int options);
 XMLPUBFUN xmlTextReaderPtr XMLCALL
 		xmlReaderForFd		(int fd,
 					 const char *URL,
 					 const char *encoding,
 					 int options);
 XMLPUBFUN xmlTextReaderPtr XMLCALL
 		xmlReaderForIO		(xmlInputReadCallback ioread,
 					 xmlInputCloseCallback ioclose,
 					 void *ioctx,
 					 const char *URL,
 					 const char *encoding,
 					 int options);
 
 XMLPUBFUN int XMLCALL
 		xmlReaderNewWalker	(xmlTextReaderPtr reader,
 					 xmlDocPtr doc);
 XMLPUBFUN int XMLCALL
 		xmlReaderNewDoc		(xmlTextReaderPtr reader,
 					 const xmlChar * cur,
 					 const char *URL,
 					 const char *encoding,
 					 int options);
 XMLPUBFUN int XMLCALL
 		xmlReaderNewFile	(xmlTextReaderPtr reader,
 					 const char *filename,
 					 const char *encoding,
 					 int options);
 XMLPUBFUN int XMLCALL
 		xmlReaderNewMemory	(xmlTextReaderPtr reader,
 					 const char *buffer,
 					 int size,
 					 const char *URL,
 					 const char *encoding,
 					 int options);
 XMLPUBFUN int XMLCALL
 		xmlReaderNewFd		(xmlTextReaderPtr reader,
 					 int fd,
 					 const char *URL,
 					 const char *encoding,
 					 int options);
 XMLPUBFUN int XMLCALL
 		xmlReaderNewIO		(xmlTextReaderPtr reader,
 					 xmlInputReadCallback ioread,
 					 xmlInputCloseCallback ioclose,
 					 void *ioctx,
 					 const char *URL,
 					 const char *encoding,
 					 int options);
 /*
  * Error handling extensions
  */
 typedef void *  xmlTextReaderLocatorPtr;
 
 /**
  * xmlTextReaderErrorFunc:
  * @arg: the user argument
  * @msg: the message
  * @severity: the severity of the error
  * @locator: a locator indicating where the error occured
  *
  * Signature of an error callback from a reader parser
  */
 typedef void (XMLCALL *xmlTextReaderErrorFunc)(void *arg,
 					       const char *msg,
 					       xmlParserSeverities severity,
 					       xmlTextReaderLocatorPtr locator);
 XMLPUBFUN int XMLCALL
 	    xmlTextReaderLocatorLineNumber(xmlTextReaderLocatorPtr locator);
 XMLPUBFUN xmlChar * XMLCALL
 	    xmlTextReaderLocatorBaseURI (xmlTextReaderLocatorPtr locator);
 XMLPUBFUN void XMLCALL
 	    xmlTextReaderSetErrorHandler(xmlTextReaderPtr reader,
 					 xmlTextReaderErrorFunc f,
 					 void *arg);
 XMLPUBFUN void XMLCALL
 	    xmlTextReaderSetStructuredErrorHandler(xmlTextReaderPtr reader,
 						   xmlStructuredErrorFunc f,
 						   void *arg);
 XMLPUBFUN void XMLCALL
 	    xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader,
 					 xmlTextReaderErrorFunc *f,
 					 void **arg);
 
 #endif /* LIBXML_READER_ENABLED */
 
 #ifdef __cplusplus
 }
 #endif
 
 #endif /* __XML_XMLREADER_H__ */