Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

xmlreader.h

Go to the documentation of this file.
00001 /*
00002  * xmlreader.h : Interfaces, constants and types of the XML streaming API.
00003  *
00004  * See Copyright for the status of this software.
00005  *
00006  * daniel@veillard.com
00007  */
00008 
00009 #ifndef __XML_XMLREADER_H__
00010 #define __XML_XMLREADER_H__
00011 
00012 #include <libxml/xmlversion.h>
00013 #include <libxml/tree.h>
00014 #include <libxml/xmlIO.h>
00015 #ifdef LIBXML_SCHEMAS_ENABLED
00016 #include <libxml/relaxng.h>
00017 #endif
00018 
00019 #ifdef __cplusplus
00020 extern "C" {
00021 #endif
00022 
00023 typedef enum {
00024     XML_PARSER_LOADDTD = 1,
00025     XML_PARSER_DEFAULTATTRS = 2,
00026     XML_PARSER_VALIDATE = 3,
00027     XML_PARSER_SUBST_ENTITIES = 4
00028 } xmlParserProperties;
00029 
00030 typedef enum {
00031     XML_PARSER_SEVERITY_VALIDITY_WARNING = 1,
00032     XML_PARSER_SEVERITY_VALIDITY_ERROR = 2,
00033     XML_PARSER_SEVERITY_WARNING = 3,
00034     XML_PARSER_SEVERITY_ERROR = 4
00035 } xmlParserSeverities;
00036 
00037 typedef enum {
00038     XML_READER_TYPE_NONE = 0,
00039     XML_READER_TYPE_ELEMENT = 1,
00040     XML_READER_TYPE_ATTRIBUTE = 2,
00041     XML_READER_TYPE_TEXT = 3,
00042     XML_READER_TYPE_CDATA = 4,
00043     XML_READER_TYPE_ENTITY_REFERENCE = 5,
00044     XML_READER_TYPE_ENTITY = 6,
00045     XML_READER_TYPE_PROCESSING_INSTRUCTION = 7,
00046     XML_READER_TYPE_COMMENT = 8,
00047     XML_READER_TYPE_DOCUMENT = 9,
00048     XML_READER_TYPE_DOCUMENT_TYPE = 10,
00049     XML_READER_TYPE_DOCUMENT_FRAGMENT = 11,
00050     XML_READER_TYPE_NOTATION = 12,
00051     XML_READER_TYPE_WHITESPACE = 13,
00052     XML_READER_TYPE_SIGNIFICANT_WHITESPACE = 14,
00053     XML_READER_TYPE_END_ELEMENT = 15,
00054     XML_READER_TYPE_END_ENTITY = 16,
00055     XML_READER_TYPE_XML_DECLARATION = 17
00056 } xmlReaderTypes;
00057 
00058 typedef struct _xmlTextReader xmlTextReader;
00059 typedef xmlTextReader *xmlTextReaderPtr;
00060 
00061 /*
00062  * Constructors & Destructor
00063  */
00064 XMLPUBFUN xmlTextReaderPtr XMLCALL
00065                         xmlNewTextReader        (xmlParserInputBufferPtr input,
00066                                                  const char *URI);
00067 XMLPUBFUN xmlTextReaderPtr XMLCALL      
00068                         xmlNewTextReaderFilename(const char *URI);
00069 XMLPUBFUN void XMLCALL                  
00070                         xmlFreeTextReader       (xmlTextReaderPtr reader);
00071 
00072 /*
00073  * Iterators
00074  */
00075 XMLPUBFUN int XMLCALL           
00076                         xmlTextReaderRead       (xmlTextReaderPtr reader);
00077 XMLPUBFUN xmlChar * XMLCALL     
00078                         xmlTextReaderReadInnerXml       (xmlTextReaderPtr reader);
00079 XMLPUBFUN xmlChar * XMLCALL     
00080                         xmlTextReaderReadOuterXml       (xmlTextReaderPtr reader);
00081 XMLPUBFUN xmlChar * XMLCALL     
00082                         xmlTextReaderReadString         (xmlTextReaderPtr reader);
00083 XMLPUBFUN int XMLCALL           
00084                         xmlTextReaderReadAttributeValue (xmlTextReaderPtr reader);
00085 
00086 /*
00087  * Attributes of the node
00088  */
00089 XMLPUBFUN int XMLCALL           
00090                         xmlTextReaderAttributeCount(xmlTextReaderPtr reader);
00091 XMLPUBFUN int XMLCALL           
00092                         xmlTextReaderDepth      (xmlTextReaderPtr reader);
00093 XMLPUBFUN int XMLCALL           
00094                         xmlTextReaderHasAttributes(xmlTextReaderPtr reader);
00095 XMLPUBFUN int XMLCALL           
00096                         xmlTextReaderHasValue(xmlTextReaderPtr reader);
00097 XMLPUBFUN int XMLCALL           
00098                         xmlTextReaderIsDefault  (xmlTextReaderPtr reader);
00099 XMLPUBFUN int XMLCALL           
00100                         xmlTextReaderIsEmptyElement(xmlTextReaderPtr reader);
00101 XMLPUBFUN int XMLCALL           
00102                         xmlTextReaderNodeType   (xmlTextReaderPtr reader);
00103 XMLPUBFUN int XMLCALL           
00104                         xmlTextReaderQuoteChar  (xmlTextReaderPtr reader);
00105 XMLPUBFUN int XMLCALL           
00106                         xmlTextReaderReadState  (xmlTextReaderPtr reader);
00107 
00108 XMLPUBFUN const xmlChar * XMLCALL       
00109                     xmlTextReaderConstBaseUri   (xmlTextReaderPtr reader);
00110 XMLPUBFUN const xmlChar * XMLCALL       
00111                     xmlTextReaderConstLocalName (xmlTextReaderPtr reader);
00112 XMLPUBFUN const xmlChar * XMLCALL       
00113                     xmlTextReaderConstName      (xmlTextReaderPtr reader);
00114 XMLPUBFUN const xmlChar * XMLCALL       
00115                     xmlTextReaderConstNamespaceUri(xmlTextReaderPtr reader);
00116 XMLPUBFUN const xmlChar * XMLCALL       
00117                     xmlTextReaderConstPrefix    (xmlTextReaderPtr reader);
00118 XMLPUBFUN const xmlChar * XMLCALL       
00119                     xmlTextReaderConstXmlLang   (xmlTextReaderPtr reader);
00120 XMLPUBFUN const xmlChar * XMLCALL       
00121                     xmlTextReaderConstString    (xmlTextReaderPtr reader,
00122                                                  const xmlChar *str);
00123 XMLPUBFUN const xmlChar * XMLCALL       
00124                     xmlTextReaderConstValue     (xmlTextReaderPtr reader);
00125 
00126 /*
00127  * use the Const version of the routine for
00128  * better performance and simpler code
00129  */
00130 XMLPUBFUN xmlChar * XMLCALL     
00131                         xmlTextReaderBaseUri    (xmlTextReaderPtr reader);
00132 XMLPUBFUN xmlChar * XMLCALL     
00133                         xmlTextReaderLocalName  (xmlTextReaderPtr reader);
00134 XMLPUBFUN xmlChar * XMLCALL     
00135                         xmlTextReaderName       (xmlTextReaderPtr reader);
00136 XMLPUBFUN xmlChar * XMLCALL     
00137                         xmlTextReaderNamespaceUri(xmlTextReaderPtr reader);
00138 XMLPUBFUN xmlChar * XMLCALL     
00139                         xmlTextReaderPrefix     (xmlTextReaderPtr reader);
00140 XMLPUBFUN xmlChar * XMLCALL     
00141                         xmlTextReaderXmlLang    (xmlTextReaderPtr reader);
00142 XMLPUBFUN xmlChar * XMLCALL     
00143                         xmlTextReaderValue      (xmlTextReaderPtr reader);
00144 
00145 /*
00146  * Methods of the XmlTextReader
00147  */
00148 XMLPUBFUN int XMLCALL           
00149                     xmlTextReaderClose          (xmlTextReaderPtr reader);
00150 XMLPUBFUN xmlChar * XMLCALL     
00151                     xmlTextReaderGetAttributeNo (xmlTextReaderPtr reader,
00152                                                  int no);
00153 XMLPUBFUN xmlChar * XMLCALL     
00154                     xmlTextReaderGetAttribute   (xmlTextReaderPtr reader,
00155                                                  const xmlChar *name);
00156 XMLPUBFUN xmlChar * XMLCALL     
00157                     xmlTextReaderGetAttributeNs (xmlTextReaderPtr reader,
00158                                                  const xmlChar *localName,
00159                                                  const xmlChar *namespaceURI);
00160 XMLPUBFUN xmlParserInputBufferPtr XMLCALL 
00161                     xmlTextReaderGetRemainder   (xmlTextReaderPtr reader);
00162 XMLPUBFUN xmlChar * XMLCALL     
00163                     xmlTextReaderLookupNamespace(xmlTextReaderPtr reader,
00164                                                  const xmlChar *prefix);
00165 XMLPUBFUN int XMLCALL           
00166                     xmlTextReaderMoveToAttributeNo(xmlTextReaderPtr reader,
00167                                                  int no);
00168 XMLPUBFUN int XMLCALL           
00169                     xmlTextReaderMoveToAttribute(xmlTextReaderPtr reader,
00170                                                  const xmlChar *name);
00171 XMLPUBFUN int XMLCALL           
00172                     xmlTextReaderMoveToAttributeNs(xmlTextReaderPtr reader,
00173                                                  const xmlChar *localName,
00174                                                  const xmlChar *namespaceURI);
00175 XMLPUBFUN int XMLCALL           
00176                     xmlTextReaderMoveToFirstAttribute(xmlTextReaderPtr reader);
00177 XMLPUBFUN int XMLCALL           
00178                     xmlTextReaderMoveToNextAttribute(xmlTextReaderPtr reader);
00179 XMLPUBFUN int XMLCALL           
00180                     xmlTextReaderMoveToElement  (xmlTextReaderPtr reader);
00181 XMLPUBFUN int XMLCALL           
00182                     xmlTextReaderNormalization  (xmlTextReaderPtr reader);
00183 
00184 /*
00185  * Extensions
00186  */
00187 XMLPUBFUN int XMLCALL           
00188                     xmlTextReaderSetParserProp  (xmlTextReaderPtr reader,
00189                                                  int prop,
00190                                                  int value);
00191 XMLPUBFUN int XMLCALL           
00192                     xmlTextReaderGetParserProp  (xmlTextReaderPtr reader,
00193                                                  int prop);
00194 XMLPUBFUN xmlNodePtr XMLCALL    
00195                     xmlTextReaderCurrentNode    (xmlTextReaderPtr reader);
00196 XMLPUBFUN xmlNodePtr XMLCALL    
00197                     xmlTextReaderPreserve       (xmlTextReaderPtr reader);
00198 XMLPUBFUN xmlDocPtr XMLCALL     
00199                     xmlTextReaderCurrentDoc     (xmlTextReaderPtr reader);
00200 XMLPUBFUN xmlNodePtr XMLCALL    
00201                     xmlTextReaderExpand         (xmlTextReaderPtr reader);
00202 XMLPUBFUN int XMLCALL           
00203                     xmlTextReaderNext           (xmlTextReaderPtr reader);
00204 XMLPUBFUN int XMLCALL
00205                     xmlTextReaderNextSibling    (xmlTextReaderPtr reader);
00206 XMLPUBFUN int XMLCALL           
00207                     xmlTextReaderIsValid        (xmlTextReaderPtr reader);
00208 #ifdef LIBXML_SCHEMAS_ENABLED
00209 XMLPUBFUN int XMLCALL           
00210                     xmlTextReaderRelaxNGValidate(xmlTextReaderPtr reader,
00211                                                  const char *rng);
00212 XMLPUBFUN int XMLCALL           
00213                     xmlTextReaderRelaxNGSetSchema(xmlTextReaderPtr reader,
00214                                                  xmlRelaxNGPtr schema);
00215 #endif
00216 
00217 /*
00218  * New more complete APIs for simpler creation and reuse of readers
00219  */
00220 XMLPUBFUN xmlTextReaderPtr XMLCALL
00221                 xmlReaderWalker         (xmlDocPtr doc);
00222 XMLPUBFUN xmlTextReaderPtr XMLCALL
00223                 xmlReaderForDoc         (const xmlChar * cur,
00224                                          const char *URL,
00225                                          const char *encoding,
00226                                          int options);
00227 XMLPUBFUN xmlTextReaderPtr XMLCALL
00228                 xmlReaderForFile        (const char *filename,
00229                                          const char *encoding,
00230                                          int options);
00231 XMLPUBFUN xmlTextReaderPtr XMLCALL
00232                 xmlReaderForMemory      (const char *buffer,
00233                                          int size,
00234                                          const char *URL,
00235                                          const char *encoding,
00236                                          int options);
00237 XMLPUBFUN xmlTextReaderPtr XMLCALL
00238                 xmlReaderForFd          (int fd,
00239                                          const char *URL,
00240                                          const char *encoding,
00241                                          int options);
00242 XMLPUBFUN xmlTextReaderPtr XMLCALL
00243                 xmlReaderForIO          (xmlInputReadCallback ioread,
00244                                          xmlInputCloseCallback ioclose,
00245                                          void *ioctx,
00246                                          const char *URL,
00247                                          const char *encoding,
00248                                          int options);
00249 
00250 XMLPUBFUN int XMLCALL
00251                 xmlReaderNewWalker      (xmlTextReaderPtr reader,
00252                                          xmlDocPtr doc);
00253 XMLPUBFUN int XMLCALL
00254                 xmlReaderNewDoc         (xmlTextReaderPtr reader,
00255                                          const xmlChar * cur,
00256                                          const char *URL,
00257                                          const char *encoding,
00258                                          int options);
00259 XMLPUBFUN int XMLCALL
00260                 xmlReaderNewFile        (xmlTextReaderPtr reader,
00261                                          const char *filename,
00262                                          const char *encoding,
00263                                          int options);
00264 XMLPUBFUN int XMLCALL
00265                 xmlReaderNewMemory      (xmlTextReaderPtr reader,
00266                                          const char *buffer,
00267                                          int size,
00268                                          const char *URL,
00269                                          const char *encoding,
00270                                          int options);
00271 XMLPUBFUN int XMLCALL
00272                 xmlReaderNewFd          (xmlTextReaderPtr reader,
00273                                          int fd,
00274                                          const char *URL,
00275                                          const char *encoding,
00276                                          int options);
00277 XMLPUBFUN int XMLCALL
00278                 xmlReaderNewIO          (xmlTextReaderPtr reader,
00279                                          xmlInputReadCallback ioread,
00280                                          xmlInputCloseCallback ioclose,
00281                                          void *ioctx,
00282                                          const char *URL,
00283                                          const char *encoding,
00284                                          int options);
00285 /*
00286  * Error handling extensions
00287  */
00288 typedef void *  xmlTextReaderLocatorPtr;
00289 typedef void   (*xmlTextReaderErrorFunc)        (void *arg, 
00290                                                  const char *msg,
00291                                                  xmlParserSeverities severity,
00292                                                  xmlTextReaderLocatorPtr locator);
00293 XMLPUBFUN int XMLCALL             
00294                     xmlTextReaderLocatorLineNumber(xmlTextReaderLocatorPtr locator);
00295 /*int             xmlTextReaderLocatorLinePosition(xmlTextReaderLocatorPtr locator);*/
00296 XMLPUBFUN xmlChar * XMLCALL       
00297                     xmlTextReaderLocatorBaseURI (xmlTextReaderLocatorPtr locator);
00298 XMLPUBFUN void XMLCALL            
00299                     xmlTextReaderSetErrorHandler(xmlTextReaderPtr reader, 
00300                                                  xmlTextReaderErrorFunc f, 
00301                                                  void *arg);
00302 XMLPUBFUN void XMLCALL            
00303                     xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader, 
00304                                                  xmlTextReaderErrorFunc *f, 
00305                                                  void **arg);
00306 
00307 #ifdef __cplusplus
00308 }
00309 #endif
00310 #endif /* __XML_XMLREADER_H__ */
00311 
00312 

Generated on Wed Mar 16 00:10:27 2005 for Dibbler - a portable DHCPv6 by  doxygen 1.3.9.1