~ubuntu-branches/ubuntu/utopic/libxml2/utopic

« back to all changes in this revision

Viewing changes to include/libxml/xmlreader.h

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Holbach
  • Date: 2005-11-10 20:21:18 UTC
  • Revision ID: james.westby@ubuntu.com-20051110202118-j36kpn33k2as4xwa
Tags: upstream-2.6.22
ImportĀ upstreamĀ versionĀ 2.6.22

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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/xmlIO.h>
 
16
#ifdef LIBXML_SCHEMAS_ENABLED
 
17
#include <libxml/relaxng.h>
 
18
#include <libxml/xmlschemas.h>
 
19
#endif
 
20
 
 
21
#ifdef LIBXML_READER_ENABLED
 
22
 
 
23
#ifdef __cplusplus
 
24
extern "C" {
 
25
#endif
 
26
 
 
27
/**
 
28
 * xmlTextReaderMode:
 
29
 *
 
30
 * Internal state values for the reader.
 
31
 */
 
32
typedef enum {
 
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
 
39
} xmlTextReaderMode;
 
40
 
 
41
/**
 
42
 * xmlParserProperties:
 
43
 *
 
44
 * Some common options to use with xmlTextReaderSetParserProp, but it
 
45
 * is better to use xmlParserOption and the xmlReaderNewxxx and 
 
46
 * xmlReaderForxxx APIs now.
 
47
 */
 
48
typedef enum {
 
49
    XML_PARSER_LOADDTD = 1,
 
50
    XML_PARSER_DEFAULTATTRS = 2,
 
51
    XML_PARSER_VALIDATE = 3,
 
52
    XML_PARSER_SUBST_ENTITIES = 4
 
53
} xmlParserProperties;
 
54
 
 
55
/**
 
56
 * xmlParserSeverities:
 
57
 *
 
58
 * How severe an error callback is when the per-reader error callback API
 
59
 * is used.
 
60
 */
 
61
typedef enum {
 
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;
 
67
 
 
68
/**
 
69
 * xmlReaderTypes:
 
70
 *
 
71
 * Predefined constants for the different types of nodes.
 
72
 */
 
73
typedef enum {
 
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
 
92
} xmlReaderTypes;
 
93
 
 
94
/**
 
95
 * xmlTextReader:
 
96
 *
 
97
 * Structure for an xmlReader context.
 
98
 */
 
99
typedef struct _xmlTextReader xmlTextReader;
 
100
 
 
101
/**
 
102
 * xmlTextReaderPtr:
 
103
 *
 
104
 * Pointer to an xmlReader context.
 
105
 */
 
106
typedef xmlTextReader *xmlTextReaderPtr;
 
107
 
 
108
/*
 
109
 * Constructors & Destructor
 
110
 */
 
111
XMLPUBFUN xmlTextReaderPtr XMLCALL
 
112
                        xmlNewTextReader        (xmlParserInputBufferPtr input,
 
113
                                                 const char *URI);
 
114
XMLPUBFUN xmlTextReaderPtr XMLCALL      
 
115
                        xmlNewTextReaderFilename(const char *URI);
 
116
XMLPUBFUN void XMLCALL                  
 
117
                        xmlFreeTextReader       (xmlTextReaderPtr reader);
 
118
 
 
119
/*
 
120
 * Iterators
 
121
 */
 
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);
 
132
 
 
133
/*
 
134
 * Attributes of the node
 
135
 */
 
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);
 
156
 
 
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,
 
171
                                                 const xmlChar *str);
 
172
XMLPUBFUN const xmlChar * XMLCALL       
 
173
                    xmlTextReaderConstValue     (xmlTextReaderPtr reader);
 
174
 
 
175
/*
 
176
 * use the Const version of the routine for
 
177
 * better performance and simpler code
 
178
 */
 
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);
 
193
 
 
194
/*
 
195
 * Methods of the XmlTextReader
 
196
 */
 
197
XMLPUBFUN int XMLCALL           
 
198
                    xmlTextReaderClose          (xmlTextReaderPtr reader);
 
199
XMLPUBFUN xmlChar * XMLCALL     
 
200
                    xmlTextReaderGetAttributeNo (xmlTextReaderPtr reader,
 
201
                                                 int no);
 
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,
 
216
                                                 int no);
 
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);
 
234
 
 
235
/*
 
236
 * Extensions
 
237
 */
 
238
XMLPUBFUN int XMLCALL           
 
239
                    xmlTextReaderSetParserProp  (xmlTextReaderPtr reader,
 
240
                                                 int prop,
 
241
                                                 int value);
 
242
XMLPUBFUN int XMLCALL           
 
243
                    xmlTextReaderGetParserProp  (xmlTextReaderPtr reader,
 
244
                                                 int prop);
 
245
XMLPUBFUN xmlNodePtr XMLCALL    
 
246
                    xmlTextReaderCurrentNode    (xmlTextReaderPtr reader);
 
247
 
 
248
XMLPUBFUN int XMLCALL
 
249
            xmlTextReaderGetParserLineNumber(xmlTextReaderPtr reader);
 
250
 
 
251
XMLPUBFUN int XMLCALL
 
252
            xmlTextReaderGetParserColumnNumber(xmlTextReaderPtr reader);
 
253
 
 
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,
 
275
                                                 const char *rng);
 
276
XMLPUBFUN int XMLCALL           
 
