Annotation of embedaddon/libxml2/include/libxml/xmlreader.h, revision 1.1
1.1 ! misho 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: xmlTextReaderRelaxNGSetSchema(xmlTextReaderPtr reader,
! 289: xmlRelaxNGPtr schema);
! 290: XMLPUBFUN int XMLCALL
! 291: xmlTextReaderSchemaValidate (xmlTextReaderPtr reader,
! 292: const char *xsd);
! 293: XMLPUBFUN int XMLCALL
! 294: xmlTextReaderSchemaValidateCtxt(xmlTextReaderPtr reader,
! 295: xmlSchemaValidCtxtPtr ctxt,
! 296: int options);
! 297: XMLPUBFUN int XMLCALL
! 298: xmlTextReaderSetSchema (xmlTextReaderPtr reader,
! 299: xmlSchemaPtr schema);
! 300: #endif
! 301: XMLPUBFUN const xmlChar * XMLCALL
! 302: xmlTextReaderConstXmlVersion(xmlTextReaderPtr reader);
! 303: XMLPUBFUN int XMLCALL
! 304: xmlTextReaderStandalone (xmlTextReaderPtr reader);
! 305:
! 306:
! 307: /*
! 308: * Index lookup
! 309: */
! 310: XMLPUBFUN long XMLCALL
! 311: xmlTextReaderByteConsumed (xmlTextReaderPtr reader);
! 312:
! 313: /*
! 314: * New more complete APIs for simpler creation and reuse of readers
! 315: */
! 316: XMLPUBFUN xmlTextReaderPtr XMLCALL
! 317: xmlReaderWalker (xmlDocPtr doc);
! 318: XMLPUBFUN xmlTextReaderPtr XMLCALL
! 319: xmlReaderForDoc (const xmlChar * cur,
! 320: const char *URL,
! 321: const char *encoding,
! 322: int options);
! 323: XMLPUBFUN xmlTextReaderPtr XMLCALL
! 324: xmlReaderForFile (const char *filename,
! 325: const char *encoding,
! 326: int options);
! 327: XMLPUBFUN xmlTextReaderPtr XMLCALL
! 328: xmlReaderForMemory (const char *buffer,
! 329: int size,
! 330: const char *URL,
! 331: const char *encoding,
! 332: int options);
! 333: XMLPUBFUN xmlTextReaderPtr XMLCALL
! 334: xmlReaderForFd (int fd,
! 335: const char *URL,
! 336: const char *encoding,
! 337: int options);
! 338: XMLPUBFUN xmlTextReaderPtr XMLCALL
! 339: xmlReaderForIO (xmlInputReadCallback ioread,
! 340: xmlInputCloseCallback ioclose,
! 341: void *ioctx,
! 342: const char *URL,
! 343: const char *encoding,
! 344: int options);
! 345:
! 346: XMLPUBFUN int XMLCALL
! 347: xmlReaderNewWalker (xmlTextReaderPtr reader,
! 348: xmlDocPtr doc);
! 349: XMLPUBFUN int XMLCALL
! 350: xmlReaderNewDoc (xmlTextReaderPtr reader,
! 351: const xmlChar * cur,
! 352: const char *URL,
! 353: const char *encoding,
! 354: int options);
! 355: XMLPUBFUN int XMLCALL
! 356: xmlReaderNewFile (xmlTextReaderPtr reader,
! 357: const char *filename,
! 358: const char *encoding,
! 359: int options);
! 360: XMLPUBFUN int XMLCALL
! 361: xmlReaderNewMemory (xmlTextReaderPtr reader,
! 362: const char *buffer,
! 363: int size,
! 364: const char *URL,
! 365: const char *encoding,
! 366: int options);
! 367: XMLPUBFUN int XMLCALL
! 368: xmlReaderNewFd (xmlTextReaderPtr reader,
! 369: int fd,
! 370: const char *URL,
! 371: const char *encoding,
! 372: int options);
! 373: XMLPUBFUN int XMLCALL
! 374: xmlReaderNewIO (xmlTextReaderPtr reader,
! 375: xmlInputReadCallback ioread,
! 376: xmlInputCloseCallback ioclose,
! 377: void *ioctx,
! 378: const char *URL,
! 379: const char *encoding,
! 380: int options);
! 381: /*
! 382: * Error handling extensions
! 383: */
! 384: typedef void * xmlTextReaderLocatorPtr;
! 385:
! 386: /**
! 387: * xmlTextReaderErrorFunc:
! 388: * @arg: the user argument
! 389: * @msg: the message
! 390: * @severity: the severity of the error
! 391: * @locator: a locator indicating where the error occured
! 392: *
! 393: * Signature of an error callback from a reader parser
! 394: */
! 395: typedef void (XMLCALL *xmlTextReaderErrorFunc)(void *arg,
! 396: const char *msg,
! 397: xmlParserSeverities severity,
! 398: xmlTextReaderLocatorPtr locator);
! 399: XMLPUBFUN int XMLCALL
! 400: xmlTextReaderLocatorLineNumber(xmlTextReaderLocatorPtr locator);
! 401: /*int xmlTextReaderLocatorLinePosition(xmlTextReaderLocatorPtr locator);*/
! 402: XMLPUBFUN xmlChar * XMLCALL
! 403: xmlTextReaderLocatorBaseURI (xmlTextReaderLocatorPtr locator);
! 404: XMLPUBFUN void XMLCALL
! 405: xmlTextReaderSetErrorHandler(xmlTextReaderPtr reader,
! 406: xmlTextReaderErrorFunc f,
! 407: void *arg);
! 408: XMLPUBFUN void XMLCALL
! 409: xmlTextReaderSetStructuredErrorHandler(xmlTextReaderPtr reader,
! 410: xmlStructuredErrorFunc f,
! 411: void *arg);
! 412: XMLPUBFUN void XMLCALL
! 413: xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader,
! 414: xmlTextReaderErrorFunc *f,
! 415: void **arg);
! 416:
! 417: #endif /* LIBXML_READER_ENABLED */
! 418:
! 419: #ifdef __cplusplus
! 420: }
! 421: #endif
! 422:
! 423: #endif /* __XML_XMLREADER_H__ */
! 424:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>