|
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 * Portion Copyright © 2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. |
|
9 */ |
|
10 |
|
11 /** @file |
|
12 @publishedAll |
|
13 @released |
|
14 */ |
|
15 |
|
16 #ifndef XML_XMLREADER_H |
|
17 #define XML_XMLREADER_H |
|
18 |
|
19 #include <libxml2_tree.h> |
|
20 #include <libxml2_xmlio.h> |
|
21 |
|
22 #ifdef LIBXML_SCHEMAS_ENABLED |
|
23 #include "libxml2_relaxng.h" |
|
24 #include "libxml2_xmlschemas.h" |
|
25 #endif |
|
26 |
|
27 // XMLENGINE: This set of header was moved here from .c file |
|
28 |
|
29 #ifdef LIBXML_SCHEMAS_ENABLED |
|
30 #include "libxml2_relaxng.h" |
|
31 #endif |
|
32 |
|
33 #ifdef LIBXML_XINCLUDE_ENABLED |
|
34 #include "libxml2_xinclude.h" |
|
35 #endif |
|
36 |
|
37 #ifdef LIBXML_PATTERN_ENABLED |
|
38 #include "libxml2_pattern.h" |
|
39 #endif |
|
40 //---------------------------------------------------------- |
|
41 |
|
42 #ifdef LIBXML_READER_ENABLED |
|
43 |
|
44 #ifdef __cplusplus |
|
45 extern "C" { |
|
46 #endif |
|
47 |
|
48 /** |
|
49 * xmlTextReaderMode: |
|
50 * |
|
51 * Internal state values for the reader. |
|
52 */ |
|
53 typedef enum { |
|
54 XML_TEXTREADER_MODE_INITIAL = 0, |
|
55 XML_TEXTREADER_MODE_INTERACTIVE = 1, |
|
56 XML_TEXTREADER_MODE_ERROR = 2, |
|
57 XML_TEXTREADER_MODE_EOF =3, |
|
58 XML_TEXTREADER_MODE_CLOSED = 4, |
|
59 XML_TEXTREADER_MODE_READING = 5 |
|
60 } xmlTextReaderMode; |
|
61 |
|
62 /** |
|
63 * xmlParserProperties: |
|
64 * |
|
65 * Some common options to use with xmlTextReaderSetParserProp, but it |
|
66 * is better to use xmlParserOption and the xmlReaderNewxxx and |
|
67 * xmlReaderForxxx APIs now. |
|
68 */ |
|
69 typedef enum { |
|
70 XML_PARSER_LOADDTD = 1, |
|
71 XML_PARSER_DEFAULTATTRS = 2, |
|
72 XML_PARSER_VALIDATE = 3, |
|
73 XML_PARSER_SUBST_ENTITIES = 4 |
|
74 } xmlParserProperties; |
|
75 |
|
76 /** |
|
77 * xmlParserSeverities: |
|
78 * |
|
79 * How severe an error callback is when the per-reader error callback API |
|
80 * is used. |
|
81 */ |
|
82 typedef enum { |
|
83 XML_PARSER_SEVERITY_VALIDITY_WARNING = 1, |
|
84 XML_PARSER_SEVERITY_VALIDITY_ERROR = 2, |
|
85 XML_PARSER_SEVERITY_WARNING = 3, |
|
86 XML_PARSER_SEVERITY_ERROR = 4 |
|
87 } xmlParserSeverities; |
|
88 |
|
89 /** |
|
90 * xmlReaderTypes: |
|
91 * |
|
92 * Predefined constants for the different types of nodes. |
|
93 */ |
|
94 typedef enum { |
|
95 XML_READER_TYPE_NONE = 0, |
|
96 XML_READER_TYPE_ELEMENT = 1, |
|
97 XML_READER_TYPE_ATTRIBUTE = 2, |
|
98 XML_READER_TYPE_TEXT = 3, |
|
99 XML_READER_TYPE_CDATA = 4, |
|
100 XML_READER_TYPE_ENTITY_REFERENCE = 5, |
|
101 XML_READER_TYPE_ENTITY = 6, |
|
102 XML_READER_TYPE_PROCESSING_INSTRUCTION = 7, |
|
103 XML_READER_TYPE_COMMENT = 8, |
|
104 XML_READER_TYPE_DOCUMENT = 9, |
|
105 XML_READER_TYPE_DOCUMENT_TYPE = 10, |
|
106 XML_READER_TYPE_DOCUMENT_FRAGMENT = 11, |
|
107 XML_READER_TYPE_NOTATION = 12, |
|
108 XML_READER_TYPE_WHITESPACE = 13, |
|
109 XML_READER_TYPE_SIGNIFICANT_WHITESPACE = 14, |
|
110 XML_READER_TYPE_END_ELEMENT = 15, |
|
111 XML_READER_TYPE_END_ENTITY = 16, |
|
112 XML_READER_TYPE_XML_DECLARATION = 17 |
|
113 } xmlReaderTypes; |
|
114 |
|
115 /* |
|
116 * Error handling extensions |
|
117 */ |
|
118 typedef void * xmlTextReaderLocatorPtr; |
|
119 typedef void (XMLCALL *xmlTextReaderErrorFunc) (void *arg, |
|
120 const char *msg, |
|
121 xmlParserSeverities severity, |
|
122 xmlTextReaderLocatorPtr locator); |
|
123 /** |
|
124 * xmlTextReader: |
|
125 * |
|
126 * Structure for an xmlReader context. |
|
127 */ |
|
128 typedef struct _xmlTextReader xmlTextReader; |
|
129 |
|
130 /** |
|
131 * xmlTextReaderPtr: |
|
132 * |
|
133 * Pointer to an xmlReader context. |
|
134 */ |
|
135 typedef xmlTextReader *xmlTextReaderPtr; |
|
136 // XMLENGINE: This moved to header from xmlreader.c file |
|
137 typedef enum { |
|
138 XML_TEXTREADER_NONE = -1, |
|
139 XML_TEXTREADER_START= 0, |
|
140 XML_TEXTREADER_ELEMENT= 1, |
|
141 XML_TEXTREADER_END= 2, |
|
142 XML_TEXTREADER_EMPTY= 3, |
|
143 XML_TEXTREADER_BACKTRACK= 4, |
|
144 XML_TEXTREADER_DONE= 5, |
|
145 XML_TEXTREADER_ERROR= 6 |
|
146 } xmlTextReaderState; |
|
147 |
|
148 typedef enum { |
|
149 XML_TEXTREADER_NOT_VALIDATE = 0, |
|
150 XML_TEXTREADER_VALIDATE_DTD = 1, |
|
151 XML_TEXTREADER_VALIDATE_RNG = 2, |
|
152 XML_TEXTREADER_VALIDATE_XSD = 4 |
|
153 } xmlTextReaderValidate; |
|
154 |
|
155 struct _xmlTextReader { |
|
156 int mode; /* the parsing mode */ |
|
157 xmlDocPtr doc; /* when walking an existing doc */ |
|
158 xmlTextReaderValidate validate; /* is there any validation */ |
|
159 int allocs; /* what structure were deallocated */ |
|
160 xmlTextReaderState state; |
|
161 xmlParserCtxtPtr ctxt; /* the parser context */ |
|
162 xmlSAXHandlerPtr sax; /* the parser SAX callbacks */ |
|
163 xmlParserInputBufferPtr input; /* the input */ |
|
164 startElementSAXFunc startElement; /* initial SAX callbacks */ |
|
165 endElementSAXFunc endElement; /* idem */ |
|
166 startElementNsSAX2Func startElementNs; /* idem */ |
|
167 endElementNsSAX2Func endElementNs; /* idem */ |
|
168 charactersSAXFunc characters; |
|
169 cdataBlockSAXFunc cdataBlock; |
|
170 unsigned int base; /* base of the segment in the input */ |
|
171 unsigned int cur; /* current position in the input */ |
|
172 xmlNodePtr node; /* current node */ |
|
173 xmlNodePtr curnode; /* current attribute node */ |
|
174 int depth; /* depth of the current node */ |
|
175 xmlNodePtr faketext;/* fake xmlNs chld */ |
|
176 int preserve;/* preserve the resulting document */ |
|
177 xmlBufferPtr buffer; /* used to return const xmlChar * */ |
|
178 xmlDictPtr dict; /* the context dictionnary */ |
|
179 |
|
180 /* entity stack when traversing entities content */ |
|
181 xmlNodePtr ent; /* Current Entity Ref Node */ |
|
182 int entNr; /* Depth of the entities stack */ |
|
183 int entMax; /* Max depth of the entities stack */ |
|
184 xmlNodePtr* entTab; /* array of entities */ |
|
185 |
|
186 /* error handling */ |
|
187 xmlTextReaderErrorFunc errorFunc; /* callback function */ |
|
188 void* errorFuncArg; /* callback function user argument */ |
|
189 |
|
190 #ifdef LIBXML_SCHEMAS_ENABLED |
|
191 /* Handling of RelaxNG validation */ |
|
192 xmlRelaxNGPtr rngSchemas; /* The Relax NG schemas */ |
|
193 xmlRelaxNGValidCtxtPtr rngValidCtxt; /* The Relax NG validation context */ |
|
194 int rngValidErrors;/* The number of errors detected */ |
|
195 xmlNodePtr rngFullNode; /* the node if RNG not progressive */ |
|
196 /* Handling of Schemas validation */ |
|
197 xmlSchemaPtr xsdSchemas; /* The Schemas schemas */ |
|
198 xmlSchemaValidCtxtPtr xsdValidCtxt;/* The Schemas validation context */ |
|
199 int xsdValidErrors;/* The number of errors detected */ |
|
200 xmlSchemaSAXPlugPtr xsdPlug; /* the schemas plug in SAX pipeline */ |
|
201 #endif |
|
202 #ifdef LIBXML_XINCLUDE_ENABLED |
|
203 /* Handling of XInclude processing */ |
|
204 int xinclude; /* is xinclude asked for */ |
|
205 const xmlChar* xinclude_name; /* the xinclude name from dict */ |
|
206 xmlXIncludeCtxtPtr xincctxt; /* the xinclude context */ |
|
207 int in_xinclude; /* counts for xinclude */ |
|
208 #endif |
|
209 #ifdef LIBXML_PATTERN_ENABLED |
|
210 int patternNr; /* number of preserve patterns */ |
|
211 int patternMax; /* max preserve patterns */ |
|
212 xmlPatternPtr* patternTab; /* array of preserve patterns */ |
|
213 #endif |
|
214 int preserves; /* level of preserves */ |
|
215 int parserFlags; /* the set of options set */ |
|
216 /* Structured error handling */ |
|
217 xmlStructuredErrorFunc sErrorFunc; /* callback function */ |
|
218 }; |
|
219 |
|
220 /* |
|
221 * Constructors & Destructor |
|
222 */ |
|
223 XMLPUBFUN xmlTextReaderPtr XMLCALL |
|
224 xmlNewTextReader (xmlParserInputBufferPtr input, |
|
225 const char *URI); |
|
226 XMLPUBFUN xmlTextReaderPtr XMLCALL |
|
227 xmlNewTextReaderFilename(const char *URI); |
|
228 XMLPUBFUN void XMLCALL |
|
229 xmlFreeTextReader (xmlTextReaderPtr reader); |
|
230 |
|
231 /* |
|
232 * Iterators |
|
233 */ |
|
234 XMLPUBFUN int XMLCALL |
|
235 xmlTextReaderRead (xmlTextReaderPtr reader); |
|
236 XMLPUBFUN xmlChar * XMLCALL |
|
237 xmlTextReaderReadInnerXml (xmlTextReaderPtr reader); |
|
238 XMLPUBFUN xmlChar * XMLCALL |
|
239 xmlTextReaderReadOuterXml (xmlTextReaderPtr reader); |
|
240 XMLPUBFUN xmlChar * XMLCALL |
|
241 xmlTextReaderReadString (xmlTextReaderPtr reader); |
|
242 XMLPUBFUN int XMLCALL |
|
243 xmlTextReaderReadAttributeValue (xmlTextReaderPtr reader); |
|
244 |
|
245 /* |
|
246 * Attributes of the node |
|
247 */ |
|
248 XMLPUBFUN int XMLCALL |
|
249 xmlTextReaderAttributeCount(xmlTextReaderPtr reader); |
|
250 XMLPUBFUN int XMLCALL |
|
251 xmlTextReaderDepth (xmlTextReaderPtr reader); |
|
252 XMLPUBFUN int XMLCALL |
|
253 xmlTextReaderHasAttributes(xmlTextReaderPtr reader); |
|
254 XMLPUBFUN int XMLCALL |
|
255 xmlTextReaderHasValue(xmlTextReaderPtr reader); |
|
256 XMLPUBFUN int XMLCALL |
|
257 xmlTextReaderIsDefault (xmlTextReaderPtr reader); |
|
258 XMLPUBFUN int XMLCALL |
|
259 xmlTextReaderIsEmptyElement(xmlTextReaderPtr reader); |
|
260 XMLPUBFUN int XMLCALL |
|
261 xmlTextReaderNodeType (xmlTextReaderPtr reader); |
|
262 XMLPUBFUN int XMLCALL |
|
263 xmlTextReaderQuoteChar (xmlTextReaderPtr reader); |
|
264 XMLPUBFUN int XMLCALL |
|
265 xmlTextReaderReadState (xmlTextReaderPtr reader); |
|
266 XMLPUBFUN int XMLCALL |
|
267 xmlTextReaderIsNamespaceDecl(xmlTextReaderPtr reader); |
|
268 |
|
269 XMLPUBFUN const xmlChar * XMLCALL |
|
270 xmlTextReaderConstBaseUri (xmlTextReaderPtr reader); |
|
271 XMLPUBFUN const xmlChar * XMLCALL |
|
272 xmlTextReaderConstLocalName (xmlTextReaderPtr reader); |
|
273 XMLPUBFUN const xmlChar * XMLCALL |
|
274 xmlTextReaderConstName (xmlTextReaderPtr reader); |
|
275 XMLPUBFUN const xmlChar * XMLCALL |
|
276 xmlTextReaderConstNamespaceUri(xmlTextReaderPtr reader); |
|
277 XMLPUBFUN const xmlChar * XMLCALL |
|
278 xmlTextReaderConstPrefix (xmlTextReaderPtr reader); |
|
279 XMLPUBFUN const xmlChar * XMLCALL |
|
280 xmlTextReaderConstXmlLang (xmlTextReaderPtr reader); |
|
281 XMLPUBFUN const xmlChar * XMLCALL |
|
282 xmlTextReaderConstString (xmlTextReaderPtr reader, |
|
283 const xmlChar *str); |
|
284 XMLPUBFUN const xmlChar * XMLCALL |
|
285 xmlTextReaderConstValue (xmlTextReaderPtr reader); |
|
286 |
|
287 /* |
|
288 * use the Const version of the routine for |
|
289 * better performance and simpler code |
|
290 */ |
|
291 XMLPUBFUN xmlChar * XMLCALL |
|
292 xmlTextReaderBaseUri (xmlTextReaderPtr reader); |
|
293 XMLPUBFUN xmlChar * XMLCALL |
|
294 xmlTextReaderLocalName (xmlTextReaderPtr reader); |
|
295 XMLPUBFUN xmlChar * XMLCALL |
|
296 xmlTextReaderName (xmlTextReaderPtr reader); |
|
297 XMLPUBFUN xmlChar * XMLCALL |
|
298 xmlTextReaderNamespaceUri(xmlTextReaderPtr reader); |
|
299 XMLPUBFUN xmlChar * XMLCALL |
|
300 xmlTextReaderPrefix (xmlTextReaderPtr reader); |
|
301 XMLPUBFUN xmlChar * XMLCALL |
|
302 xmlTextReaderXmlLang (xmlTextReaderPtr reader); |
|
303 XMLPUBFUN xmlChar * XMLCALL |
|
304 xmlTextReaderValue (xmlTextReaderPtr reader); |
|
305 |
|
306 /* |
|
307 * Methods of the XmlTextReader |
|
308 */ |
|
309 XMLPUBFUN int XMLCALL |
|
310 xmlTextReaderClose (xmlTextReaderPtr reader); |
|
311 XMLPUBFUN xmlChar * XMLCALL |
|
312 xmlTextReaderGetAttributeNo (xmlTextReaderPtr reader, |
|
313 int no); |
|
314 XMLPUBFUN xmlChar * XMLCALL |
|
315 xmlTextReaderGetAttribute (xmlTextReaderPtr reader, |
|
316 const xmlChar *name); |
|
317 XMLPUBFUN xmlChar * XMLCALL |
|
318 xmlTextReaderGetAttributeNs (xmlTextReaderPtr reader, |
|
319 const xmlChar *localName, |
|
320 const xmlChar *namespaceURI); |
|
321 XMLPUBFUN xmlParserInputBufferPtr XMLCALL |
|
322 xmlTextReaderGetRemainder (xmlTextReaderPtr reader); |
|
323 XMLPUBFUN xmlChar * XMLCALL |
|
324 xmlTextReaderLookupNamespace(xmlTextReaderPtr reader, |
|
325 const xmlChar *prefix); |
|
326 XMLPUBFUN int XMLCALL |
|
327 xmlTextReaderMoveToAttributeNo(xmlTextReaderPtr reader, |
|
328 int no); |
|
329 XMLPUBFUN int XMLCALL |
|
330 xmlTextReaderMoveToAttribute(xmlTextReaderPtr reader, |
|
331 const xmlChar *name); |
|
332 XMLPUBFUN int XMLCALL |
|
333 xmlTextReaderMoveToAttributeNs(xmlTextReaderPtr reader, |
|
334 const xmlChar *localName, |
|
335 const xmlChar *namespaceURI); |
|
336 XMLPUBFUN int XMLCALL |
|
337 xmlTextReaderMoveToFirstAttribute(xmlTextReaderPtr reader); |
|
338 XMLPUBFUN int XMLCALL |
|
339 xmlTextReaderMoveToNextAttribute(xmlTextReaderPtr reader); |
|
340 XMLPUBFUN int XMLCALL |
|
341 xmlTextReaderMoveToElement (xmlTextReaderPtr reader); |
|
342 XMLPUBFUN int XMLCALL |
|
343 xmlTextReaderNormalization (xmlTextReaderPtr reader); |
|
344 XMLPUBFUN const xmlChar * XMLCALL |
|
345 xmlTextReaderConstEncoding (xmlTextReaderPtr reader); |
|
346 |
|
347 /* |
|
348 * Extensions |
|
349 */ |
|
350 XMLPUBFUN int XMLCALL |
|
351 xmlTextReaderSetParserProp (xmlTextReaderPtr reader, |
|
352 int prop, |
|
353 int value); |
|
354 XMLPUBFUN int XMLCALL |
|
355 xmlTextReaderGetParserProp (xmlTextReaderPtr reader, |
|
356 int prop); |
|
357 XMLPUBFUN xmlNodePtr XMLCALL |
|
358 xmlTextReaderCurrentNode (xmlTextReaderPtr reader); |
|
359 XMLPUBFUN int XMLCALL |
|
360 xmlTextReaderGetParserLineNumber(xmlTextReaderPtr reader); |
|
361 |
|
362 XMLPUBFUN int XMLCALL |
|
363 xmlTextReaderGetParserColumnNumber(xmlTextReaderPtr reader); |
|
364 |
|
365 XMLPUBFUN xmlNodePtr XMLCALL |
|
366 xmlTextReaderPreserve (xmlTextReaderPtr reader); |
|
367 #ifdef LIBXML_PATTERN_ENABLED |
|
368 XMLPUBFUN int XMLCALL |
|
369 xmlTextReaderPreservePattern(xmlTextReaderPtr reader, |
|
370 const xmlChar *pattern, |
|
371 const xmlChar **namespaces); |
|
372 #endif /* LIBXML_PATTERN_ENABLED */ |
|
373 XMLPUBFUN xmlDocPtr XMLCALL |
|
374 xmlTextReaderCurrentDoc (xmlTextReaderPtr reader); |
|
375 XMLPUBFUN xmlNodePtr XMLCALL |
|
376 xmlTextReaderExpand (xmlTextReaderPtr reader); |
|
377 XMLPUBFUN int XMLCALL |
|
378 xmlTextReaderNext (xmlTextReaderPtr reader); |
|
379 XMLPUBFUN int XMLCALL |
|
380 xmlTextReaderNextSibling (xmlTextReaderPtr reader); |
|
381 XMLPUBFUN int XMLCALL |
|
382 xmlTextReaderIsValid (xmlTextReaderPtr reader); |
|
383 #ifdef LIBXML_SCHEMAS_ENABLED |
|
384 XMLPUBFUN int XMLCALL |
|
385 xmlTextReaderRelaxNGValidate(xmlTextReaderPtr reader, |
|
386 const char *rng); |
|
387 XMLPUBFUN int XMLCALL |
|
388 xmlTextReaderRelaxNGSetSchema(xmlTextReaderPtr reader, |
|
389 xmlRelaxNGPtr schema); |
|
390 XMLPUBFUN int XMLCALL |
|
391 xmlTextReaderSchemaValidate (xmlTextReaderPtr reader, |
|
392 const char *xsd); |
|
393 XMLPUBFUN int XMLCALL |
|
394 xmlTextReaderSetSchema (xmlTextReaderPtr reader, |
|
395 xmlSchemaPtr schema); |
|
396 #endif |
|
397 XMLPUBFUN const xmlChar * XMLCALL |
|
398 xmlTextReaderConstXmlVersion(xmlTextReaderPtr reader); |
|
399 XMLPUBFUN int XMLCALL |
|
400 xmlTextReaderStandalone (xmlTextReaderPtr reader); |
|
401 |
|
402 |
|
403 /* |
|
404 * Index lookup |
|
405 */ |
|
406 XMLPUBFUN long XMLCALL |
|
407 xmlTextReaderByteConsumed (xmlTextReaderPtr reader); |
|
408 |
|
409 /* |
|
410 * New more complete APIs for simpler creation and reuse of readers |
|
411 */ |
|
412 XMLPUBFUN xmlTextReaderPtr XMLCALL |
|
413 xmlReaderWalker (xmlDocPtr doc); |
|
414 XMLPUBFUN xmlTextReaderPtr XMLCALL |
|
415 xmlReaderForDoc (const xmlChar * cur, |
|
416 const char *URL, |
|
417 const char *encoding, |
|
418 int options); |
|
419 XMLPUBFUN xmlTextReaderPtr XMLCALL |
|
420 xmlReaderForFile (const char *filename, |
|
421 const char *encoding, |
|
422 int options); |
|
423 XMLPUBFUN xmlTextReaderPtr XMLCALL |
|
424 xmlReaderForMemory (const char *buffer, |
|
425 int size, |
|
426 const char *URL, |
|
427 const char *encoding, |
|
428 int options); |
|
429 XMLPUBFUN xmlTextReaderPtr XMLCALL |
|
430 xmlReaderForFd (int fd, |
|
431 const char *URL, |
|
432 const char *encoding, |
|
433 int options); |
|
434 XMLPUBFUN xmlTextReaderPtr XMLCALL |
|
435 xmlReaderForIO (xmlInputReadCallback ioread, |
|
436 xmlInputCloseCallback ioclose, |
|
437 void *ioctx, |
|
438 const char *URL, |
|
439 const char *encoding, |
|
440 int options); |
|
441 |
|
442 XMLPUBFUN int XMLCALL |
|
443 xmlReaderNewWalker (xmlTextReaderPtr reader, |
|
444 xmlDocPtr doc); |
|
445 XMLPUBFUN int XMLCALL |
|
446 xmlReaderNewDoc (xmlTextReaderPtr reader, |
|
447 const xmlChar * cur, |
|
448 const char *URL, |
|
449 const char *encoding, |
|
450 int options); |
|
451 XMLPUBFUN int XMLCALL |
|
452 xmlReaderNewFile (xmlTextReaderPtr reader, |
|
453 const char *filename, |
|
454 const char *encoding, |
|
455 int options); |
|
456 XMLPUBFUN int XMLCALL |
|
457 xmlReaderNewMemory (xmlTextReaderPtr reader, |
|
458 const char *buffer, |
|
459 int size, |
|
460 const char *URL, |
|
461 const char *encoding, |
|
462 int options); |
|
463 XMLPUBFUN int XMLCALL |
|
464 xmlReaderNewFd (xmlTextReaderPtr reader, |
|
465 int fd, |
|
466 const char *URL, |
|
467 const char *encoding, |
|
468 int options); |
|
469 XMLPUBFUN int XMLCALL |
|
470 xmlReaderNewIO (xmlTextReaderPtr reader, |
|
471 xmlInputReadCallback ioread, |
|
472 xmlInputCloseCallback ioclose, |
|
473 void *ioctx, |
|
474 const char *URL, |
|
475 const char *encoding, |
|
476 int options); |
|
477 |
|
478 // typedefs moved in the beginning of the header |
|
479 |
|
480 #ifdef LIBXML_ENABLE_NODE_LINEINFO |
|
481 XMLPUBFUN int XMLCALL |
|
482 xmlTextReaderLocatorLineNumber(xmlTextReaderLocatorPtr locator); |
|
483 #endif /* LIBXML_ENABLE_NODE_LINEINFO */ |
|
484 |
|
485 XMLPUBFUN xmlChar * XMLCALL |
|
486 xmlTextReaderLocatorBaseURI (xmlTextReaderLocatorPtr locator); |
|
487 XMLPUBFUN void XMLCALL |
|
488 xmlTextReaderSetErrorHandler(xmlTextReaderPtr reader, |
|
489 xmlTextReaderErrorFunc f, |
|
490 void *arg); |
|
491 XMLPUBFUN void XMLCALL |
|
492 xmlTextReaderSetStructuredErrorHandler(xmlTextReaderPtr reader, |
|
493 xmlStructuredErrorFunc f, |
|
494 void *arg); |
|
495 XMLPUBFUN void XMLCALL |
|
496 xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader, |
|
497 xmlTextReaderErrorFunc *f, |
|
498 void **arg); |
|
499 |
|
500 #ifdef __cplusplus |
|
501 } |
|
502 #endif |
|
503 |
|
504 #endif /* LIBXML_READER_ENABLED */ |
|
505 |
|
506 #endif /* XML_XMLREADER_H */ |
|
507 |