blob: f01654662b8b66b6307ce01686449569ea7abdda [file] [log] [blame]
Daniel Veillarde1ca5032002-12-09 14:13:43 +00001/*
Daniel Veillardbe586972003-11-18 20:56:51 +00002 * Summary: the XMLReader implementation
3 * Description: API of the XML streaming API based on C# interfaces.
Daniel Veillarde1ca5032002-12-09 14:13:43 +00004 *
Daniel Veillardbe586972003-11-18 20:56:51 +00005 * Copy: See Copyright for the status of this software.
Daniel Veillarde1ca5032002-12-09 14:13:43 +00006 *
Daniel Veillardbe586972003-11-18 20:56:51 +00007 * Author: Daniel Veillard
Daniel Veillarde1ca5032002-12-09 14:13:43 +00008 */
9
10#ifndef __XML_XMLREADER_H__
11#define __XML_XMLREADER_H__
12
Igor Zlatkovic76874e42003-08-25 09:05:12 +000013#include <libxml/xmlversion.h>
Daniel Veillarde1ca5032002-12-09 14:13:43 +000014#include <libxml/tree.h>
15#include <libxml/xmlIO.h>
Daniel Veillard33300b42003-04-17 09:09:19 +000016#ifdef LIBXML_SCHEMAS_ENABLED
17#include <libxml/relaxng.h>
Daniel Veillardf10ae122005-07-10 19:03:16 +000018#include <libxml/xmlschemas.h>
Daniel Veillard33300b42003-04-17 09:09:19 +000019#endif
Daniel Veillarde1ca5032002-12-09 14:13:43 +000020
Daniel Veillarda2351322004-06-27 12:08:10 +000021#ifdef LIBXML_READER_ENABLED
22
Daniel Veillarde1ca5032002-12-09 14:13:43 +000023#ifdef __cplusplus
24extern "C" {
25#endif
26
Daniel Veillardda0ff5d2004-04-20 09:45:26 +000027/**
28 * xmlTextReaderMode:
29 *
30 * Internal state values for the reader.
31 */
32typedef 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 */
Daniel Veillardbeb70bd2002-12-18 14:53:54 +000048typedef enum {
49 XML_PARSER_LOADDTD = 1,
Daniel Veillarde18fc182002-12-28 22:56:33 +000050 XML_PARSER_DEFAULTATTRS = 2,
51 XML_PARSER_VALIDATE = 3,
52 XML_PARSER_SUBST_ENTITIES = 4
Daniel Veillardbeb70bd2002-12-18 14:53:54 +000053} xmlParserProperties;
54
Daniel Veillardda0ff5d2004-04-20 09:45:26 +000055/**
56 * xmlParserSeverities:
57 *
58 * How severe an error callback is when the per-reader error callback API
59 * is used.
60 */
Daniel Veillard26f70262003-01-16 22:45:08 +000061typedef enum {
Daniel Veillard417be3a2003-01-20 21:26:34 +000062 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;
Daniel Veillard26f70262003-01-16 22:45:08 +000067
Daniel Veillardda0ff5d2004-04-20 09:45:26 +000068/**
69 * xmlReaderTypes:
70 *
71 * Predefined constants for the different types of nodes.
72 */
Daniel Veillard0ab6fa02003-08-09 18:01:53 +000073typedef enum {
Daniel Veillardd6038e02003-07-30 16:37:18 +000074 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
Daniel Veillard0ab6fa02003-08-09 18:01:53 +000092} xmlReaderTypes;
Daniel Veillardd6038e02003-07-30 16:37:18 +000093
Daniel Veillardda0ff5d2004-04-20 09:45:26 +000094/**
95 * xmlTextReader:
96 *
97 * Structure for an xmlReader context.
98 */
Daniel Veillarde1ca5032002-12-09 14:13:43 +000099typedef struct _xmlTextReader xmlTextReader;
Daniel Veillardda0ff5d2004-04-20 09:45:26 +0000100
101/**
102 * xmlTextReaderPtr:
103 *
104 * Pointer to an xmlReader context.
105 */
Daniel Veillarde1ca5032002-12-09 14:13:43 +0000106typedef xmlTextReader *xmlTextReaderPtr;
107
108/*
109 * Constructors & Destructor
110 */
Igor Zlatkovic76874e42003-08-25 09:05:12 +0000111XMLPUBFUN xmlTextReaderPtr XMLCALL
112 xmlNewTextReader (xmlParserInputBufferPtr input,
Daniel Veillardea7751d2002-12-20 00:16:24 +0000113 const char *URI);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000114XMLPUBFUN xmlTextReaderPtr XMLCALL
115 xmlNewTextReaderFilename(const char *URI);
116XMLPUBFUN void XMLCALL
117 xmlFreeTextReader (xmlTextReaderPtr reader);
Daniel Veillarde1ca5032002-12-09 14:13:43 +0000118
119/*
120 * Iterators
121 */
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000122XMLPUBFUN int XMLCALL
123 xmlTextReaderRead (xmlTextReaderPtr reader);
124XMLPUBFUN xmlChar * XMLCALL
125 xmlTextReaderReadInnerXml (xmlTextReaderPtr reader);
126XMLPUBFUN xmlChar * XMLCALL
127 xmlTextReaderReadOuterXml (xmlTextReaderPtr reader);
128XMLPUBFUN xmlChar * XMLCALL
129 xmlTextReaderReadString (xmlTextReaderPtr reader);
130XMLPUBFUN int XMLCALL
131 xmlTextReaderReadAttributeValue (xmlTextReaderPtr reader);
Daniel Veillarde1ca5032002-12-09 14:13:43 +0000132
133/*
134 * Attributes of the node
135 */
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000136XMLPUBFUN int XMLCALL
137 xmlTextReaderAttributeCount(xmlTextReaderPtr reader);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000138XMLPUBFUN int XMLCALL
139 xmlTextReaderDepth (xmlTextReaderPtr reader);
140XMLPUBFUN int XMLCALL
141 xmlTextReaderHasAttributes(xmlTextReaderPtr reader);
142XMLPUBFUN int XMLCALL
143 xmlTextReaderHasValue(xmlTextReaderPtr reader);
144XMLPUBFUN int XMLCALL
145 xmlTextReaderIsDefault (xmlTextReaderPtr reader);
146XMLPUBFUN int XMLCALL
147 xmlTextReaderIsEmptyElement(xmlTextReaderPtr reader);
Daniel Veillarde72c5082003-09-19 12:44:05 +0000148XMLPUBFUN int XMLCALL
149 xmlTextReaderNodeType (xmlTextReaderPtr reader);
150XMLPUBFUN int XMLCALL
151 xmlTextReaderQuoteChar (xmlTextReaderPtr reader);
152XMLPUBFUN int XMLCALL
153 xmlTextReaderReadState (xmlTextReaderPtr reader);
Daniel Veillarde2811272004-10-19 09:04:23 +0000154XMLPUBFUN int XMLCALL
155 xmlTextReaderIsNamespaceDecl(xmlTextReaderPtr reader);
Daniel Veillard0eb38c72002-12-14 23:00:35 +0000156
Daniel Veillarde72c5082003-09-19 12:44:05 +0000157XMLPUBFUN const xmlChar * XMLCALL
158 xmlTextReaderConstBaseUri (xmlTextReaderPtr reader);
159XMLPUBFUN const xmlChar * XMLCALL
160 xmlTextReaderConstLocalName (xmlTextReaderPtr reader);
161XMLPUBFUN const xmlChar * XMLCALL
162 xmlTextReaderConstName (xmlTextReaderPtr reader);
163XMLPUBFUN const xmlChar * XMLCALL
164 xmlTextReaderConstNamespaceUri(xmlTextReaderPtr reader);
165XMLPUBFUN const xmlChar * XMLCALL
166 xmlTextReaderConstPrefix (xmlTextReaderPtr reader);
167XMLPUBFUN const xmlChar * XMLCALL
168 xmlTextReaderConstXmlLang (xmlTextReaderPtr reader);
Daniel Veillardf85ce8e2003-09-22 10:24:45 +0000169XMLPUBFUN const xmlChar * XMLCALL
170 xmlTextReaderConstString (xmlTextReaderPtr reader,
171 const xmlChar *str);
Daniel Veillard198c1bf2003-10-20 17:07:41 +0000172XMLPUBFUN 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 */
179XMLPUBFUN xmlChar * XMLCALL
180 xmlTextReaderBaseUri (xmlTextReaderPtr reader);
181XMLPUBFUN xmlChar * XMLCALL
182 xmlTextReaderLocalName (xmlTextReaderPtr reader);
183XMLPUBFUN xmlChar * XMLCALL
184 xmlTextReaderName (xmlTextReaderPtr reader);
185XMLPUBFUN xmlChar * XMLCALL
186 xmlTextReaderNamespaceUri(xmlTextReaderPtr reader);
187XMLPUBFUN xmlChar * XMLCALL
188 xmlTextReaderPrefix (xmlTextReaderPtr reader);
189XMLPUBFUN xmlChar * XMLCALL
190 xmlTextReaderXmlLang (xmlTextReaderPtr reader);
191XMLPUBFUN xmlChar * XMLCALL
192 xmlTextReaderValue (xmlTextReaderPtr reader);
Daniel Veillardf85ce8e2003-09-22 10:24:45 +0000193
Daniel Veillard0eb38c72002-12-14 23:00:35 +0000194/*
195 * Methods of the XmlTextReader
196 */
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000197XMLPUBFUN int XMLCALL
198 xmlTextReaderClose (xmlTextReaderPtr reader);
199XMLPUBFUN xmlChar * XMLCALL
200 xmlTextReaderGetAttributeNo (xmlTextReaderPtr reader,
Daniel Veillard0eb38c72002-12-14 23:00:35 +0000201 int no);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000202XMLPUBFUN xmlChar * XMLCALL
203 xmlTextReaderGetAttribute (xmlTextReaderPtr reader,
Daniel Veillard0eb38c72002-12-14 23:00:35 +0000204 const xmlChar *name);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000205XMLPUBFUN xmlChar * XMLCALL
206 xmlTextReaderGetAttributeNs (xmlTextReaderPtr reader,
Daniel Veillard0eb38c72002-12-14 23:00:35 +0000207 const xmlChar *localName,
208 const xmlChar *namespaceURI);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000209XMLPUBFUN xmlParserInputBufferPtr XMLCALL
210 xmlTextReaderGetRemainder (xmlTextReaderPtr reader);
211XMLPUBFUN xmlChar * XMLCALL
212 xmlTextReaderLookupNamespace(xmlTextReaderPtr reader,
Daniel Veillardda46d2d2002-12-15 23:36:49 +0000213 const xmlChar *prefix);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000214XMLPUBFUN int XMLCALL
215 xmlTextReaderMoveToAttributeNo(xmlTextReaderPtr reader,
Daniel Veillardda46d2d2002-12-15 23:36:49 +0000216 int no);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000217XMLPUBFUN int XMLCALL
218 xmlTextReaderMoveToAttribute(xmlTextReaderPtr reader,
Daniel Veillardda46d2d2002-12-15 23:36:49 +0000219 const xmlChar *name);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000220XMLPUBFUN int XMLCALL
221 xmlTextReaderMoveToAttributeNs(xmlTextReaderPtr reader,
Daniel Veillardda46d2d2002-12-15 23:36:49 +0000222 const xmlChar *localName,
223 const xmlChar *namespaceURI);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000224XMLPUBFUN int XMLCALL
225 xmlTextReaderMoveToFirstAttribute(xmlTextReaderPtr reader);
226XMLPUBFUN int XMLCALL
227 xmlTextReaderMoveToNextAttribute(xmlTextReaderPtr reader);
228XMLPUBFUN int XMLCALL
229 xmlTextReaderMoveToElement (xmlTextReaderPtr reader);
230XMLPUBFUN int XMLCALL
231 xmlTextReaderNormalization (xmlTextReaderPtr reader);
Daniel Veillarde2811272004-10-19 09:04:23 +0000232XMLPUBFUN const xmlChar * XMLCALL
233 xmlTextReaderConstEncoding (xmlTextReaderPtr reader);
Daniel Veillardda46d2d2002-12-15 23:36:49 +0000234
Daniel Veillardbeb70bd2002-12-18 14:53:54 +0000235/*
236 * Extensions
237 */
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000238XMLPUBFUN int XMLCALL
239 xmlTextReaderSetParserProp (xmlTextReaderPtr reader,
Daniel Veillardbeb70bd2002-12-18 14:53:54 +0000240 int prop,
241 int value);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000242XMLPUBFUN int XMLCALL
243 xmlTextReaderGetParserProp (xmlTextReaderPtr reader,
Daniel Veillardbeb70bd2002-12-18 14:53:54 +0000244 int prop);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000245XMLPUBFUN xmlNodePtr XMLCALL
246 xmlTextReaderCurrentNode (xmlTextReaderPtr reader);
Aleksey Sanind671e282005-01-03 21:58:59 +0000247
248XMLPUBFUN int XMLCALL
249 xmlTextReaderGetParserLineNumber(xmlTextReaderPtr reader);
250
251XMLPUBFUN int XMLCALL
252 xmlTextReaderGetParserColumnNumber(xmlTextReaderPtr reader);
253
Daniel Veillard9ee35f32003-09-28 00:19:54 +0000254XMLPUBFUN xmlNodePtr XMLCALL
255 xmlTextReaderPreserve (xmlTextReaderPtr reader);
William M. Brack21e4ef22005-01-02 09:53:13 +0000256#ifdef LIBXML_PATTERN_ENABLED
Daniel Veillard1e906612003-12-05 14:57:46 +0000257XMLPUBFUN int XMLCALL
258 xmlTextReaderPreservePattern(xmlTextReaderPtr reader,
Daniel Veillardffa7b7e2003-12-05 16:10:21 +0000259 const xmlChar *pattern,
260 const xmlChar **namespaces);
William M. Brack21e4ef22005-01-02 09:53:13 +0000261#endif /* LIBXML_PATTERN_ENABLED */
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000262XMLPUBFUN xmlDocPtr XMLCALL
263 xmlTextReaderCurrentDoc (xmlTextReaderPtr reader);
264XMLPUBFUN xmlNodePtr XMLCALL
265 xmlTextReaderExpand (xmlTextReaderPtr reader);
266XMLPUBFUN int XMLCALL
267 xmlTextReaderNext (xmlTextReaderPtr reader);
Daniel Veillard198c1bf2003-10-20 17:07:41 +0000268XMLPUBFUN int XMLCALL
269 xmlTextReaderNextSibling (xmlTextReaderPtr reader);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000270XMLPUBFUN int XMLCALL
271 xmlTextReaderIsValid (xmlTextReaderPtr reader);
Daniel Veillardf4e55762003-04-15 23:32:22 +0000272#ifdef LIBXML_SCHEMAS_ENABLED
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000273XMLPUBFUN int XMLCALL
274 xmlTextReaderRelaxNGValidate(xmlTextReaderPtr reader,
Daniel Veillardf4e55762003-04-15 23:32:22 +0000275 const char *rng);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000276XMLPUBFUN int XMLCALL
277 xmlTextReaderRelaxNGSetSchema(xmlTextReaderPtr reader,
Daniel Veillard33300b42003-04-17 09:09:19 +0000278 xmlRelaxNGPtr schema);
Daniel Veillardf10ae122005-07-10 19:03:16 +0000279XMLPUBFUN int XMLCALL
280 xmlTextReaderSchemaValidate (xmlTextReaderPtr reader,
281 const char *xsd);
282XMLPUBFUN int XMLCALL
283 xmlTextReaderSetSchema (xmlTextReaderPtr reader,
284 xmlSchemaPtr schema);
Daniel Veillardf4e55762003-04-15 23:32:22 +0000285#endif
Daniel Veillarde2811272004-10-19 09:04:23 +0000286XMLPUBFUN const xmlChar * XMLCALL
287 xmlTextReaderConstXmlVersion(xmlTextReaderPtr reader);
288XMLPUBFUN int XMLCALL
289 xmlTextReaderStandalone (xmlTextReaderPtr reader);
Daniel Veillard26f70262003-01-16 22:45:08 +0000290
Daniel Veillard5e094142005-02-18 19:36:12 +0000291
292/*
293 * Index lookup
294 */
295XMLPUBFUN long XMLCALL
296 xmlTextReaderByteConsumed (xmlTextReaderPtr reader);
297
Daniel Veillard26f70262003-01-16 22:45:08 +0000298/*
Daniel Veillardfc8dc352003-10-18 09:07:46 +0000299 * New more complete APIs for simpler creation and reuse of readers
300 */
301XMLPUBFUN xmlTextReaderPtr XMLCALL
Daniel Veillard198c1bf2003-10-20 17:07:41 +0000302 xmlReaderWalker (xmlDocPtr doc);
303XMLPUBFUN xmlTextReaderPtr XMLCALL
Daniel Veillardfc8dc352003-10-18 09:07:46 +0000304 xmlReaderForDoc (const xmlChar * cur,
305 const char *URL,
306 const char *encoding,
307 int options);
308XMLPUBFUN xmlTextReaderPtr XMLCALL
309 xmlReaderForFile (const char *filename,
310 const char *encoding,
311 int options);
312XMLPUBFUN xmlTextReaderPtr XMLCALL
313 xmlReaderForMemory (const char *buffer,
314 int size,
315 const char *URL,
316 const char *encoding,
317 int options);
318XMLPUBFUN xmlTextReaderPtr XMLCALL
319 xmlReaderForFd (int fd,
320 const char *URL,
321 const char *encoding,
322 int options);
323XMLPUBFUN xmlTextReaderPtr XMLCALL
324 xmlReaderForIO (xmlInputReadCallback ioread,
325 xmlInputCloseCallback ioclose,
326 void *ioctx,
327 const char *URL,
328 const char *encoding,
329 int options);
330
331XMLPUBFUN int XMLCALL
Daniel Veillard198c1bf2003-10-20 17:07:41 +0000332 xmlReaderNewWalker (xmlTextReaderPtr reader,
333 xmlDocPtr doc);
334XMLPUBFUN int XMLCALL
Daniel Veillardfc8dc352003-10-18 09:07:46 +0000335 xmlReaderNewDoc (xmlTextReaderPtr reader,
336 const xmlChar * cur,
337 const char *URL,
338 const char *encoding,
339 int options);
340XMLPUBFUN int XMLCALL
341 xmlReaderNewFile (xmlTextReaderPtr reader,
342 const char *filename,
343 const char *encoding,
344 int options);
345XMLPUBFUN int XMLCALL
346 xmlReaderNewMemory (xmlTextReaderPtr reader,
347 const char *buffer,
348 int size,
349 const char *URL,
350 const char *encoding,
351 int options);
352XMLPUBFUN int XMLCALL
353 xmlReaderNewFd (xmlTextReaderPtr reader,
354 int fd,
355 const char *URL,
356 const char *encoding,
357 int options);
358XMLPUBFUN 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/*
Daniel Veillard26f70262003-01-16 22:45:08 +0000367 * Error handling extensions
368 */
Daniel Veillard417be3a2003-01-20 21:26:34 +0000369typedef void * xmlTextReaderLocatorPtr;
Igor Zlatkovic18a88ce2004-02-03 08:27:55 +0000370typedef void (XMLCALL *xmlTextReaderErrorFunc) (void *arg,
Daniel Veillard26f70262003-01-16 22:45:08 +0000371 const char *msg,
Daniel Veillard417be3a2003-01-20 21:26:34 +0000372 xmlParserSeverities severity,
373 xmlTextReaderLocatorPtr locator);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000374XMLPUBFUN int XMLCALL
375 xmlTextReaderLocatorLineNumber(xmlTextReaderLocatorPtr locator);
Daniel Veillard417be3a2003-01-20 21:26:34 +0000376/*int xmlTextReaderLocatorLinePosition(xmlTextReaderLocatorPtr locator);*/
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000377XMLPUBFUN xmlChar * XMLCALL
378 xmlTextReaderLocatorBaseURI (xmlTextReaderLocatorPtr locator);
379XMLPUBFUN void XMLCALL
380 xmlTextReaderSetErrorHandler(xmlTextReaderPtr reader,
Daniel Veillard26f70262003-01-16 22:45:08 +0000381 xmlTextReaderErrorFunc f,
382 void *arg);
William M. Brack93d004f2004-02-03 00:14:10 +0000383XMLPUBFUN void XMLCALL
384 xmlTextReaderSetStructuredErrorHandler(xmlTextReaderPtr reader,
385 xmlStructuredErrorFunc f,
386 void *arg);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000387XMLPUBFUN void XMLCALL
388 xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader,
Daniel Veillard26f70262003-01-16 22:45:08 +0000389 xmlTextReaderErrorFunc *f,
390 void **arg);
391
Daniel Veillarde1ca5032002-12-09 14:13:43 +0000392#ifdef __cplusplus
393}
394#endif
Daniel Veillarda2351322004-06-27 12:08:10 +0000395
396#endif /* LIBXML_READER_ENABLED */
397
Daniel Veillarde1ca5032002-12-09 14:13:43 +0000398#endif /* __XML_XMLREADER_H__ */
399