Annotation of embedaddon/libxml2/include/libxml/xmlreader.h, revision 1.1.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>