xmlreader.h

00001 /*
00002 
00003  * Summary: the XMLReader implementation
00004 
00005  * Description: API of the XML streaming API based on C# interfaces.
00006 
00007  *
00008 
00009  * Copy: See Copyright for the status of this software.
00010 
00011  *
00012 
00013  * Author: Daniel Veillard
00014 
00015  */
00016 
00017 
00018 
00019 #ifndef __XML_XMLREADER_H__
00020 
00021 #define __XML_XMLREADER_H__
00022 
00023 
00024 
00025 #include <libxml/xmlversion.h>
00026 
00027 #include <libxml/tree.h>
00028 
00029 #include <libxml/xmlIO.h>
00030 
00031 #ifdef LIBXML_SCHEMAS_ENABLED
00032 
00033 #include <libxml/relaxng.h>
00034 
00035 #endif
00036 
00037 
00038 
00039 #ifdef LIBXML_READER_ENABLED
00040 
00041 
00042 
00043 #ifdef __cplusplus
00044 
00045 extern "C" {
00046 
00047 #endif
00048 
00049 
00050 
00061 typedef enum {
00062 
00063     XML_TEXTREADER_MODE_INITIAL = 0,
00064 
00065     XML_TEXTREADER_MODE_INTERACTIVE = 1,
00066 
00067     XML_TEXTREADER_MODE_ERROR = 2,
00068 
00069     XML_TEXTREADER_MODE_EOF =3,
00070 
00071     XML_TEXTREADER_MODE_CLOSED = 4,
00072 
00073     XML_TEXTREADER_MODE_READING = 5
00074 
00075 } xmlTextReaderMode;
00076 
00077 
00078 
00093 typedef enum {
00094 
00095     XML_PARSER_LOADDTD = 1,
00096 
00097     XML_PARSER_DEFAULTATTRS = 2,
00098 
00099     XML_PARSER_VALIDATE = 3,
00100 
00101     XML_PARSER_SUBST_ENTITIES = 4
00102 
00103 } xmlParserProperties;
00104 
00105 
00106 
00119 typedef enum {
00120 
00121     XML_PARSER_SEVERITY_VALIDITY_WARNING = 1,
00122 
00123     XML_PARSER_SEVERITY_VALIDITY_ERROR = 2,
00124 
00125     XML_PARSER_SEVERITY_WARNING = 3,
00126 
00127     XML_PARSER_SEVERITY_ERROR = 4
00128 
00129 } xmlParserSeverities;
00130 
00131 
00132 
00143 typedef enum {
00144 
00145     XML_READER_TYPE_NONE = 0,
00146 
00147     XML_READER_TYPE_ELEMENT = 1,
00148 
00149     XML_READER_TYPE_ATTRIBUTE = 2,
00150 
00151     XML_READER_TYPE_TEXT = 3,
00152 
00153     XML_READER_TYPE_CDATA = 4,
00154 
00155     XML_READER_TYPE_ENTITY_REFERENCE = 5,
00156 
00157     XML_READER_TYPE_ENTITY = 6,
00158 
00159     XML_READER_TYPE_PROCESSING_INSTRUCTION = 7,
00160 
00161     XML_READER_TYPE_COMMENT = 8,
00162 
00163     XML_READER_TYPE_DOCUMENT = 9,
00164 
00165     XML_READER_TYPE_DOCUMENT_TYPE = 10,
00166 
00167     XML_READER_TYPE_DOCUMENT_FRAGMENT = 11,
00168 
00169     XML_READER_TYPE_NOTATION = 12,
00170 
00171     XML_READER_TYPE_WHITESPACE = 13,
00172 
00173     XML_READER_TYPE_SIGNIFICANT_WHITESPACE = 14,
00174 
00175     XML_READER_TYPE_END_ELEMENT = 15,
00176 
00177     XML_READER_TYPE_END_ENTITY = 16,
00178 
00179     XML_READER_TYPE_XML_DECLARATION = 17
00180 
00181 } xmlReaderTypes;
00182 
00183 
00184 
00195 typedef struct _xmlTextReader xmlTextReader;
00196 
00197 
00198 
00209 typedef xmlTextReader *xmlTextReaderPtr;
00210 
00211 
00212 
00213 /*
00214 
00215  * Constructors & Destructor
00216 
00217  */
00218 
00219 XMLPUBFUN xmlTextReaderPtr XMLCALL
00220 
00221                         xmlNewTextReader        (xmlParserInputBufferPtr input,
00222 
00223                                                  const char *URI);
00224 
00225 XMLPUBFUN xmlTextReaderPtr XMLCALL      
00226 
00227                         xmlNewTextReaderFilename(const char *URI);
00228 
00229 XMLPUBFUN void XMLCALL                  
00230 
00231                         xmlFreeTextReader       (xmlTextReaderPtr reader);
00232 
00233 
00234 
00235 /*
00236 
00237  * Iterators
00238 
00239  */
00240 
00241 XMLPUBFUN int XMLCALL           
00242 
00243                         xmlTextReaderRead       (xmlTextReaderPtr reader);
00244 
00245 XMLPUBFUN xmlChar * XMLCALL     
00246 
00247                         xmlTextReaderReadInnerXml       (xmlTextReaderPtr reader);
00248 
00249 XMLPUBFUN xmlChar * XMLCALL     
00250 
00251                         xmlTextReaderReadOuterXml       (xmlTextReaderPtr reader);
00252 
00253 XMLPUBFUN xmlChar * XMLCALL     
00254 
00255                         xmlTextReaderReadString         (xmlTextReaderPtr reader);
00256 
00257 XMLPUBFUN int XMLCALL           
00258 
00259                         xmlTextReaderReadAttributeValue (xmlTextReaderPtr reader);
00260 
00261 
00262 
00263 /*
00264 
00265  * Attributes of the node
00266 
00267  */
00268 
00269 XMLPUBFUN int XMLCALL           
00270 
00271                         xmlTextReaderAttributeCount(xmlTextReaderPtr reader);
00272 
00273 XMLPUBFUN int XMLCALL           
00274 
00275                         xmlTextReaderDepth      (xmlTextReaderPtr reader);
00276 
00277 XMLPUBFUN int XMLCALL           
00278 
00279                         xmlTextReaderHasAttributes(xmlTextReaderPtr reader);
00280 
00281 XMLPUBFUN int XMLCALL           
00282 
00283                         xmlTextReaderHasValue(xmlTextReaderPtr reader);
00284 
00285 XMLPUBFUN int XMLCALL           
00286 
00287                         xmlTextReaderIsDefault  (xmlTextReaderPtr reader);
00288 
00289 XMLPUBFUN int XMLCALL           
00290 
00291                         xmlTextReaderIsEmptyElement(xmlTextReaderPtr reader);
00292 
00293 XMLPUBFUN int XMLCALL           
00294 
00295                         xmlTextReaderNodeType   (xmlTextReaderPtr reader);
00296 
00297 XMLPUBFUN int XMLCALL           
00298 
00299                         xmlTextReaderQuoteChar  (xmlTextReaderPtr reader);
00300 
00301 XMLPUBFUN int XMLCALL           
00302 
00303                         xmlTextReaderReadState  (xmlTextReaderPtr reader);
00304 
00305 XMLPUBFUN int XMLCALL
00306 
00307                         xmlTextReaderIsNamespaceDecl(xmlTextReaderPtr reader);
00308 
00309 
00310 
00311 XMLPUBFUN const xmlChar * XMLCALL       
00312 
00313                     xmlTextReaderConstBaseUri   (xmlTextReaderPtr reader);
00314 
00315 XMLPUBFUN const xmlChar * XMLCALL       
00316 
00317                     xmlTextReaderConstLocalName (xmlTextReaderPtr reader);
00318 
00319 XMLPUBFUN const xmlChar * XMLCALL       
00320 
00321                     xmlTextReaderConstName      (xmlTextReaderPtr reader);
00322 
00323 XMLPUBFUN const xmlChar * XMLCALL       
00324 
00325                     xmlTextReaderConstNamespaceUri(xmlTextReaderPtr reader);
00326 
00327 XMLPUBFUN const xmlChar * XMLCALL       
00328 
00329                     xmlTextReaderConstPrefix    (xmlTextReaderPtr reader);
00330 
00331 XMLPUBFUN const xmlChar * XMLCALL       
00332 
00333                     xmlTextReaderConstXmlLang   (xmlTextReaderPtr reader);
00334 
00335 XMLPUBFUN const xmlChar * XMLCALL       
00336 
00337                     xmlTextReaderConstString    (xmlTextReaderPtr reader,
00338 
00339                                                  const xmlChar *str);
00340 
00341 XMLPUBFUN const xmlChar * XMLCALL       
00342 
00343                     xmlTextReaderConstValue     (xmlTextReaderPtr reader);
00344 
00345 
00346 
00347 /*
00348 
00349  * use the Const version of the routine for
00350 
00351  * better performance and simpler code
00352 
00353  */
00354 
00355 XMLPUBFUN xmlChar * XMLCALL     
00356 
00357                         xmlTextReaderBaseUri    (xmlTextReaderPtr reader);
00358 
00359 XMLPUBFUN xmlChar * XMLCALL     
00360 
00361                         xmlTextReaderLocalName  (xmlTextReaderPtr reader);
00362 
00363 XMLPUBFUN xmlChar * XMLCALL     
00364 
00365                         xmlTextReaderName       (xmlTextReaderPtr reader);
00366 
00367 XMLPUBFUN xmlChar * XMLCALL     
00368 
00369                         xmlTextReaderNamespaceUri(xmlTextReaderPtr reader);
00370 
00371 XMLPUBFUN xmlChar * XMLCALL     
00372 
00373                         xmlTextReaderPrefix     (xmlTextReaderPtr reader);
00374 
00375 XMLPUBFUN xmlChar * XMLCALL     
00376 
00377                         xmlTextReaderXmlLang    (xmlTextReaderPtr reader);
00378 
00379 XMLPUBFUN xmlChar * XMLCALL     
00380 
00381                         xmlTextReaderValue      (xmlTextReaderPtr reader);
00382 
00383 
00384 
00385 /*
00386 
00387  * Methods of the XmlTextReader
00388 
00389  */
00390 
00391 XMLPUBFUN int XMLCALL           
00392 
00393                     xmlTextReaderClose          (xmlTextReaderPtr reader);
00394 
00395 XMLPUBFUN xmlChar * XMLCALL     
00396 
00397                     xmlTextReaderGetAttributeNo (xmlTextReaderPtr reader,
00398 
00399                                                  int no);
00400 
00401 XMLPUBFUN xmlChar * XMLCALL     
00402 
00403                     xmlTextReaderGetAttribute   (xmlTextReaderPtr reader,
00404 
00405                                                  const xmlChar *name);
00406 
00407 XMLPUBFUN xmlChar * XMLCALL     
00408 
00409                     xmlTextReaderGetAttributeNs (xmlTextReaderPtr reader,
00410 
00411                                                  const xmlChar *localName,
00412 
00413                                                  const xmlChar *namespaceURI);
00414 
00415 XMLPUBFUN xmlParserInputBufferPtr XMLCALL 
00416 
00417                     xmlTextReaderGetRemainder   (xmlTextReaderPtr reader);
00418 
00419 XMLPUBFUN xmlChar * XMLCALL     
00420 
00421                     xmlTextReaderLookupNamespace(xmlTextReaderPtr reader,
00422 
00423                                                  const xmlChar *prefix);
00424 
00425 XMLPUBFUN int XMLCALL           
00426 
00427                     xmlTextReaderMoveToAttributeNo(xmlTextReaderPtr reader,
00428 
00429                                                  int no);
00430 
00431 XMLPUBFUN int XMLCALL           
00432 
00433                     xmlTextReaderMoveToAttribute(xmlTextReaderPtr reader,
00434 
00435                                                  const xmlChar *name);
00436 
00437 XMLPUBFUN int XMLCALL           
00438 
00439                     xmlTextReaderMoveToAttributeNs(xmlTextReaderPtr reader,
00440 
00441                                                  const xmlChar *localName,
00442 
00443                                                  const xmlChar *namespaceURI);
00444 
00445 XMLPUBFUN int XMLCALL           
00446 
00447                     xmlTextReaderMoveToFirstAttribute(xmlTextReaderPtr reader);
00448 
00449 XMLPUBFUN int XMLCALL           
00450 
00451                     xmlTextReaderMoveToNextAttribute(xmlTextReaderPtr reader);
00452 
00453 XMLPUBFUN int XMLCALL           
00454 
00455                     xmlTextReaderMoveToElement  (xmlTextReaderPtr reader);
00456 
00457 XMLPUBFUN int XMLCALL           
00458 
00459                     xmlTextReaderNormalization  (xmlTextReaderPtr reader);
00460 
00461 XMLPUBFUN const xmlChar * XMLCALL
00462 
00463                     xmlTextReaderConstEncoding  (xmlTextReaderPtr reader);
00464 
00465 
00466 
00467 /*
00468 
00469  * Extensions
00470 
00471  */
00472 
00473 XMLPUBFUN int XMLCALL           
00474 
00475                     xmlTextReaderSetParserProp  (xmlTextReaderPtr reader,
00476 
00477                                                  int prop,
00478 
00479                                                  int value);
00480 
00481 XMLPUBFUN int XMLCALL           
00482 
00483                     xmlTextReaderGetParserProp  (xmlTextReaderPtr reader,
00484 
00485                                                  int prop);
00486 
00487 XMLPUBFUN xmlNodePtr XMLCALL    
00488 
00489                     xmlTextReaderCurrentNode    (xmlTextReaderPtr reader);
00490 
00491 
00492 
00493 XMLPUBFUN int XMLCALL
00494 
00495             xmlTextReaderGetParserLineNumber(xmlTextReaderPtr reader);
00496 
00497 
00498 
00499 XMLPUBFUN int XMLCALL
00500 
00501             xmlTextReaderGetParserColumnNumber(xmlTextReaderPtr reader);
00502 
00503 
00504 
00505 XMLPUBFUN xmlNodePtr XMLCALL    
00506 
00507                     xmlTextReaderPreserve       (xmlTextReaderPtr reader);
00508 
00509 #ifdef LIBXML_PATTERN_ENABLED
00510 
00511 XMLPUBFUN int XMLCALL   
00512 
00513                     xmlTextReaderPreservePattern(xmlTextReaderPtr reader,
00514 
00515                                                  const xmlChar *pattern,
00516 
00517                                                  const xmlChar **namespaces);
00518 
00519 #endif /* LIBXML_PATTERN_ENABLED */
00520 
00521 XMLPUBFUN xmlDocPtr XMLCALL     
00522 
00523                     xmlTextReaderCurrentDoc     (xmlTextReaderPtr reader);
00524 
00525 XMLPUBFUN xmlNodePtr XMLCALL    
00526 
00527                     xmlTextReaderExpand         (xmlTextReaderPtr reader);
00528 
00529 XMLPUBFUN int XMLCALL           
00530 
00531                     xmlTextReaderNext           (xmlTextReaderPtr reader);
00532 
00533 XMLPUBFUN int XMLCALL
00534 
00535                     xmlTextReaderNextSibling    (xmlTextReaderPtr reader);
00536 
00537 XMLPUBFUN int XMLCALL           
00538 
00539                     xmlTextReaderIsValid        (xmlTextReaderPtr reader);
00540 
00541 #ifdef LIBXML_SCHEMAS_ENABLED
00542 
00543 XMLPUBFUN int XMLCALL           
00544 
00545                     xmlTextReaderRelaxNGValidate(xmlTextReaderPtr reader,
00546 
00547                                                  const char *rng);
00548 
00549 XMLPUBFUN int XMLCALL           
00550 
00551                     xmlTextReaderRelaxNGSetSchema(xmlTextReaderPtr reader,
00552 
00553                                                  xmlRelaxNGPtr schema);
00554 
00555 #endif
00556 
00557 XMLPUBFUN const xmlChar * XMLCALL
00558 
00559                     xmlTextReaderConstXmlVersion(xmlTextReaderPtr reader);
00560 
00561 XMLPUBFUN int XMLCALL
00562 
00563                     xmlTextReaderStandalone     (xmlTextReaderPtr reader);
00564 
00565 
00566 
00567 /*
00568 
00569  * New more complete APIs for simpler creation and reuse of readers
00570 
00571  */
00572 
00573 XMLPUBFUN xmlTextReaderPtr XMLCALL
00574 
00575                 xmlReaderWalker         (xmlDocPtr doc);
00576 
00577 XMLPUBFUN xmlTextReaderPtr XMLCALL
00578 
00579                 xmlReaderForDoc         (const xmlChar * cur,
00580 
00581                                          const char *URL,
00582 
00583                                          const char *encoding,
00584 
00585                                          int options);
00586 
00587 XMLPUBFUN xmlTextReaderPtr XMLCALL
00588 
00589                 xmlReaderForFile        (const char *filename,
00590 
00591                                          const char *encoding,
00592 
00593                                          int options);
00594 
00595 XMLPUBFUN xmlTextReaderPtr XMLCALL
00596 
00597                 xmlReaderForMemory      (const char *buffer,
00598 
00599                                          int size,
00600 
00601                                          const char *URL,
00602 
00603                                          const char *encoding,
00604 
00605                                          int options);
00606 
00607 XMLPUBFUN xmlTextReaderPtr XMLCALL
00608 
00609                 xmlReaderForFd          (int fd,
00610 
00611                                          const char *URL,
00612 
00613                                          const char *encoding,
00614 
00615                                          int options);
00616 
00617 XMLPUBFUN xmlTextReaderPtr XMLCALL
00618 
00619                 xmlReaderForIO          (xmlInputReadCallback ioread,
00620 
00621                                          xmlInputCloseCallback ioclose,
00622 
00623                                          void *ioctx,
00624 
00625                                          const char *URL,
00626 
00627                                          const char *encoding,
00628 
00629                                          int options);
00630 
00631 
00632 
00633 XMLPUBFUN int XMLCALL
00634 
00635                 xmlReaderNewWalker      (xmlTextReaderPtr reader,
00636 
00637                                          xmlDocPtr doc);
00638 
00639 XMLPUBFUN int XMLCALL
00640 
00641                 xmlReaderNewDoc         (xmlTextReaderPtr reader,
00642 
00643                                          const xmlChar * cur,
00644 
00645                                          const char *URL,
00646 
00647                                          const char *encoding,
00648 
00649                                          int options);
00650 
00651 XMLPUBFUN int XMLCALL
00652 
00653                 xmlReaderNewFile        (xmlTextReaderPtr reader,
00654 
00655                                          const char *filename,
00656 
00657                                          const char *encoding,
00658 
00659                                          int options);
00660 
00661 XMLPUBFUN int XMLCALL
00662 
00663                 xmlReaderNewMemory      (xmlTextReaderPtr reader,
00664 
00665                                          const char *buffer,
00666 
00667                                          int size,
00668 
00669                                          const char *URL,
00670 
00671                                          const char *encoding,
00672 
00673                                          int options);
00674 
00675 XMLPUBFUN int XMLCALL
00676 
00677                 xmlReaderNewFd          (xmlTextReaderPtr reader,
00678 
00679                                          int fd,
00680 
00681                                          const char *URL,
00682 
00683                                          const char *encoding,
00684 
00685                                          int options);
00686 
00687 XMLPUBFUN int XMLCALL
00688 
00689                 xmlReaderNewIO          (xmlTextReaderPtr reader,
00690 
00691                                          xmlInputReadCallback ioread,
00692 
00693                                          xmlInputCloseCallback ioclose,
00694 
00695                                          void *ioctx,
00696 
00697                                          const char *URL,
00698 
00699                                          const char *encoding,
00700 
00701                                          int options);
00702 
00703 /*
00704 
00705  * Error handling extensions
00706 
00707  */
00708 
00709 typedef void *  xmlTextReaderLocatorPtr;
00710 
00711 typedef void   (XMLCALL *xmlTextReaderErrorFunc)        (void *arg, 
00712 
00713                                                  const char *msg,
00714 
00715                                                  xmlParserSeverities severity,
00716 
00717                                                  xmlTextReaderLocatorPtr locator);
00718 
00719 XMLPUBFUN int XMLCALL             
00720 
00721                     xmlTextReaderLocatorLineNumber(xmlTextReaderLocatorPtr locator);
00722 
00723 /*int             xmlTextReaderLocatorLinePosition(xmlTextReaderLocatorPtr locator);*/
00724 
00725 XMLPUBFUN xmlChar * XMLCALL       
00726 
00727                     xmlTextReaderLocatorBaseURI (xmlTextReaderLocatorPtr locator);
00728 
00729 XMLPUBFUN void XMLCALL            
00730 
00731                     xmlTextReaderSetErrorHandler(xmlTextReaderPtr reader, 
00732 
00733                                                  xmlTextReaderErrorFunc f, 
00734 
00735                                                  void *arg);
00736 
00737 XMLPUBFUN void XMLCALL
00738 
00739                     xmlTextReaderSetStructuredErrorHandler(xmlTextReaderPtr reader,
00740 
00741                                                            xmlStructuredErrorFunc f,
00742 
00743                                                            void *arg);
00744 
00745 XMLPUBFUN void XMLCALL            
00746 
00747                     xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader, 
00748 
00749                                                  xmlTextReaderErrorFunc *f, 
00750 
00751                                                  void **arg);
00752 
00753 
00754 
00755 #ifdef __cplusplus
00756 
00757 }
00758 
00759 #endif
00760 
00761 
00762 
00763 #endif /* LIBXML_READER_ENABLED */
00764 
00765 
00766 
00767 #endif /* __XML_XMLREADER_H__ */
00768 
00769 
00770 

Generated on Wed Jul 26 13:30:46 2006 for XSB by  doxygen 1.4.5