Annotation of embedaddon/libxml2/include/libxml/xmlreader.h, revision 1.1.1.3

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
1.1.1.3 ! misho     133:                        xmlTextReaderReadInnerXml(xmlTextReaderPtr reader);
1.1       misho     134: 
                    135: XMLPUBFUN xmlChar * XMLCALL
1.1.1.3 ! misho     136:                        xmlTextReaderReadOuterXml(xmlTextReaderPtr reader);
1.1       misho     137: #endif
                    138: 
                    139: XMLPUBFUN xmlChar * XMLCALL
1.1.1.3 ! misho     140:                        xmlTextReaderReadString (xmlTextReaderPtr reader);
1.1       misho     141: XMLPUBFUN int XMLCALL
1.1.1.3 ! misho     142:                        xmlTextReaderReadAttributeValue(xmlTextReaderPtr reader);
1.1       misho     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
1.1.1.2   misho     288:                    xmlTextReaderRelaxNGValidateCtxt(xmlTextReaderPtr reader,
                    289:                                                 xmlRelaxNGValidCtxtPtr ctxt,
                    290:                                                 int options);
                    291: 
                    292: XMLPUBFUN int XMLCALL
1.1       misho     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:  */
1.1.1.3 ! misho     400: typedef void (XMLCALL *xmlTextReaderErrorFunc)(void *arg,
        !           401:                                               const char *msg,
        !           402:                                               xmlParserSeverities severity,
        !           403:                                               xmlTextReaderLocatorPtr locator);
1.1       misho     404: XMLPUBFUN int XMLCALL
1.1.1.3 ! misho     405:            xmlTextReaderLocatorLineNumber(xmlTextReaderLocatorPtr locator);
1.1       misho     406: XMLPUBFUN xmlChar * XMLCALL
1.1.1.3 ! misho     407:            xmlTextReaderLocatorBaseURI (xmlTextReaderLocatorPtr locator);
1.1       misho     408: XMLPUBFUN void XMLCALL
1.1.1.3 ! misho     409:            xmlTextReaderSetErrorHandler(xmlTextReaderPtr reader,
        !           410:                                         xmlTextReaderErrorFunc f,
        !           411:                                         void *arg);
1.1       misho     412: XMLPUBFUN void XMLCALL
1.1.1.3 ! misho     413:            xmlTextReaderSetStructuredErrorHandler(xmlTextReaderPtr reader,
        !           414:                                                   xmlStructuredErrorFunc f,
        !           415:                                                   void *arg);
1.1       misho     416: XMLPUBFUN void XMLCALL
1.1.1.3 ! misho     417:            xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader,
        !           418:                                         xmlTextReaderErrorFunc *f,
        !           419:                                         void **arg);
1.1       misho     420: 
                    421: #endif /* LIBXML_READER_ENABLED */
                    422: 
                    423: #ifdef __cplusplus
                    424: }
                    425: #endif
                    426: 
                    427: #endif /* __XML_XMLREADER_H__ */
                    428: 

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