Return to xmlreader.h CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / include / libxml |
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: