Daniel Veillard | e1ca503 | 2002-12-09 14:13:43 +0000 | [diff] [blame] | 1 | /* |
| 2 | * xmlreader.h : Interfaces, constants and types of the XML streaming API. |
| 3 | * |
| 4 | * See Copyright for the status of this software. |
| 5 | * |
| 6 | * daniel@veillard.com |
| 7 | */ |
| 8 | |
| 9 | #ifndef __XML_XMLREADER_H__ |
| 10 | #define __XML_XMLREADER_H__ |
| 11 | |
Igor Zlatkovic | 76874e4 | 2003-08-25 09:05:12 +0000 | [diff] [blame] | 12 | #include <libxml/xmlversion.h> |
Daniel Veillard | e1ca503 | 2002-12-09 14:13:43 +0000 | [diff] [blame] | 13 | #include <libxml/tree.h> |
| 14 | #include <libxml/xmlIO.h> |
Daniel Veillard | 33300b4 | 2003-04-17 09:09:19 +0000 | [diff] [blame] | 15 | #ifdef LIBXML_SCHEMAS_ENABLED |
| 16 | #include <libxml/relaxng.h> |
| 17 | #endif |
Daniel Veillard | e1ca503 | 2002-12-09 14:13:43 +0000 | [diff] [blame] | 18 | |
| 19 | #ifdef __cplusplus |
| 20 | extern "C" { |
| 21 | #endif |
| 22 | |
Daniel Veillard | beb70bd | 2002-12-18 14:53:54 +0000 | [diff] [blame] | 23 | typedef enum { |
| 24 | XML_PARSER_LOADDTD = 1, |
Daniel Veillard | e18fc18 | 2002-12-28 22:56:33 +0000 | [diff] [blame] | 25 | XML_PARSER_DEFAULTATTRS = 2, |
| 26 | XML_PARSER_VALIDATE = 3, |
| 27 | XML_PARSER_SUBST_ENTITIES = 4 |
Daniel Veillard | beb70bd | 2002-12-18 14:53:54 +0000 | [diff] [blame] | 28 | } xmlParserProperties; |
| 29 | |
Daniel Veillard | 26f7026 | 2003-01-16 22:45:08 +0000 | [diff] [blame] | 30 | typedef enum { |
Daniel Veillard | 417be3a | 2003-01-20 21:26:34 +0000 | [diff] [blame] | 31 | XML_PARSER_SEVERITY_VALIDITY_WARNING = 1, |
| 32 | XML_PARSER_SEVERITY_VALIDITY_ERROR = 2, |
| 33 | XML_PARSER_SEVERITY_WARNING = 3, |
| 34 | XML_PARSER_SEVERITY_ERROR = 4 |
| 35 | } xmlParserSeverities; |
Daniel Veillard | 26f7026 | 2003-01-16 22:45:08 +0000 | [diff] [blame] | 36 | |
Daniel Veillard | 0ab6fa0 | 2003-08-09 18:01:53 +0000 | [diff] [blame] | 37 | typedef enum { |
Daniel Veillard | d6038e0 | 2003-07-30 16:37:18 +0000 | [diff] [blame] | 38 | XML_READER_TYPE_NONE = 0, |
| 39 | XML_READER_TYPE_ELEMENT = 1, |
| 40 | XML_READER_TYPE_ATTRIBUTE = 2, |
| 41 | XML_READER_TYPE_TEXT = 3, |
| 42 | XML_READER_TYPE_CDATA = 4, |
| 43 | XML_READER_TYPE_ENTITY_REFERENCE = 5, |
| 44 | XML_READER_TYPE_ENTITY = 6, |
| 45 | XML_READER_TYPE_PROCESSING_INSTRUCTION = 7, |
| 46 | XML_READER_TYPE_COMMENT = 8, |
| 47 | XML_READER_TYPE_DOCUMENT = 9, |
| 48 | XML_READER_TYPE_DOCUMENT_TYPE = 10, |
| 49 | XML_READER_TYPE_DOCUMENT_FRAGMENT = 11, |
| 50 | XML_READER_TYPE_NOTATION = 12, |
| 51 | XML_READER_TYPE_WHITESPACE = 13, |
| 52 | XML_READER_TYPE_SIGNIFICANT_WHITESPACE = 14, |
| 53 | XML_READER_TYPE_END_ELEMENT = 15, |
| 54 | XML_READER_TYPE_END_ENTITY = 16, |
| 55 | XML_READER_TYPE_XML_DECLARATION = 17 |
Daniel Veillard | 0ab6fa0 | 2003-08-09 18:01:53 +0000 | [diff] [blame] | 56 | } xmlReaderTypes; |
Daniel Veillard | d6038e0 | 2003-07-30 16:37:18 +0000 | [diff] [blame] | 57 | |
Daniel Veillard | e1ca503 | 2002-12-09 14:13:43 +0000 | [diff] [blame] | 58 | typedef struct _xmlTextReader xmlTextReader; |
| 59 | typedef xmlTextReader *xmlTextReaderPtr; |
| 60 | |
| 61 | /* |
| 62 | * Constructors & Destructor |
| 63 | */ |
Igor Zlatkovic | 76874e4 | 2003-08-25 09:05:12 +0000 | [diff] [blame] | 64 | XMLPUBFUN xmlTextReaderPtr XMLCALL |
| 65 | xmlNewTextReader (xmlParserInputBufferPtr input, |
Daniel Veillard | ea7751d | 2002-12-20 00:16:24 +0000 | [diff] [blame] | 66 | const char *URI); |
Igor Zlatkovic | aa3cfbd | 2003-08-27 08:59:58 +0000 | [diff] [blame^] | 67 | XMLPUBFUN xmlTextReaderPtr XMLCALL |
| 68 | xmlNewTextReaderFilename(const char *URI); |
| 69 | XMLPUBFUN void XMLCALL |
| 70 | xmlFreeTextReader (xmlTextReaderPtr reader); |
Daniel Veillard | e1ca503 | 2002-12-09 14:13:43 +0000 | [diff] [blame] | 71 | |
| 72 | /* |
| 73 | * Iterators |
| 74 | */ |
Igor Zlatkovic | aa3cfbd | 2003-08-27 08:59:58 +0000 | [diff] [blame^] | 75 | XMLPUBFUN int XMLCALL |
| 76 | xmlTextReaderRead (xmlTextReaderPtr reader); |
| 77 | XMLPUBFUN xmlChar * XMLCALL |
| 78 | xmlTextReaderReadInnerXml (xmlTextReaderPtr reader); |
| 79 | XMLPUBFUN xmlChar * XMLCALL |
| 80 | xmlTextReaderReadOuterXml (xmlTextReaderPtr reader); |
| 81 | XMLPUBFUN xmlChar * XMLCALL |
| 82 | xmlTextReaderReadString (xmlTextReaderPtr reader); |
| 83 | XMLPUBFUN int XMLCALL |
| 84 | xmlTextReaderReadAttributeValue (xmlTextReaderPtr reader); |
Daniel Veillard | e1ca503 | 2002-12-09 14:13:43 +0000 | [diff] [blame] | 85 | |
| 86 | /* |
| 87 | * Attributes of the node |
| 88 | */ |
Igor Zlatkovic | aa3cfbd | 2003-08-27 08:59:58 +0000 | [diff] [blame^] | 89 | XMLPUBFUN int XMLCALL |
| 90 | xmlTextReaderAttributeCount(xmlTextReaderPtr reader); |
| 91 | XMLPUBFUN xmlChar * XMLCALL |
| 92 | xmlTextReaderBaseUri (xmlTextReaderPtr reader); |
| 93 | XMLPUBFUN int XMLCALL |
| 94 | xmlTextReaderDepth (xmlTextReaderPtr reader); |
| 95 | XMLPUBFUN int XMLCALL |
| 96 | xmlTextReaderHasAttributes(xmlTextReaderPtr reader); |
| 97 | XMLPUBFUN int XMLCALL |
| 98 | xmlTextReaderHasValue(xmlTextReaderPtr reader); |
| 99 | XMLPUBFUN int XMLCALL |
| 100 | xmlTextReaderIsDefault (xmlTextReaderPtr reader); |
| 101 | XMLPUBFUN int XMLCALL |
| 102 | xmlTextReaderIsEmptyElement(xmlTextReaderPtr reader); |
| 103 | XMLPUBFUN xmlChar * XMLCALL |
| 104 | xmlTextReaderLocalName (xmlTextReaderPtr reader); |
| 105 | XMLPUBFUN xmlChar * XMLCALL |
| 106 | xmlTextReaderName (xmlTextReaderPtr reader); |
| 107 | XMLPUBFUN xmlChar * XMLCALL |
| 108 | xmlTextReaderNamespaceUri(xmlTextReaderPtr reader); |
| 109 | XMLPUBFUN int XMLCALL |
| 110 | xmlTextReaderNodeType (xmlTextReaderPtr reader); |
| 111 | XMLPUBFUN xmlChar * XMLCALL |
| 112 | xmlTextReaderPrefix (xmlTextReaderPtr reader); |
| 113 | XMLPUBFUN int XMLCALL |
| 114 | xmlTextReaderQuoteChar (xmlTextReaderPtr reader); |
| 115 | XMLPUBFUN xmlChar * XMLCALL |
| 116 | xmlTextReaderValue (xmlTextReaderPtr reader); |
| 117 | XMLPUBFUN xmlChar * XMLCALL |
| 118 | xmlTextReaderXmlLang (xmlTextReaderPtr reader); |
| 119 | XMLPUBFUN int XMLCALL |
| 120 | xmlTextReaderReadState (xmlTextReaderPtr reader); |
Daniel Veillard | 0eb38c7 | 2002-12-14 23:00:35 +0000 | [diff] [blame] | 121 | |
| 122 | /* |
| 123 | * Methods of the XmlTextReader |
| 124 | */ |
Igor Zlatkovic | aa3cfbd | 2003-08-27 08:59:58 +0000 | [diff] [blame^] | 125 | XMLPUBFUN int XMLCALL |
| 126 | xmlTextReaderClose (xmlTextReaderPtr reader); |
| 127 | XMLPUBFUN xmlChar * XMLCALL |
| 128 | xmlTextReaderGetAttributeNo (xmlTextReaderPtr reader, |
Daniel Veillard | 0eb38c7 | 2002-12-14 23:00:35 +0000 | [diff] [blame] | 129 | int no); |
Igor Zlatkovic | aa3cfbd | 2003-08-27 08:59:58 +0000 | [diff] [blame^] | 130 | XMLPUBFUN xmlChar * XMLCALL |
| 131 | xmlTextReaderGetAttribute (xmlTextReaderPtr reader, |
Daniel Veillard | 0eb38c7 | 2002-12-14 23:00:35 +0000 | [diff] [blame] | 132 | const xmlChar *name); |
Igor Zlatkovic | aa3cfbd | 2003-08-27 08:59:58 +0000 | [diff] [blame^] | 133 | XMLPUBFUN xmlChar * XMLCALL |
| 134 | xmlTextReaderGetAttributeNs (xmlTextReaderPtr reader, |
Daniel Veillard | 0eb38c7 | 2002-12-14 23:00:35 +0000 | [diff] [blame] | 135 | const xmlChar *localName, |
| 136 | const xmlChar *namespaceURI); |
Igor Zlatkovic | aa3cfbd | 2003-08-27 08:59:58 +0000 | [diff] [blame^] | 137 | XMLPUBFUN xmlParserInputBufferPtr XMLCALL |
| 138 | xmlTextReaderGetRemainder (xmlTextReaderPtr reader); |
| 139 | XMLPUBFUN xmlChar * XMLCALL |
| 140 | xmlTextReaderLookupNamespace(xmlTextReaderPtr reader, |
Daniel Veillard | da46d2d | 2002-12-15 23:36:49 +0000 | [diff] [blame] | 141 | const xmlChar *prefix); |
Igor Zlatkovic | aa3cfbd | 2003-08-27 08:59:58 +0000 | [diff] [blame^] | 142 | XMLPUBFUN int XMLCALL |
| 143 | xmlTextReaderMoveToAttributeNo(xmlTextReaderPtr reader, |
Daniel Veillard | da46d2d | 2002-12-15 23:36:49 +0000 | [diff] [blame] | 144 | int no); |
Igor Zlatkovic | aa3cfbd | 2003-08-27 08:59:58 +0000 | [diff] [blame^] | 145 | XMLPUBFUN int XMLCALL |
| 146 | xmlTextReaderMoveToAttribute(xmlTextReaderPtr reader, |
Daniel Veillard | da46d2d | 2002-12-15 23:36:49 +0000 | [diff] [blame] | 147 | const xmlChar *name); |
Igor Zlatkovic | aa3cfbd | 2003-08-27 08:59:58 +0000 | [diff] [blame^] | 148 | XMLPUBFUN int XMLCALL |
| 149 | xmlTextReaderMoveToAttributeNs(xmlTextReaderPtr reader, |
Daniel Veillard | da46d2d | 2002-12-15 23:36:49 +0000 | [diff] [blame] | 150 | const xmlChar *localName, |
| 151 | const xmlChar *namespaceURI); |
Igor Zlatkovic | aa3cfbd | 2003-08-27 08:59:58 +0000 | [diff] [blame^] | 152 | XMLPUBFUN int XMLCALL |
| 153 | xmlTextReaderMoveToFirstAttribute(xmlTextReaderPtr reader); |
| 154 | XMLPUBFUN int XMLCALL |
| 155 | xmlTextReaderMoveToNextAttribute(xmlTextReaderPtr reader); |
| 156 | XMLPUBFUN int XMLCALL |
| 157 | xmlTextReaderMoveToElement (xmlTextReaderPtr reader); |
| 158 | XMLPUBFUN int XMLCALL |
| 159 | xmlTextReaderNormalization (xmlTextReaderPtr reader); |
Daniel Veillard | da46d2d | 2002-12-15 23:36:49 +0000 | [diff] [blame] | 160 | |
Daniel Veillard | beb70bd | 2002-12-18 14:53:54 +0000 | [diff] [blame] | 161 | /* |
| 162 | * Extensions |
| 163 | */ |
Igor Zlatkovic | aa3cfbd | 2003-08-27 08:59:58 +0000 | [diff] [blame^] | 164 | XMLPUBFUN int XMLCALL |
| 165 | xmlTextReaderSetParserProp (xmlTextReaderPtr reader, |
Daniel Veillard | beb70bd | 2002-12-18 14:53:54 +0000 | [diff] [blame] | 166 | int prop, |
| 167 | int value); |
Igor Zlatkovic | aa3cfbd | 2003-08-27 08:59:58 +0000 | [diff] [blame^] | 168 | XMLPUBFUN int XMLCALL |
| 169 | xmlTextReaderGetParserProp (xmlTextReaderPtr reader, |
Daniel Veillard | beb70bd | 2002-12-18 14:53:54 +0000 | [diff] [blame] | 170 | int prop); |
Igor Zlatkovic | aa3cfbd | 2003-08-27 08:59:58 +0000 | [diff] [blame^] | 171 | XMLPUBFUN xmlNodePtr XMLCALL |
| 172 | xmlTextReaderCurrentNode (xmlTextReaderPtr reader); |
| 173 | XMLPUBFUN xmlDocPtr XMLCALL |
| 174 | xmlTextReaderCurrentDoc (xmlTextReaderPtr reader); |
| 175 | XMLPUBFUN xmlNodePtr XMLCALL |
| 176 | xmlTextReaderExpand (xmlTextReaderPtr reader); |
| 177 | XMLPUBFUN int XMLCALL |
| 178 | xmlTextReaderNext (xmlTextReaderPtr reader); |
| 179 | XMLPUBFUN int XMLCALL |
| 180 | xmlTextReaderIsValid (xmlTextReaderPtr reader); |
Daniel Veillard | f4e5576 | 2003-04-15 23:32:22 +0000 | [diff] [blame] | 181 | #ifdef LIBXML_SCHEMAS_ENABLED |
Igor Zlatkovic | aa3cfbd | 2003-08-27 08:59:58 +0000 | [diff] [blame^] | 182 | XMLPUBFUN int XMLCALL |
| 183 | xmlTextReaderRelaxNGValidate(xmlTextReaderPtr reader, |
Daniel Veillard | f4e5576 | 2003-04-15 23:32:22 +0000 | [diff] [blame] | 184 | const char *rng); |
Igor Zlatkovic | aa3cfbd | 2003-08-27 08:59:58 +0000 | [diff] [blame^] | 185 | XMLPUBFUN int XMLCALL |
| 186 | xmlTextReaderRelaxNGSetSchema(xmlTextReaderPtr reader, |
Daniel Veillard | 33300b4 | 2003-04-17 09:09:19 +0000 | [diff] [blame] | 187 | xmlRelaxNGPtr schema); |
Daniel Veillard | f4e5576 | 2003-04-15 23:32:22 +0000 | [diff] [blame] | 188 | #endif |
Daniel Veillard | 26f7026 | 2003-01-16 22:45:08 +0000 | [diff] [blame] | 189 | |
| 190 | /* |
| 191 | * Error handling extensions |
| 192 | */ |
Daniel Veillard | 417be3a | 2003-01-20 21:26:34 +0000 | [diff] [blame] | 193 | typedef void * xmlTextReaderLocatorPtr; |
| 194 | typedef void (*xmlTextReaderErrorFunc) (void *arg, |
Daniel Veillard | 26f7026 | 2003-01-16 22:45:08 +0000 | [diff] [blame] | 195 | const char *msg, |
Daniel Veillard | 417be3a | 2003-01-20 21:26:34 +0000 | [diff] [blame] | 196 | xmlParserSeverities severity, |
| 197 | xmlTextReaderLocatorPtr locator); |
Igor Zlatkovic | aa3cfbd | 2003-08-27 08:59:58 +0000 | [diff] [blame^] | 198 | XMLPUBFUN int XMLCALL |
| 199 | xmlTextReaderLocatorLineNumber(xmlTextReaderLocatorPtr locator); |
Daniel Veillard | 417be3a | 2003-01-20 21:26:34 +0000 | [diff] [blame] | 200 | /*int xmlTextReaderLocatorLinePosition(xmlTextReaderLocatorPtr locator);*/ |
Igor Zlatkovic | aa3cfbd | 2003-08-27 08:59:58 +0000 | [diff] [blame^] | 201 | XMLPUBFUN xmlChar * XMLCALL |
| 202 | xmlTextReaderLocatorBaseURI (xmlTextReaderLocatorPtr locator); |
| 203 | XMLPUBFUN void XMLCALL |
| 204 | xmlTextReaderSetErrorHandler(xmlTextReaderPtr reader, |
Daniel Veillard | 26f7026 | 2003-01-16 22:45:08 +0000 | [diff] [blame] | 205 | xmlTextReaderErrorFunc f, |
| 206 | void *arg); |
Igor Zlatkovic | aa3cfbd | 2003-08-27 08:59:58 +0000 | [diff] [blame^] | 207 | XMLPUBFUN void XMLCALL |
| 208 | xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader, |
Daniel Veillard | 26f7026 | 2003-01-16 22:45:08 +0000 | [diff] [blame] | 209 | xmlTextReaderErrorFunc *f, |
| 210 | void **arg); |
| 211 | |
Daniel Veillard | e1ca503 | 2002-12-09 14:13:43 +0000 | [diff] [blame] | 212 | #ifdef __cplusplus |
| 213 | } |
| 214 | #endif |
| 215 | #endif /* __XML_XMLREADER_H__ */ |
| 216 | |