Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wine-mirror
GitHub Repository: wine-mirror/wine
Path: blob/master/libs/xml2/include/libxml/xmlreader.h
4394 views
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/xmlerror.h>
16
#include <libxml/xmlIO.h>
17
#ifdef LIBXML_SCHEMAS_ENABLED
18
#include <libxml/relaxng.h>
19
#include <libxml/xmlschemas.h>
20
#endif
21
/* for compatibility */
22
#include <libxml/parser.h>
23
24
#ifdef __cplusplus
25
extern "C" {
26
#endif
27
28
/**
29
* xmlParserSeverities:
30
*
31
* How severe an error callback is when the per-reader error callback API
32
* is used.
33
*/
34
typedef enum {
35
XML_PARSER_SEVERITY_VALIDITY_WARNING = 1,
36
XML_PARSER_SEVERITY_VALIDITY_ERROR = 2,
37
XML_PARSER_SEVERITY_WARNING = 3,
38
XML_PARSER_SEVERITY_ERROR = 4
39
} xmlParserSeverities;
40
41
#ifdef LIBXML_READER_ENABLED
42
43
/**
44
* xmlTextReaderMode:
45
*
46
* Internal state values for the reader.
47
*/
48
typedef enum {
49
XML_TEXTREADER_MODE_INITIAL = 0,
50
XML_TEXTREADER_MODE_INTERACTIVE = 1,
51
XML_TEXTREADER_MODE_ERROR = 2,
52
XML_TEXTREADER_MODE_EOF =3,
53
XML_TEXTREADER_MODE_CLOSED = 4,
54
XML_TEXTREADER_MODE_READING = 5
55
} xmlTextReaderMode;
56
57
/**
58
* xmlParserProperties:
59
*
60
* Some common options to use with xmlTextReaderSetParserProp, but it
61
* is better to use xmlParserOption and the xmlReaderNewxxx and
62
* xmlReaderForxxx APIs now.
63
*/
64
typedef enum {
65
XML_PARSER_LOADDTD = 1,
66
XML_PARSER_DEFAULTATTRS = 2,
67
XML_PARSER_VALIDATE = 3,
68
XML_PARSER_SUBST_ENTITIES = 4
69
} xmlParserProperties;
70
71
/**
72
* xmlReaderTypes:
73
*
74
* Predefined constants for the different types of nodes.
75
*/
76
typedef enum {
77
XML_READER_TYPE_NONE = 0,
78
XML_READER_TYPE_ELEMENT = 1,
79
XML_READER_TYPE_ATTRIBUTE = 2,
80
XML_READER_TYPE_TEXT = 3,
81
XML_READER_TYPE_CDATA = 4,
82
XML_READER_TYPE_ENTITY_REFERENCE = 5,
83
XML_READER_TYPE_ENTITY = 6,
84
XML_READER_TYPE_PROCESSING_INSTRUCTION = 7,
85
XML_READER_TYPE_COMMENT = 8,
86
XML_READER_TYPE_DOCUMENT = 9,
87
XML_READER_TYPE_DOCUMENT_TYPE = 10,
88
XML_READER_TYPE_DOCUMENT_FRAGMENT = 11,
89
XML_READER_TYPE_NOTATION = 12,
90
XML_READER_TYPE_WHITESPACE = 13,
91
XML_READER_TYPE_SIGNIFICANT_WHITESPACE = 14,
92
XML_READER_TYPE_END_ELEMENT = 15,
93
XML_READER_TYPE_END_ENTITY = 16,
94
XML_READER_TYPE_XML_DECLARATION = 17
95
} xmlReaderTypes;
96
97
/**
98
* xmlTextReader:
99
*
100
* Structure for an xmlReader context.
101
*/
102
typedef struct _xmlTextReader xmlTextReader;
103
104
/**
105
* xmlTextReaderPtr:
106
*
107
* Pointer to an xmlReader context.
108
*/
109
typedef xmlTextReader *xmlTextReaderPtr;
110
111
/*
112
* Constructors & Destructor
113
*/
114
XMLPUBFUN xmlTextReaderPtr
115
xmlNewTextReader (xmlParserInputBufferPtr input,
116
const char *URI);
117
XMLPUBFUN xmlTextReaderPtr
118
xmlNewTextReaderFilename(const char *URI);
119
120
XMLPUBFUN void
121
xmlFreeTextReader (xmlTextReaderPtr reader);
122
123
XMLPUBFUN int
124
xmlTextReaderSetup(xmlTextReaderPtr reader,
125
xmlParserInputBufferPtr input, const char *URL,
126
const char *encoding, int options);
127
XMLPUBFUN void
128
xmlTextReaderSetMaxAmplification(xmlTextReaderPtr reader,
129
unsigned maxAmpl);
130
131
/*
132
* Iterators
133
*/
134
XMLPUBFUN int
135
xmlTextReaderRead (xmlTextReaderPtr reader);
136
137
#ifdef LIBXML_WRITER_ENABLED
138
XMLPUBFUN xmlChar *
139
xmlTextReaderReadInnerXml(xmlTextReaderPtr reader);
140
141
XMLPUBFUN xmlChar *
142
xmlTextReaderReadOuterXml(xmlTextReaderPtr reader);
143
#endif
144
145
XMLPUBFUN xmlChar *
146
xmlTextReaderReadString (xmlTextReaderPtr reader);
147
XMLPUBFUN int
148
xmlTextReaderReadAttributeValue(xmlTextReaderPtr reader);
149
150
/*
151
* Attributes of the node
152
*/
153
XMLPUBFUN int
154
xmlTextReaderAttributeCount(xmlTextReaderPtr reader);
155
XMLPUBFUN int
156
xmlTextReaderDepth (xmlTextReaderPtr reader);
157
XMLPUBFUN int
158
xmlTextReaderHasAttributes(xmlTextReaderPtr reader);
159
XMLPUBFUN int
160
xmlTextReaderHasValue(xmlTextReaderPtr reader);
161
XMLPUBFUN int
162
xmlTextReaderIsDefault (xmlTextReaderPtr reader);
163
XMLPUBFUN int
164
xmlTextReaderIsEmptyElement(xmlTextReaderPtr reader);
165
XMLPUBFUN int
166
xmlTextReaderNodeType (xmlTextReaderPtr reader);
167
XMLPUBFUN int
168
xmlTextReaderQuoteChar (xmlTextReaderPtr reader);
169
XMLPUBFUN int
170
xmlTextReaderReadState (xmlTextReaderPtr reader);
171
XMLPUBFUN int
172
xmlTextReaderIsNamespaceDecl(xmlTextReaderPtr reader);
173
174
XMLPUBFUN const xmlChar *
175
xmlTextReaderConstBaseUri (xmlTextReaderPtr reader);
176
XMLPUBFUN const xmlChar *
177
xmlTextReaderConstLocalName (xmlTextReaderPtr reader);
178
XMLPUBFUN const xmlChar *
179
xmlTextReaderConstName (xmlTextReaderPtr reader);
180
XMLPUBFUN const xmlChar *
181
xmlTextReaderConstNamespaceUri(xmlTextReaderPtr reader);
182
XMLPUBFUN const xmlChar *
183
xmlTextReaderConstPrefix (xmlTextReaderPtr reader);
184
XMLPUBFUN const xmlChar *
185
xmlTextReaderConstXmlLang (xmlTextReaderPtr reader);
186
XMLPUBFUN const xmlChar *
187
xmlTextReaderConstString (xmlTextReaderPtr reader,
188
const xmlChar *str);
189
XMLPUBFUN const xmlChar *
190
xmlTextReaderConstValue (xmlTextReaderPtr reader);
191
192
/*
193
* use the Const version of the routine for
194
* better performance and simpler code
195
*/
196
XMLPUBFUN xmlChar *
197
xmlTextReaderBaseUri (xmlTextReaderPtr reader);
198
XMLPUBFUN xmlChar *
199
xmlTextReaderLocalName (xmlTextReaderPtr reader);
200
XMLPUBFUN xmlChar *
201
xmlTextReaderName (xmlTextReaderPtr reader);
202
XMLPUBFUN xmlChar *
203
xmlTextReaderNamespaceUri(xmlTextReaderPtr reader);
204
XMLPUBFUN xmlChar *
205
xmlTextReaderPrefix (xmlTextReaderPtr reader);
206
XMLPUBFUN xmlChar *
207
xmlTextReaderXmlLang (xmlTextReaderPtr reader);
208
XMLPUBFUN xmlChar *
209
xmlTextReaderValue (xmlTextReaderPtr reader);
210
211
/*
212
* Methods of the XmlTextReader
213
*/
214
XMLPUBFUN int
215
xmlTextReaderClose (xmlTextReaderPtr reader);
216
XMLPUBFUN xmlChar *
217
xmlTextReaderGetAttributeNo (xmlTextReaderPtr reader,
218
int no);
219
XMLPUBFUN xmlChar *
220
xmlTextReaderGetAttribute (xmlTextReaderPtr reader,
221
const xmlChar *name);
222
XMLPUBFUN xmlChar *
223
xmlTextReaderGetAttributeNs (xmlTextReaderPtr reader,
224
const xmlChar *localName,
225
const xmlChar *namespaceURI);
226
XMLPUBFUN xmlParserInputBufferPtr
227
xmlTextReaderGetRemainder (xmlTextReaderPtr reader);
228
XMLPUBFUN xmlChar *
229
xmlTextReaderLookupNamespace(xmlTextReaderPtr reader,
230
const xmlChar *prefix);
231
XMLPUBFUN int
232
xmlTextReaderMoveToAttributeNo(xmlTextReaderPtr reader,
233
int no);
234
XMLPUBFUN int
235
xmlTextReaderMoveToAttribute(xmlTextReaderPtr reader,
236
const xmlChar *name);
237
XMLPUBFUN int
238
xmlTextReaderMoveToAttributeNs(xmlTextReaderPtr reader,
239
const xmlChar *localName,
240
const xmlChar *namespaceURI);
241
XMLPUBFUN int
242
xmlTextReaderMoveToFirstAttribute(xmlTextReaderPtr reader);
243
XMLPUBFUN int
244
xmlTextReaderMoveToNextAttribute(xmlTextReaderPtr reader);
245
XMLPUBFUN int
246
xmlTextReaderMoveToElement (xmlTextReaderPtr reader);
247
XMLPUBFUN int
248
xmlTextReaderNormalization (xmlTextReaderPtr reader);
249
XMLPUBFUN const xmlChar *
250
xmlTextReaderConstEncoding (xmlTextReaderPtr reader);
251
252
/*
253
* Extensions
254
*/
255
XMLPUBFUN int
256
xmlTextReaderSetParserProp (xmlTextReaderPtr reader,
257
int prop,
258
int value);
259
XMLPUBFUN int
260
xmlTextReaderGetParserProp (xmlTextReaderPtr reader,
261
int prop);
262
XMLPUBFUN xmlNodePtr
263
xmlTextReaderCurrentNode (xmlTextReaderPtr reader);
264
265
XMLPUBFUN int
266
xmlTextReaderGetParserLineNumber(xmlTextReaderPtr reader);
267
268
XMLPUBFUN int
269
xmlTextReaderGetParserColumnNumber(xmlTextReaderPtr reader);
270
271
XMLPUBFUN xmlNodePtr
272
xmlTextReaderPreserve (xmlTextReaderPtr reader);
273
#ifdef LIBXML_PATTERN_ENABLED
274
XMLPUBFUN int
275
xmlTextReaderPreservePattern(xmlTextReaderPtr reader,
276
const xmlChar *pattern,
277
const xmlChar **namespaces);
278
#endif /* LIBXML_PATTERN_ENABLED */
279
XMLPUBFUN xmlDocPtr
280
xmlTextReaderCurrentDoc (xmlTextReaderPtr reader);
281
XMLPUBFUN xmlNodePtr
282
xmlTextReaderExpand (xmlTextReaderPtr reader);
283
XMLPUBFUN int
284
xmlTextReaderNext (xmlTextReaderPtr reader);
285
XMLPUBFUN int
286
xmlTextReaderNextSibling (xmlTextReaderPtr reader);
287
XMLPUBFUN int
288
xmlTextReaderIsValid (xmlTextReaderPtr reader);
289
#ifdef LIBXML_SCHEMAS_ENABLED
290
XMLPUBFUN int
291
xmlTextReaderRelaxNGValidate(xmlTextReaderPtr reader,
292
const char *rng);
293
XMLPUBFUN int
294
xmlTextReaderRelaxNGValidateCtxt(xmlTextReaderPtr reader,
295
xmlRelaxNGValidCtxtPtr ctxt,
296
int options);
297
298
XMLPUBFUN int
299
xmlTextReaderRelaxNGSetSchema(xmlTextReaderPtr reader,
300
xmlRelaxNGPtr schema);
301
XMLPUBFUN int
302
xmlTextReaderSchemaValidate (xmlTextReaderPtr reader,
303
const char *xsd);
304
XMLPUBFUN int
305
xmlTextReaderSchemaValidateCtxt(xmlTextReaderPtr reader,
306
xmlSchemaValidCtxtPtr ctxt,
307
int options);
308
XMLPUBFUN int
309
xmlTextReaderSetSchema (xmlTextReaderPtr reader,
310
xmlSchemaPtr schema);
311
#endif
312
XMLPUBFUN const xmlChar *
313
xmlTextReaderConstXmlVersion(xmlTextReaderPtr reader);
314
XMLPUBFUN int
315
xmlTextReaderStandalone (xmlTextReaderPtr reader);
316
317
318
/*
319
* Index lookup
320
*/
321
XMLPUBFUN long
322
xmlTextReaderByteConsumed (xmlTextReaderPtr reader);
323
324
/*
325
* New more complete APIs for simpler creation and reuse of readers
326
*/
327
XMLPUBFUN xmlTextReaderPtr
328
xmlReaderWalker (xmlDocPtr doc);
329
XMLPUBFUN xmlTextReaderPtr
330
xmlReaderForDoc (const xmlChar * cur,
331
const char *URL,
332
const char *encoding,
333
int options);
334
XMLPUBFUN xmlTextReaderPtr
335
xmlReaderForFile (const char *filename,
336
const char *encoding,
337
int options);
338
XMLPUBFUN xmlTextReaderPtr
339
xmlReaderForMemory (const char *buffer,
340
int size,
341
const char *URL,
342
const char *encoding,
343
int options);
344
XMLPUBFUN xmlTextReaderPtr
345
xmlReaderForFd (int fd,
346
const char *URL,
347
const char *encoding,
348
int options);
349
XMLPUBFUN xmlTextReaderPtr
350
xmlReaderForIO (xmlInputReadCallback ioread,
351
xmlInputCloseCallback ioclose,
352
void *ioctx,
353
const char *URL,
354
const char *encoding,
355
int options);
356
357
XMLPUBFUN int
358
xmlReaderNewWalker (xmlTextReaderPtr reader,
359
xmlDocPtr doc);
360
XMLPUBFUN int
361
xmlReaderNewDoc (xmlTextReaderPtr reader,
362
const xmlChar * cur,
363
const char *URL,
364
const char *encoding,
365
int options);
366
XMLPUBFUN int
367
xmlReaderNewFile (xmlTextReaderPtr reader,
368
const char *filename,
369
const char *encoding,
370
int options);
371
XMLPUBFUN int
372
xmlReaderNewMemory (xmlTextReaderPtr reader,
373
const char *buffer,
374
int size,
375
const char *URL,
376
const char *encoding,
377
int options);
378
XMLPUBFUN int
379
xmlReaderNewFd (xmlTextReaderPtr reader,
380
int fd,
381
const char *URL,
382
const char *encoding,
383
int options);
384
XMLPUBFUN int
385
xmlReaderNewIO (xmlTextReaderPtr reader,
386
xmlInputReadCallback ioread,
387
xmlInputCloseCallback ioclose,
388
void *ioctx,
389
const char *URL,
390
const char *encoding,
391
int options);
392
/*
393
* Error handling extensions
394
*/
395
typedef void * xmlTextReaderLocatorPtr;
396
397
/**
398
* xmlTextReaderErrorFunc:
399
* @arg: the user argument
400
* @msg: the message
401
* @severity: the severity of the error
402
* @locator: a locator indicating where the error occurred
403
*
404
* Signature of an error callback from a reader parser
405
*/
406
typedef void (*xmlTextReaderErrorFunc)(void *arg,
407
const char *msg,
408
xmlParserSeverities severity,
409
xmlTextReaderLocatorPtr locator);
410
XMLPUBFUN int
411
xmlTextReaderLocatorLineNumber(xmlTextReaderLocatorPtr locator);
412
XMLPUBFUN xmlChar *
413
xmlTextReaderLocatorBaseURI (xmlTextReaderLocatorPtr locator);
414
XMLPUBFUN void
415
xmlTextReaderSetErrorHandler(xmlTextReaderPtr reader,
416
xmlTextReaderErrorFunc f,
417
void *arg);
418
XMLPUBFUN void
419
xmlTextReaderSetStructuredErrorHandler(xmlTextReaderPtr reader,
420
xmlStructuredErrorFunc f,
421
void *arg);
422
XMLPUBFUN void
423
xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader,
424
xmlTextReaderErrorFunc *f,
425
void **arg);
426
427
#endif /* LIBXML_READER_ENABLED */
428
429
#ifdef __cplusplus
430
}
431
#endif
432
433
#endif /* __XML_XMLREADER_H__ */
434
435