277
                    xmlTextReaderRelaxNGSetSchema(xmlTextReaderPtr reader,
 
278
                                                 xmlRelaxNGPtr schema);
 
279
XMLPUBFUN int XMLCALL
 
280
                    xmlTextReaderSchemaValidate (xmlTextReaderPtr reader,
 
281
                                                 const char *xsd);
 
282
XMLPUBFUN int XMLCALL           
 
283
                    xmlTextReaderSetSchema      (xmlTextReaderPtr reader,
 
284
                                                 xmlSchemaPtr schema);
 
285
#endif
 
286
XMLPUBFUN const xmlChar * XMLCALL
 
287
                    xmlTextReaderConstXmlVersion(xmlTextReaderPtr reader);
 
288
XMLPUBFUN int XMLCALL
 
289
                    xmlTextReaderStandalone     (xmlTextReaderPtr reader);
 
290
 
 
291
 
 
292
/*
 
293
 * Index lookup
 
294
 */
 
295
XMLPUBFUN long XMLCALL
 
296
                xmlTextReaderByteConsumed       (xmlTextReaderPtr reader);
 
297
 
 
298
/*
 
299
 * New more complete APIs for simpler creation and reuse of readers
 
300
 */
 
301
XMLPUBFUN xmlTextReaderPtr XMLCALL
 
302
                xmlReaderWalker         (xmlDocPtr doc);
 
303
XMLPUBFUN xmlTextReaderPtr XMLCALL
 
304
                xmlReaderForDoc         (const xmlChar * cur,
 
305
                                         const char *URL,
 
306
                                         const char *encoding,
 
307
                                         int options);
 
308
XMLPUBFUN xmlTextReaderPtr XMLCALL
 
309
                xmlReaderForFile        (const char *filename,
 
310
                                         const char *encoding,
 
311
                                         int options);
 
312
XMLPUBFUN xmlTextReaderPtr XMLCALL
 
313
                xmlReaderForMemory      (const char *buffer,
 
314
                                         int size,
 
315
                                         const char *URL,
 
316
                                         const char *encoding,
 
317
                                         int options);
 
318
XMLPUBFUN xmlTextReaderPtr XMLCALL
 
319
                xmlReaderForFd          (int fd,
 
320
                                         const char *URL,
 
321
                                         const char *encoding,
 
322
                                         int options);
 
323
XMLPUBFUN xmlTextReaderPtr XMLCALL
 
324
                xmlReaderForIO          (xmlInputReadCallback ioread,
 
325
                                         xmlInputCloseCallback ioclose,
 
326
                                         void *ioctx,
 
327
                                         const char *URL,
 
328
                                         const char *encoding,
 
329
                                         int options);
 
330
 
 
331
XMLPUBFUN int XMLCALL
 
332
                xmlReaderNewWalker      (xmlTextReaderPtr reader,
 
333
                                         xmlDocPtr doc);
 
334
XMLPUBFUN int XMLCALL
 
335
                xmlReaderNewDoc         (xmlTextReaderPtr reader,
 
336
                                         const xmlChar * cur,
 
337
                                         const char *URL,
 
338
                                         const char *encoding,
 
339
                                         int options);
 
340
XMLPUBFUN int XMLCALL
 
341
                xmlReaderNewFile        (xmlTextReaderPtr reader,
 
342
                                         const char *filename,
 
343
                                         const char *encoding,
 
344
                                         int options);
 
345
XMLPUBFUN int XMLCALL
 
346
                xmlReaderNewMemory      (xmlTextReaderPtr reader,
 
347
                                         const char *buffer,
 
348
                                         int size,
 
349
                                         const char *URL,
 
350
                                         const char *encoding,
 
351
                                         int options);
 
352
XMLPUBFUN int XMLCALL
 
353
                xmlReaderNewFd          (xmlTextReaderPtr reader,
 
354
                                         int fd,
 
355
                                         const char *URL,
 
356
                                         const char *encoding,
 
357
                                         int options);
 
358
XMLPUBFUN int XMLCALL
 
359
                xmlReaderNewIO          (xmlTextReaderPtr reader,
 
360
                                         xmlInputReadCallback ioread,
 
361
                                         xmlInputCloseCallback ioclose,
 
362
                                         void *ioctx,
 
363
                                         const char *URL,
 
364
                                         const char *encoding,
 
365
                                         int options);
 
366
/*
 
367
 * Error handling extensions
 
368
 */
 
369
typedef void *  xmlTextReaderLocatorPtr;
 
370
typedef void   (XMLCALL *xmlTextReaderErrorFunc)        (void *arg, 
 
371
                                                 const char *msg,
 
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, 
 
382
                                                 void *arg);
 
383
XMLPUBFUN void XMLCALL
 
384
                    xmlTextReaderSetStructuredErrorHandler(xmlTextReaderPtr reader,
 
385
                                                           xmlStructuredErrorFunc f,
 
386
                                                           void *arg);
 
387
XMLPUBFUN void XMLCALL            
 
388
                    xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader, 
 
389
                                                 xmlTextReaderErrorFunc *f, 
 
390
                                                 void **arg);
 
391
 
 
392
#ifdef __cplusplus
 
393
}
 
394
#endif
 
395
 
 
396
#endif /* LIBXML_READER_ENABLED */
 
397
 
 
398
#endif /* __XML_XMLREADER_H__ */
 
399