File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / include / libxml / xmlreader.h
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Mon Jul 22 01:22:22 2013 UTC (11 years ago) by misho
Branches: libxml2, MAIN
CVS tags: v2_8_0p0, v2_8_0, HEAD
2.8.0

    1: /*
    2:  * Summary: the XMLReader implementation
    3:  * Description: API of the XML streaming API based on C# interfaces.
    4:  *
    5:  * Copy: See Copyright for the status of this software.
    6:  *
    7:  * Author: Daniel Veillard
    8:  */
    9: 
   10: #ifndef __XML_XMLREADER_H__
   11: #define __XML_XMLREADER_H__
   12: 
   13: #include <libxml/xmlversion.h>
   14: #include <libxml/tree.h>
   15: #include <libxml/xmlIO.h>
   16: #ifdef LIBXML_SCHEMAS_ENABLED
   17: #include <libxml/relaxng.h>
   18: #include <libxml/xmlschemas.h>
   19: #endif
   20: 
   21: #ifdef __cplusplus
   22: extern "C" {
   23: #endif
   24: 
   25: /**
   26:  * xmlParserSeverities:
   27:  *
   28:  * How severe an error callback is when the per-reader error callback API
   29:  * is used.
   30:  */
   31: typedef enum {
   32:     XML_PARSER_SEVERITY_VALIDITY_WARNING = 1,
   33:     XML_PARSER_SEVERITY_VALIDITY_ERROR = 2,
   34:     XML_PARSER_SEVERITY_WARNING = 3,
   35:     XML_PARSER_SEVERITY_ERROR = 4
   36: } xmlParserSeverities;
   37: 
   38: #ifdef LIBXML_READER_ENABLED
   39: 
   40: /**
   41:  * xmlTextReaderMode:
   42:  *
   43:  * Internal state values for the reader.
   44:  */
   45: typedef enum {
   46:     XML_TEXTREADER_MODE_INITIAL = 0,
   47:     XML_TEXTREADER_MODE_INTERACTIVE = 1,
   48:     XML_TEXTREADER_MODE_ERROR = 2,
   49:     XML_TEXTREADER_MODE_EOF =3,
   50:     XML_TEXTREADER_MODE_CLOSED = 4,
   51:     XML_TEXTREADER_MODE_READING = 5
   52: } xmlTextReaderMode;
   53: 
   54: /**
   55:  * xmlParserProperties:
   56:  *
   57:  * Some common options to use with xmlTextReaderSetParserProp, but it
   58:  * is better to use xmlParserOption and the xmlReaderNewxxx and
   59:  * xmlReaderForxxx APIs now.
   60:  */
   61: typedef enum {
   62:     XML_PARSER_LOADDTD = 1,
   63:     XML_PARSER_DEFAULTATTRS = 2,
   64:     XML_PARSER_VALIDATE = 3,
   65:     XML_PARSER_SUBST_ENTITIES = 4
   66: } xmlParserProperties;
   67: 
   68: /**
   69:  * xmlReaderTypes:
   70:  *
   71:  * Predefined constants for the different types of nodes.
   72:  */
   73: typedef enum {
   74:     XML_READER_TYPE_NONE = 0,
   75:     XML_READER_TYPE_ELEMENT = 1,
   76:     XML_READER_TYPE_ATTRIBUTE = 2,
   77:     XML_READER_TYPE_TEXT = 3,
   78:     XML_READER_TYPE_CDATA = 4,
   79:     XML_READER_TYPE_ENTITY_REFERENCE = 5,
   80:     XML_READER_TYPE_ENTITY = 6,
   81:     XML_READER_TYPE_PROCESSING_INSTRUCTION = 7,
   82:     XML_READER_TYPE_COMMENT = 8,
   83:     XML_READER_TYPE_DOCUMENT = 9,
   84:     XML_READER_TYPE_DOCUMENT_TYPE = 10,
   85:     XML_READER_TYPE_DOCUMENT_FRAGMENT = 11,
   86:     XML_READER_TYPE_NOTATION = 12,
   87:     XML_READER_TYPE_WHITESPACE = 13,
   88:     XML_READER_TYPE_SIGNIFICANT_WHITESPACE = 14,
   89:     XML_READER_TYPE_END_ELEMENT = 15,
   90:     XML_READER_TYPE_END_ENTITY = 16,
   91:     XML_READER_TYPE_XML_DECLARATION = 17
   92: } xmlReaderTypes;
   93: 
   94: /**
   95:  * xmlTextReader:
   96:  *
   97:  * Structure for an xmlReader context.
   98:  */
   99: typedef struct _xmlTextReader xmlTextReader;
  100: 
  101: /**
  102:  * xmlTextReaderPtr:
  103:  *
  104:  * Pointer to an xmlReader context.
  105:  */
  106: typedef xmlTextReader *xmlTextReaderPtr;
  107: 
  108: /*
  109:  * Constructors & Destructor
  110:  */
  111: XMLPUBFUN xmlTextReaderPtr XMLCALL
  112: 			xmlNewTextReader	(xmlParserInputBufferPtr input,
  113: 	                                         const char *URI);
  114: XMLPUBFUN xmlTextReaderPtr XMLCALL
  115: 			xmlNewTextReaderFilename(const char *URI);
  116: 
  117: XMLPUBFUN void XMLCALL
  118: 			xmlFreeTextReader	(xmlTextReaderPtr reader);
  119: 
  120: XMLPUBFUN int XMLCALL
  121:             xmlTextReaderSetup(xmlTextReaderPtr reader,
  122:                    xmlParserInputBufferPtr input, const char *URL,
  123:                    const char *encoding, int options);
  124: 
  125: /*
  126:  * Iterators
  127:  */
  128: XMLPUBFUN int XMLCALL
  129: 			xmlTextReaderRead	(xmlTextReaderPtr reader);
  130: 
  131: #ifdef LIBXML_WRITER_ENABLED
  132: XMLPUBFUN xmlChar * XMLCALL
  133: 			xmlTextReaderReadInnerXml	(xmlTextReaderPtr reader);
  134: 
  135: XMLPUBFUN xmlChar * XMLCALL
  136: 			xmlTextReaderReadOuterXml	(xmlTextReaderPtr reader);
  137: #endif
  138: 
  139: XMLPUBFUN xmlChar * XMLCALL
  140: 			xmlTextReaderReadString		(xmlTextReaderPtr reader);
  141: XMLPUBFUN int XMLCALL
  142: 			xmlTextReaderReadAttributeValue	(xmlTextReaderPtr reader);
  143: 
  144: /*
  145:  * Attributes of the node
  146:  */
  147: XMLPUBFUN int XMLCALL
  148: 			xmlTextReaderAttributeCount(xmlTextReaderPtr reader);
  149: XMLPUBFUN int XMLCALL
  150: 			xmlTextReaderDepth	(xmlTextReaderPtr reader);
  151: XMLPUBFUN int XMLCALL
  152: 			xmlTextReaderHasAttributes(xmlTextReaderPtr reader);
  153: XMLPUBFUN int XMLCALL
  154: 			xmlTextReaderHasValue(xmlTextReaderPtr reader);
  155: XMLPUBFUN int XMLCALL
  156: 			xmlTextReaderIsDefault	(xmlTextReaderPtr reader);
  157: XMLPUBFUN int XMLCALL
  158: 			xmlTextReaderIsEmptyElement(xmlTextReaderPtr reader);
  159: XMLPUBFUN int XMLCALL
  160: 			xmlTextReaderNodeType	(xmlTextReaderPtr reader);
  161: XMLPUBFUN int XMLCALL
  162: 			xmlTextReaderQuoteChar	(xmlTextReaderPtr reader);
  163: XMLPUBFUN int XMLCALL
  164: 			xmlTextReaderReadState	(xmlTextReaderPtr reader);
  165: XMLPUBFUN int XMLCALL
  166:                         xmlTextReaderIsNamespaceDecl(xmlTextReaderPtr reader);
  167: 
  168: XMLPUBFUN const xmlChar * XMLCALL
  169: 		    xmlTextReaderConstBaseUri	(xmlTextReaderPtr reader);
  170: XMLPUBFUN const xmlChar * XMLCALL
  171: 		    xmlTextReaderConstLocalName	(xmlTextReaderPtr reader);
  172: XMLPUBFUN const xmlChar * XMLCALL
  173: 		    xmlTextReaderConstName	(xmlTextReaderPtr reader);
  174: XMLPUBFUN const xmlChar * XMLCALL
  175: 		    xmlTextReaderConstNamespaceUri(xmlTextReaderPtr reader);
  176: XMLPUBFUN const xmlChar * XMLCALL
  177: 		    xmlTextReaderConstPrefix	(xmlTextReaderPtr reader);
  178: XMLPUBFUN const xmlChar * XMLCALL
  179: 		    xmlTextReaderConstXmlLang	(xmlTextReaderPtr reader);
  180: XMLPUBFUN const xmlChar * XMLCALL
  181: 		    xmlTextReaderConstString	(xmlTextReaderPtr reader,
  182: 						 const xmlChar *str);
  183: XMLPUBFUN const xmlChar * XMLCALL
  184: 		    xmlTextReaderConstValue	(xmlTextReaderPtr reader);
  185: 
  186: /*
  187:  * use the Const version of the routine for
  188:  * better performance and simpler code
  189:  */
  190: XMLPUBFUN xmlChar * XMLCALL
  191: 			xmlTextReaderBaseUri	(xmlTextReaderPtr reader);
  192: XMLPUBFUN xmlChar * XMLCALL
  193: 			xmlTextReaderLocalName	(xmlTextReaderPtr reader);
  194: XMLPUBFUN xmlChar * XMLCALL
  195: 			xmlTextReaderName	(xmlTextReaderPtr reader);
  196: XMLPUBFUN xmlChar * XMLCALL
  197: 			xmlTextReaderNamespaceUri(xmlTextReaderPtr reader);
  198: XMLPUBFUN xmlChar * XMLCALL
  199: 			xmlTextReaderPrefix	(xmlTextReaderPtr reader);
  200: XMLPUBFUN xmlChar * XMLCALL
  201: 			xmlTextReaderXmlLang	(xmlTextReaderPtr reader);
  202: XMLPUBFUN xmlChar * XMLCALL
  203: 			xmlTextReaderValue	(xmlTextReaderPtr reader);
  204: 
  205: /*
  206:  * Methods of the XmlTextReader
  207:  */
  208: XMLPUBFUN int XMLCALL
  209: 		    xmlTextReaderClose		(xmlTextReaderPtr reader);
  210: XMLPUBFUN xmlChar * XMLCALL
  211: 		    xmlTextReaderGetAttributeNo	(xmlTextReaderPtr reader,
  212: 						 int no);
  213: XMLPUBFUN xmlChar * XMLCALL
  214: 		    xmlTextReaderGetAttribute	(xmlTextReaderPtr reader,
  215: 						 const xmlChar *name);
  216: XMLPUBFUN xmlChar * XMLCALL
  217: 		    xmlTextReaderGetAttributeNs	(xmlTextReaderPtr reader,
  218: 						 const xmlChar *localName,
  219: 						 const xmlChar *namespaceURI);
  220: XMLPUBFUN xmlParserInputBufferPtr XMLCALL
  221: 		    xmlTextReaderGetRemainder	(xmlTextReaderPtr reader);
  222: XMLPUBFUN xmlChar * XMLCALL
  223: 		    xmlTextReaderLookupNamespace(xmlTextReaderPtr reader,
  224: 						 const xmlChar *prefix);
  225: XMLPUBFUN int XMLCALL
  226: 		    xmlTextReaderMoveToAttributeNo(xmlTextReaderPtr reader,
  227: 						 int no);
  228: XMLPUBFUN int XMLCALL
  229: 		    xmlTextReaderMoveToAttribute(xmlTextReaderPtr reader,
  230: 						 const xmlChar *name);
  231: XMLPUBFUN int XMLCALL
  232: 		    xmlTextReaderMoveToAttributeNs(xmlTextReaderPtr reader,
  233: 						 const xmlChar *localName,
  234: 						 const xmlChar *namespaceURI);
  235: XMLPUBFUN int XMLCALL
  236: 		    xmlTextReaderMoveToFirstAttribute(xmlTextReaderPtr reader);
  237: XMLPUBFUN int XMLCALL
  238: 		    xmlTextReaderMoveToNextAttribute(xmlTextReaderPtr reader);
  239: XMLPUBFUN int XMLCALL
  240: 		    xmlTextReaderMoveToElement	(xmlTextReaderPtr reader);
  241: XMLPUBFUN int XMLCALL
  242: 		    xmlTextReaderNormalization	(xmlTextReaderPtr reader);
  243: XMLPUBFUN const xmlChar * XMLCALL
  244: 		    xmlTextReaderConstEncoding  (xmlTextReaderPtr reader);
  245: 
  246: /*
  247:  * Extensions
  248:  */
  249: XMLPUBFUN int XMLCALL
  250: 		    xmlTextReaderSetParserProp	(xmlTextReaderPtr reader,
  251: 						 int prop,
  252: 						 int value);
  253: XMLPUBFUN int XMLCALL
  254: 		    xmlTextReaderGetParserProp	(xmlTextReaderPtr reader,
  255: 						 int prop);
  256: XMLPUBFUN xmlNodePtr XMLCALL
  257: 		    xmlTextReaderCurrentNode	(xmlTextReaderPtr reader);
  258: 
  259: XMLPUBFUN int XMLCALL
  260:             xmlTextReaderGetParserLineNumber(xmlTextReaderPtr reader);
  261: 
  262: XMLPUBFUN int XMLCALL
  263:             xmlTextReaderGetParserColumnNumber(xmlTextReaderPtr reader);
  264: 
  265: XMLPUBFUN xmlNodePtr XMLCALL
  266: 		    xmlTextReaderPreserve	(xmlTextReaderPtr reader);
  267: #ifdef LIBXML_PATTERN_ENABLED
  268: XMLPUBFUN int XMLCALL
  269: 		    xmlTextReaderPreservePattern(xmlTextReaderPtr reader,
  270: 						 const xmlChar *pattern,
  271: 						 const xmlChar **namespaces);
  272: #endif /* LIBXML_PATTERN_ENABLED */
  273: XMLPUBFUN xmlDocPtr XMLCALL
  274: 		    xmlTextReaderCurrentDoc	(xmlTextReaderPtr reader);
  275: XMLPUBFUN xmlNodePtr XMLCALL
  276: 		    xmlTextReaderExpand		(xmlTextReaderPtr reader);
  277: XMLPUBFUN int XMLCALL
  278: 		    xmlTextReaderNext		(xmlTextReaderPtr reader);
  279: XMLPUBFUN int XMLCALL
  280: 		    xmlTextReaderNextSibling	(xmlTextReaderPtr reader);
  281: XMLPUBFUN int XMLCALL
  282: 		    xmlTextReaderIsValid	(xmlTextReaderPtr reader);
  283: #ifdef LIBXML_SCHEMAS_ENABLED
  284: XMLPUBFUN int XMLCALL
  285: 		    xmlTextReaderRelaxNGValidate(xmlTextReaderPtr reader,
  286: 						 const char *rng);
  287: XMLPUBFUN int XMLCALL
  288: 		    xmlTextReaderRelaxNGValidateCtxt(xmlTextReaderPtr reader,
  289: 						 xmlRelaxNGValidCtxtPtr ctxt,
  290: 						 int options);
  291: 
  292: XMLPUBFUN int XMLCALL
  293: 		    xmlTextReaderRelaxNGSetSchema(xmlTextReaderPtr reader,
  294: 						 xmlRelaxNGPtr schema);
  295: XMLPUBFUN int XMLCALL
  296: 		    xmlTextReaderSchemaValidate	(xmlTextReaderPtr reader,
  297: 						 const char *xsd);
  298: XMLPUBFUN int XMLCALL
  299: 		    xmlTextReaderSchemaValidateCtxt(xmlTextReaderPtr reader,
  300: 						 xmlSchemaValidCtxtPtr ctxt,
  301: 						 int options);
  302: XMLPUBFUN int XMLCALL
  303: 		    xmlTextReaderSetSchema	(xmlTextReaderPtr reader,
  304: 						 xmlSchemaPtr schema);
  305: #endif
  306: XMLPUBFUN const xmlChar * XMLCALL
  307: 		    xmlTextReaderConstXmlVersion(xmlTextReaderPtr reader);
  308: XMLPUBFUN int XMLCALL
  309: 		    xmlTextReaderStandalone     (xmlTextReaderPtr reader);
  310: 
  311: 
  312: /*
  313:  * Index lookup
  314:  */
  315: XMLPUBFUN long XMLCALL
  316: 		xmlTextReaderByteConsumed	(xmlTextReaderPtr reader);
  317: 
  318: /*
  319:  * New more complete APIs for simpler creation and reuse of readers
  320:  */
  321: XMLPUBFUN xmlTextReaderPtr XMLCALL
  322: 		xmlReaderWalker		(xmlDocPtr doc);
  323: XMLPUBFUN xmlTextReaderPtr XMLCALL
  324: 		xmlReaderForDoc		(const xmlChar * cur,
  325: 					 const char *URL,
  326: 					 const char *encoding,
  327: 					 int options);
  328: XMLPUBFUN xmlTextReaderPtr XMLCALL
  329: 		xmlReaderForFile	(const char *filename,
  330: 					 const char *encoding,
  331: 					 int options);
  332: XMLPUBFUN xmlTextReaderPtr XMLCALL
  333: 		xmlReaderForMemory	(const char *buffer,
  334: 					 int size,
  335: 					 const char *URL,
  336: 					 const char *encoding,
  337: 					 int options);
  338: XMLPUBFUN xmlTextReaderPtr XMLCALL
  339: 		xmlReaderForFd		(int fd,
  340: 					 const char *URL,
  341: 					 const char *encoding,
  342: 					 int options);
  343: XMLPUBFUN xmlTextReaderPtr XMLCALL
  344: 		xmlReaderForIO		(xmlInputReadCallback ioread,
  345: 					 xmlInputCloseCallback ioclose,
  346: 					 void *ioctx,
  347: 					 const char *URL,
  348: 					 const char *encoding,
  349: 					 int options);
  350: 
  351: XMLPUBFUN int XMLCALL
  352: 		xmlReaderNewWalker	(xmlTextReaderPtr reader,
  353: 					 xmlDocPtr doc);
  354: XMLPUBFUN int XMLCALL
  355: 		xmlReaderNewDoc		(xmlTextReaderPtr reader,
  356: 					 const xmlChar * cur,
  357: 					 const char *URL,
  358: 					 const char *encoding,
  359: 					 int options);
  360: XMLPUBFUN int XMLCALL
  361: 		xmlReaderNewFile	(xmlTextReaderPtr reader,
  362: 					 const char *filename,
  363: 					 const char *encoding,
  364: 					 int options);
  365: XMLPUBFUN int XMLCALL
  366: 		xmlReaderNewMemory	(xmlTextReaderPtr reader,
  367: 					 const char *buffer,
  368: 					 int size,
  369: 					 const char *URL,
  370: 					 const char *encoding,
  371: 					 int options);
  372: XMLPUBFUN int XMLCALL
  373: 		xmlReaderNewFd		(xmlTextReaderPtr reader,
  374: 					 int fd,
  375: 					 const char *URL,
  376: 					 const char *encoding,
  377: 					 int options);
  378: XMLPUBFUN int XMLCALL
  379: 		xmlReaderNewIO		(xmlTextReaderPtr reader,
  380: 					 xmlInputReadCallback ioread,
  381: 					 xmlInputCloseCallback ioclose,
  382: 					 void *ioctx,
  383: 					 const char *URL,
  384: 					 const char *encoding,
  385: 					 int options);
  386: /*
  387:  * Error handling extensions
  388:  */
  389: typedef void *  xmlTextReaderLocatorPtr;
  390: 
  391: /**
  392:  * xmlTextReaderErrorFunc:
  393:  * @arg: the user argument
  394:  * @msg: the message
  395:  * @severity: the severity of the error
  396:  * @locator: a locator indicating where the error occured
  397:  *
  398:  * Signature of an error callback from a reader parser
  399:  */
  400: typedef void   (XMLCALL *xmlTextReaderErrorFunc)(void *arg,
  401: 						 const char *msg,
  402: 						 xmlParserSeverities severity,
  403: 						 xmlTextReaderLocatorPtr locator);
  404: XMLPUBFUN int XMLCALL
  405: 		    xmlTextReaderLocatorLineNumber(xmlTextReaderLocatorPtr locator);
  406: /*int             xmlTextReaderLocatorLinePosition(xmlTextReaderLocatorPtr locator);*/
  407: XMLPUBFUN xmlChar * XMLCALL
  408: 		    xmlTextReaderLocatorBaseURI (xmlTextReaderLocatorPtr locator);
  409: XMLPUBFUN void XMLCALL
  410: 		    xmlTextReaderSetErrorHandler(xmlTextReaderPtr reader,
  411: 						 xmlTextReaderErrorFunc f,
  412: 						 void *arg);
  413: XMLPUBFUN void XMLCALL
  414: 		    xmlTextReaderSetStructuredErrorHandler(xmlTextReaderPtr reader,
  415: 							   xmlStructuredErrorFunc f,
  416: 							   void *arg);
  417: XMLPUBFUN void XMLCALL
  418: 		    xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader,
  419: 						 xmlTextReaderErrorFunc *f,
  420: 						 void **arg);
  421: 
  422: #endif /* LIBXML_READER_ENABLED */
  423: 
  424: #ifdef __cplusplus
  425: }
  426: #endif
  427: 
  428: #endif /* __XML_XMLREADER_H__ */
  429: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>