2
* Summary: the XMLReader implementation
3
* Description: API of the XML streaming API based on C# interfaces.
5
* Copy: See Copyright for the status of this software.
7
* Author: Daniel Veillard
10
#ifndef __XML_XMLREADER_H__
11
#define __XML_XMLREADER_H__
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>
21
#ifdef LIBXML_READER_ENABLED
30
* Internal state values for the reader.
33
XML_TEXTREADER_MODE_INITIAL = 0,
34
XML_TEXTREADER_MODE_INTERACTIVE = 1,
35
XML_TEXTREADER_MODE_ERROR = 2,
36
XML_TEXTREADER_MODE_EOF =3,
37
XML_TEXTREADER_MODE_CLOSED = 4,
38
XML_TEXTREADER_MODE_READING = 5
42
* xmlParserProperties:
44
* Some common options to use with xmlTextReaderSetParserProp, but it
45
* is better to use xmlParserOption and the xmlReaderNewxxx and
46
* xmlReaderForxxx APIs now.
49
XML_PARSER_LOADDTD = 1,
50
XML_PARSER_DEFAULTATTRS = 2,
51
XML_PARSER_VALIDATE = 3,
52
XML_PARSER_SUBST_ENTITIES = 4
53
} xmlParserProperties;
56
* xmlParserSeverities:
58
* How severe an error callback is when the per-reader error callback API
62
XML_PARSER_SEVERITY_VALIDITY_WARNING = 1,
63
XML_PARSER_SEVERITY_VALIDITY_ERROR = 2,
64
XML_PARSER_SEVERITY_WARNING = 3,
65
XML_PARSER_SEVERITY_ERROR = 4
66
} xmlParserSeverities;
71
* Predefined constants for the different types of nodes.
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
97
* Structure for an xmlReader context.
99
typedef struct _xmlTextReader xmlTextReader;
104
* Pointer to an xmlReader context.
106
typedef xmlTextReader *xmlTextReaderPtr;
109
* Constructors & Destructor
111
XMLPUBFUN xmlTextReaderPtr XMLCALL
112
xmlNewTextReader (xmlParserInputBufferPtr input,
114
XMLPUBFUN xmlTextReaderPtr XMLCALL
115
xmlNewTextReaderFilename(const char *URI);
116
XMLPUBFUN void XMLCALL
117
xmlFreeTextReader (xmlTextReaderPtr reader);
122
XMLPUBFUN int XMLCALL
123
xmlTextReaderRead (xmlTextReaderPtr reader);
124
XMLPUBFUN xmlChar * XMLCALL
125
xmlTextReaderReadInnerXml (xmlTextReaderPtr reader);
126
XMLPUBFUN xmlChar * XMLCALL
127
xmlTextReaderReadOuterXml (xmlTextReaderPtr reader);
128
XMLPUBFUN xmlChar * XMLCALL
129
xmlTextReaderReadString (xmlTextReaderPtr reader);
130
XMLPUBFUN int XMLCALL
131
xmlTextReaderReadAttributeValue (xmlTextReaderPtr reader);
134
* Attributes of the node
136
XMLPUBFUN int XMLCALL
137
xmlTextReaderAttributeCount(xmlTextReaderPtr reader);
138
XMLPUBFUN int XMLCALL
139
xmlTextReaderDepth (xmlTextReaderPtr reader);
140
XMLPUBFUN int XMLCALL
141
xmlTextReaderHasAttributes(xmlTextReaderPtr reader);
142
XMLPUBFUN int XMLCALL
143
xmlTextReaderHasValue(xmlTextReaderPtr reader);
144
XMLPUBFUN int XMLCALL
145
xmlTextReaderIsDefault (xmlTextReaderPtr reader);
146
XMLPUBFUN int XMLCALL
147
xmlTextReaderIsEmptyElement(xmlTextReaderPtr reader);
148
XMLPUBFUN int XMLCALL
149
xmlTextReaderNodeType (xmlTextReaderPtr reader);
150
XMLPUBFUN int XMLCALL
151
xmlTextReaderQuoteChar (xmlTextReaderPtr reader);
152
XMLPUBFUN int XMLCALL
153
xmlTextReaderReadState (xmlTextReaderPtr reader);
154
XMLPUBFUN int XMLCALL
155
xmlTextReaderIsNamespaceDecl(xmlTextReaderPtr reader);
157
XMLPUBFUN const xmlChar * XMLCALL
158
xmlTextReaderConstBaseUri (xmlTextReaderPtr reader);
159
XMLPUBFUN const xmlChar * XMLCALL
160
xmlTextReaderConstLocalName (xmlTextReaderPtr reader);
161
XMLPUBFUN const xmlChar * XMLCALL
162
xmlTextReaderConstName (xmlTextReaderPtr reader);
163
XMLPUBFUN const xmlChar * XMLCALL
164
xmlTextReaderConstNamespaceUri(xmlTextReaderPtr reader);
165
XMLPUBFUN const xmlChar * XMLCALL
166
xmlTextReaderConstPrefix (xmlTextReaderPtr reader);
167
XMLPUBFUN const xmlChar * XMLCALL
168
xmlTextReaderConstXmlLang (xmlTextReaderPtr reader);
169
XMLPUBFUN const xmlChar * XMLCALL
170
xmlTextReaderConstString (xmlTextReaderPtr reader,
172
XMLPUBFUN const xmlChar * XMLCALL
173
xmlTextReaderConstValue (xmlTextReaderPtr reader);
176
* use the Const version of the routine for
177
* better performance and simpler code
179
XMLPUBFUN xmlChar * XMLCALL
180
xmlTextReaderBaseUri (xmlTextReaderPtr reader);
181
XMLPUBFUN xmlChar * XMLCALL
182
xmlTextReaderLocalName (xmlTextReaderPtr reader);
183
XMLPUBFUN xmlChar * XMLCALL
184
xmlTextReaderName (xmlTextReaderPtr reader);
185
XMLPUBFUN xmlChar * XMLCALL
186
xmlTextReaderNamespaceUri(xmlTextReaderPtr reader);
187
XMLPUBFUN xmlChar * XMLCALL
188
xmlTextReaderPrefix (xmlTextReaderPtr reader);
189
XMLPUBFUN xmlChar * XMLCALL
190
xmlTextReaderXmlLang (xmlTextReaderPtr reader);
191
XMLPUBFUN xmlChar * XMLCALL
192
xmlTextReaderValue (xmlTextReaderPtr reader);
195
* Methods of the XmlTextReader
197
XMLPUBFUN int XMLCALL
198
xmlTextReaderClose (xmlTextReaderPtr reader);
199
XMLPUBFUN xmlChar * XMLCALL
200
xmlTextReaderGetAttributeNo (xmlTextReaderPtr reader,
202
XMLPUBFUN xmlChar * XMLCALL
203
xmlTextReaderGetAttribute (xmlTextReaderPtr reader,
204
const xmlChar *name);
205
XMLPUBFUN xmlChar * XMLCALL
206
xmlTextReaderGetAttributeNs (xmlTextReaderPtr reader,
207
const xmlChar *localName,
208
const xmlChar *namespaceURI);
209
XMLPUBFUN xmlParserInputBufferPtr XMLCALL
210
xmlTextReaderGetRemainder (xmlTextReaderPtr reader);
211
XMLPUBFUN xmlChar * XMLCALL
212
xmlTextReaderLookupNamespace(xmlTextReaderPtr reader,
213
const xmlChar *prefix);
214
XMLPUBFUN int XMLCALL
215
xmlTextReaderMoveToAttributeNo(xmlTextReaderPtr reader,
217
XMLPUBFUN int XMLCALL
218
xmlTextReaderMoveToAttribute(xmlTextReaderPtr reader,
219
const xmlChar *name);
220
XMLPUBFUN int XMLCALL
221
xmlTextReaderMoveToAttributeNs(xmlTextReaderPtr reader,
222
const xmlChar *localName,
223
const xmlChar *namespaceURI);
224
XMLPUBFUN int XMLCALL
225
xmlTextReaderMoveToFirstAttribute(xmlTextReaderPtr reader);
226
XMLPUBFUN int XMLCALL
227
xmlTextReaderMoveToNextAttribute(xmlTextReaderPtr reader);
228
XMLPUBFUN int XMLCALL
229
xmlTextReaderMoveToElement (xmlTextReaderPtr reader);
230
XMLPUBFUN int XMLCALL
231
xmlTextReaderNormalization (xmlTextReaderPtr reader);
232
XMLPUBFUN const xmlChar * XMLCALL
233
xmlTextReaderConstEncoding (xmlTextReaderPtr reader);
238
XMLPUBFUN int XMLCALL
239
xmlTextReaderSetParserProp (xmlTextReaderPtr reader,
242
XMLPUBFUN int XMLCALL
243
xmlTextReaderGetParserProp (xmlTextReaderPtr reader,
245
XMLPUBFUN xmlNodePtr XMLCALL
246
xmlTextReaderCurrentNode (xmlTextReaderPtr reader);
248
XMLPUBFUN int XMLCALL
249
xmlTextReaderGetParserLineNumber(xmlTextReaderPtr reader);
251
XMLPUBFUN int XMLCALL
252
xmlTextReaderGetParserColumnNumber(xmlTextReaderPtr reader);
254
XMLPUBFUN xmlNodePtr XMLCALL
255
xmlTextReaderPreserve (xmlTextReaderPtr reader);
256
#ifdef LIBXML_PATTERN_ENABLED
257
XMLPUBFUN int XMLCALL
258
xmlTextReaderPreservePattern(xmlTextReaderPtr reader,
259
const xmlChar *pattern,
260
const xmlChar **namespaces);
261
#endif /* LIBXML_PATTERN_ENABLED */
262
XMLPUBFUN xmlDocPtr XMLCALL
263
xmlTextReaderCurrentDoc (xmlTextReaderPtr reader);
264
XMLPUBFUN xmlNodePtr XMLCALL
265
xmlTextReaderExpand (xmlTextReaderPtr reader);
266
XMLPUBFUN int XMLCALL
267
xmlTextReaderNext (xmlTextReaderPtr reader);
268
XMLPUBFUN int XMLCALL
269
xmlTextReaderNextSibling (xmlTextReaderPtr reader);
270
XMLPUBFUN int XMLCALL
271
xmlTextReaderIsValid (xmlTextReaderPtr reader);
272
#ifdef LIBXML_SCHEMAS_ENABLED
273
XMLPUBFUN int XMLCALL
274
xmlTextReaderRelaxNGValidate(xmlTextReaderPtr reader,
276
XMLPUBFUN int XMLCALL
277
xmlTextReaderRelaxNGSetSchema(xmlTextReaderPtr reader,
278
xmlRelaxNGPtr schema);
279
XMLPUBFUN int XMLCALL
280
xmlTextReaderSchemaValidate (xmlTextReaderPtr reader,
282
XMLPUBFUN int XMLCALL
283
xmlTextReaderSetSchema (xmlTextReaderPtr reader,
284
xmlSchemaPtr schema);
286
XMLPUBFUN const xmlChar * XMLCALL
287
xmlTextReaderConstXmlVersion(xmlTextReaderPtr reader);
288
XMLPUBFUN int XMLCALL
289
xmlTextReaderStandalone (xmlTextReaderPtr reader);
295
XMLPUBFUN long XMLCALL
296
xmlTextReaderByteConsumed (xmlTextReaderPtr reader);
299
* New more complete APIs for simpler creation and reuse of readers
301
XMLPUBFUN xmlTextReaderPtr XMLCALL
302
xmlReaderWalker (xmlDocPtr doc);
303
XMLPUBFUN xmlTextReaderPtr XMLCALL
304
xmlReaderForDoc (const xmlChar * cur,
306
const char *encoding,
308
XMLPUBFUN xmlTextReaderPtr XMLCALL
309
xmlReaderForFile (const char *filename,
310
const char *encoding,
312
XMLPUBFUN xmlTextReaderPtr XMLCALL
313
xmlReaderForMemory (const char *buffer,
316
const char *encoding,
318
XMLPUBFUN xmlTextReaderPtr XMLCALL
319
xmlReaderForFd (int fd,
321
const char *encoding,
323
XMLPUBFUN xmlTextReaderPtr XMLCALL
324
xmlReaderForIO (xmlInputReadCallback ioread,
325
xmlInputCloseCallback ioclose,
328
const char *encoding,
331
XMLPUBFUN int XMLCALL
332
xmlReaderNewWalker (xmlTextReaderPtr reader,
334
XMLPUBFUN int XMLCALL
335
xmlReaderNewDoc (xmlTextReaderPtr reader,
338
const char *encoding,
340
XMLPUBFUN int XMLCALL
341
xmlReaderNewFile (xmlTextReaderPtr reader,
342
const char *filename,
343
const char *encoding,
345
XMLPUBFUN int XMLCALL
346
xmlReaderNewMemory (xmlTextReaderPtr reader,
350
const char *encoding,
352
XMLPUBFUN int XMLCALL
353
xmlReaderNewFd (xmlTextReaderPtr reader,
356
const char *encoding,
358
XMLPUBFUN int XMLCALL
359
xmlReaderNewIO (xmlTextReaderPtr reader,
360
xmlInputReadCallback ioread,
361
xmlInputCloseCallback ioclose,
364
const char *encoding,
367
* Error handling extensions
369
typedef void * xmlTextReaderLocatorPtr;
370
typedef void (XMLCALL *xmlTextReaderErrorFunc) (void *arg,
372
xmlParserSeverities severity,
373
xmlTextReaderLocatorPtr locator);
374
XMLPUBFUN int XMLCALL
375
xmlTextReaderLocatorLineNumber(xmlTextReaderLocatorPtr locator);
376
/*int xmlTextReaderLocatorLinePosition(xmlTextReaderLocatorPtr locator);*/
377
XMLPUBFUN xmlChar * XMLCALL
378
xmlTextReaderLocatorBaseURI (xmlTextReaderLocatorPtr locator);
379
XMLPUBFUN void XMLCALL
380
xmlTextReaderSetErrorHandler(xmlTextReaderPtr reader,
381
xmlTextReaderErrorFunc f,
383
XMLPUBFUN void XMLCALL
384
xmlTextReaderSetStructuredErrorHandler(xmlTextReaderPtr reader,
385
xmlStructuredErrorFunc f,
387
XMLPUBFUN void XMLCALL
388
xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader,
389
xmlTextReaderErrorFunc *f,
396
#endif /* LIBXML_READER_ENABLED */
398
#endif /* __XML_XMLREADER_H__ */