1e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard/*
2be5869729a416032a4abb5a65430d25831828f75Daniel Veillard * Summary: the XMLReader implementation
3be5869729a416032a4abb5a65430d25831828f75Daniel Veillard * Description: API of the XML streaming API based on C# interfaces.
4e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard *
5be5869729a416032a4abb5a65430d25831828f75Daniel Veillard * Copy: See Copyright for the status of this software.
6e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard *
7be5869729a416032a4abb5a65430d25831828f75Daniel Veillard * Author: Daniel Veillard
8e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard */
9e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard
10e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard#ifndef __XML_XMLREADER_H__
11e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard#define __XML_XMLREADER_H__
12e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard
1376874e4516a1d7b467d400604f8aef77be015727Igor Zlatkovic#include <libxml/xmlversion.h>
14e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard#include <libxml/tree.h>
15e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard#include <libxml/xmlIO.h>
1633300b49f0801f5efe6363bd6b85b3bb5ace70fdDaniel Veillard#ifdef LIBXML_SCHEMAS_ENABLED
1733300b49f0801f5efe6363bd6b85b3bb5ace70fdDaniel Veillard#include <libxml/relaxng.h>
18f10ae12cb8874674e3bc1f0b52b3cfcc2a1d3278Daniel Veillard#include <libxml/xmlschemas.h>
1933300b49f0801f5efe6363bd6b85b3bb5ace70fdDaniel Veillard#endif
20e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard
21e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard#ifdef __cplusplus
22e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillardextern "C" {
23e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard#endif
24e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard
25da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard/**
26438ebbd59af78c436397ae488e42aeca5cad7542Daniel Veillard * xmlParserSeverities:
27438ebbd59af78c436397ae488e42aeca5cad7542Daniel Veillard *
28438ebbd59af78c436397ae488e42aeca5cad7542Daniel Veillard * How severe an error callback is when the per-reader error callback API
29438ebbd59af78c436397ae488e42aeca5cad7542Daniel Veillard * is used.
30438ebbd59af78c436397ae488e42aeca5cad7542Daniel Veillard */
31438ebbd59af78c436397ae488e42aeca5cad7542Daniel Veillardtypedef enum {
32438ebbd59af78c436397ae488e42aeca5cad7542Daniel Veillard    XML_PARSER_SEVERITY_VALIDITY_WARNING = 1,
33438ebbd59af78c436397ae488e42aeca5cad7542Daniel Veillard    XML_PARSER_SEVERITY_VALIDITY_ERROR = 2,
34438ebbd59af78c436397ae488e42aeca5cad7542Daniel Veillard    XML_PARSER_SEVERITY_WARNING = 3,
35438ebbd59af78c436397ae488e42aeca5cad7542Daniel Veillard    XML_PARSER_SEVERITY_ERROR = 4
36438ebbd59af78c436397ae488e42aeca5cad7542Daniel Veillard} xmlParserSeverities;
37438ebbd59af78c436397ae488e42aeca5cad7542Daniel Veillard
38438ebbd59af78c436397ae488e42aeca5cad7542Daniel Veillard#ifdef LIBXML_READER_ENABLED
39438ebbd59af78c436397ae488e42aeca5cad7542Daniel Veillard
40438ebbd59af78c436397ae488e42aeca5cad7542Daniel Veillard/**
41da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard * xmlTextReaderMode:
42da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard *
43da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard * Internal state values for the reader.
44da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard */
45da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillardtypedef enum {
46da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard    XML_TEXTREADER_MODE_INITIAL = 0,
47da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard    XML_TEXTREADER_MODE_INTERACTIVE = 1,
48da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard    XML_TEXTREADER_MODE_ERROR = 2,
49da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard    XML_TEXTREADER_MODE_EOF =3,
50da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard    XML_TEXTREADER_MODE_CLOSED = 4,
51da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard    XML_TEXTREADER_MODE_READING = 5
52da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard} xmlTextReaderMode;
53da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard
54da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard/**
55da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard * xmlParserProperties:
56da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard *
57da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard * Some common options to use with xmlTextReaderSetParserProp, but it
58dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard * is better to use xmlParserOption and the xmlReaderNewxxx and
59da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard * xmlReaderForxxx APIs now.
60da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard */
61beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillardtypedef enum {
62beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillard    XML_PARSER_LOADDTD = 1,
63e18fc185fa2604ba73f2b259e34796c106ad5545Daniel Veillard    XML_PARSER_DEFAULTATTRS = 2,
64e18fc185fa2604ba73f2b259e34796c106ad5545Daniel Veillard    XML_PARSER_VALIDATE = 3,
65e18fc185fa2604ba73f2b259e34796c106ad5545Daniel Veillard    XML_PARSER_SUBST_ENTITIES = 4
66beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillard} xmlParserProperties;
67beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillard
68da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard/**
69da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard * xmlReaderTypes:
70da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard *
71da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard * Predefined constants for the different types of nodes.
72da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard */
730ab6fa01f5291e116d4217767d13d775b35c72a0Daniel Veillardtypedef enum {
74d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_NONE = 0,
75d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_ELEMENT = 1,
76d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_ATTRIBUTE = 2,
77d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_TEXT = 3,
78d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_CDATA = 4,
79d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_ENTITY_REFERENCE = 5,
80d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_ENTITY = 6,
81d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_PROCESSING_INSTRUCTION = 7,
82d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_COMMENT = 8,
83d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_DOCUMENT = 9,
84d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_DOCUMENT_TYPE = 10,
85d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_DOCUMENT_FRAGMENT = 11,
86d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_NOTATION = 12,
87d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_WHITESPACE = 13,
88d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_SIGNIFICANT_WHITESPACE = 14,
89d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_END_ELEMENT = 15,
90d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_END_ENTITY = 16,
91d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_XML_DECLARATION = 17
920ab6fa01f5291e116d4217767d13d775b35c72a0Daniel Veillard} xmlReaderTypes;
93d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard
94da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard/**
95da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard * xmlTextReader:
96da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard *
97da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard * Structure for an xmlReader context.
98da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard */
99e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillardtypedef struct _xmlTextReader xmlTextReader;
100da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard
101da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard/**
102da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard * xmlTextReaderPtr:
103da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard *
104da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard * Pointer to an xmlReader context.
105da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard */
106e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillardtypedef xmlTextReader *xmlTextReaderPtr;
107e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard
108e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard/*
109e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard * Constructors & Destructor
110e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard */
11176874e4516a1d7b467d400604f8aef77be015727Igor ZlatkovicXMLPUBFUN xmlTextReaderPtr XMLCALL
11276874e4516a1d7b467d400604f8aef77be015727Igor Zlatkovic			xmlNewTextReader	(xmlParserInputBufferPtr input,
113ea7751d53bf497e873dca39b2c305e300e2574f9Daniel Veillard	                                         const char *URI);
114dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN xmlTextReaderPtr XMLCALL
115aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic			xmlNewTextReaderFilename(const char *URI);
116d837764002051a4f95c0bee2d0c25f5b18a8f077Aleksey Sanin
117dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN void XMLCALL
118aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic			xmlFreeTextReader	(xmlTextReaderPtr reader);
119e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard
120dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN int XMLCALL
121d837764002051a4f95c0bee2d0c25f5b18a8f077Aleksey Sanin            xmlTextReaderSetup(xmlTextReaderPtr reader,
122d837764002051a4f95c0bee2d0c25f5b18a8f077Aleksey Sanin                   xmlParserInputBufferPtr input, const char *URL,
123d837764002051a4f95c0bee2d0c25f5b18a8f077Aleksey Sanin                   const char *encoding, int options);
124d837764002051a4f95c0bee2d0c25f5b18a8f077Aleksey Sanin
125e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard/*
126e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard * Iterators
127e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard */
128dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN int XMLCALL
129aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic			xmlTextReaderRead	(xmlTextReaderPtr reader);
130d0271473abc7ca82a22e9a953ec525a6f4b504d5Daniel Veillard
131d0271473abc7ca82a22e9a953ec525a6f4b504d5Daniel Veillard#ifdef LIBXML_WRITER_ENABLED
132dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN xmlChar * XMLCALL
133f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard			xmlTextReaderReadInnerXml(xmlTextReaderPtr reader);
134dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard
135dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN xmlChar * XMLCALL
136f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard			xmlTextReaderReadOuterXml(xmlTextReaderPtr reader);
137d0271473abc7ca82a22e9a953ec525a6f4b504d5Daniel Veillard#endif
138d0271473abc7ca82a22e9a953ec525a6f4b504d5Daniel Veillard
139dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN xmlChar * XMLCALL
140f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard			xmlTextReaderReadString	(xmlTextReaderPtr reader);
141dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN int XMLCALL
142f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard			xmlTextReaderReadAttributeValue(xmlTextReaderPtr reader);
143e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard
144e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard/*
145e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard * Attributes of the node
146e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard */
147dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN int XMLCALL
148aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic			xmlTextReaderAttributeCount(xmlTextReaderPtr reader);
149dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN int XMLCALL
150aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic			xmlTextReaderDepth	(xmlTextReaderPtr reader);
151dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN int XMLCALL
152aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic			xmlTextReaderHasAttributes(xmlTextReaderPtr reader);
153dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN int XMLCALL
154aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic			xmlTextReaderHasValue(xmlTextReaderPtr reader);
155dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN int XMLCALL
156aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic			xmlTextReaderIsDefault	(xmlTextReaderPtr reader);
157dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN int XMLCALL
158aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic			xmlTextReaderIsEmptyElement(xmlTextReaderPtr reader);
159dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN int XMLCALL
160e72c508cd0c7a829602906f54fa8a29abaf3afa6Daniel Veillard			xmlTextReaderNodeType	(xmlTextReaderPtr reader);
161dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN int XMLCALL
162e72c508cd0c7a829602906f54fa8a29abaf3afa6Daniel Veillard			xmlTextReaderQuoteChar	(xmlTextReaderPtr reader);
163dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN int XMLCALL
164e72c508cd0c7a829602906f54fa8a29abaf3afa6Daniel Veillard			xmlTextReaderReadState	(xmlTextReaderPtr reader);
165e2811270e81f33a751c88647c48453803586a550Daniel VeillardXMLPUBFUN int XMLCALL
166e2811270e81f33a751c88647c48453803586a550Daniel Veillard                        xmlTextReaderIsNamespaceDecl(xmlTextReaderPtr reader);
1670eb38c7259b04de809f7bc880688f468ac7a15bfDaniel Veillard
168dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN const xmlChar * XMLCALL
169e72c508cd0c7a829602906f54fa8a29abaf3afa6Daniel Veillard		    xmlTextReaderConstBaseUri	(xmlTextReaderPtr reader);
170dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN const xmlChar * XMLCALL
171e72c508cd0c7a829602906f54fa8a29abaf3afa6Daniel Veillard		    xmlTextReaderConstLocalName	(xmlTextReaderPtr reader);
172dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN const xmlChar * XMLCALL
173e72c508cd0c7a829602906f54fa8a29abaf3afa6Daniel Veillard		    xmlTextReaderConstName	(xmlTextReaderPtr reader);
174dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN const xmlChar * XMLCALL
175e72c508cd0c7a829602906f54fa8a29abaf3afa6Daniel Veillard		    xmlTextReaderConstNamespaceUri(xmlTextReaderPtr reader);
176dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN const xmlChar * XMLCALL
177e72c508cd0c7a829602906f54fa8a29abaf3afa6Daniel Veillard		    xmlTextReaderConstPrefix	(xmlTextReaderPtr reader);
178dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN const xmlChar * XMLCALL
179e72c508cd0c7a829602906f54fa8a29abaf3afa6Daniel Veillard		    xmlTextReaderConstXmlLang	(xmlTextReaderPtr reader);
180dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN const xmlChar * XMLCALL
181f85ce8e334f448078a3d71a812824fa5b45d9b07Daniel Veillard		    xmlTextReaderConstString	(xmlTextReaderPtr reader,
182dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard						 const xmlChar *str);
183dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN const xmlChar * XMLCALL
184198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard		    xmlTextReaderConstValue	(xmlTextReaderPtr reader);
185198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard
186198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard/*
187198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard * use the Const version of the routine for
188198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard * better performance and simpler code
189198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard */
190dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN xmlChar * XMLCALL
191198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard			xmlTextReaderBaseUri	(xmlTextReaderPtr reader);
192dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN xmlChar * XMLCALL
193198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard			xmlTextReaderLocalName	(xmlTextReaderPtr reader);
194dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN xmlChar * XMLCALL
195198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard			xmlTextReaderName	(xmlTextReaderPtr reader);
196dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN xmlChar * XMLCALL
197198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard			xmlTextReaderNamespaceUri(xmlTextReaderPtr reader);
198dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN xmlChar * XMLCALL
199198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard			xmlTextReaderPrefix	(xmlTextReaderPtr reader);
200dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN xmlChar * XMLCALL
201198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard			xmlTextReaderXmlLang	(xmlTextReaderPtr reader);
202dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN xmlChar * XMLCALL
203198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard			xmlTextReaderValue	(xmlTextReaderPtr reader);
204f85ce8e334f448078a3d71a812824fa5b45d9b07Daniel Veillard
2050eb38c7259b04de809f7bc880688f468ac7a15bfDaniel Veillard/*
2060eb38c7259b04de809f7bc880688f468ac7a15bfDaniel Veillard * Methods of the XmlTextReader
2070eb38c7259b04de809f7bc880688f468ac7a15bfDaniel Veillard */
208dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN int XMLCALL
209aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderClose		(xmlTextReaderPtr reader);
210dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN xmlChar * XMLCALL
211aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderGetAttributeNo	(xmlTextReaderPtr reader,
2120eb38c7259b04de809f7bc880688f468ac7a15bfDaniel Veillard						 int no);
213dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN xmlChar * XMLCALL
214aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderGetAttribute	(xmlTextReaderPtr reader,
2150eb38c7259b04de809f7bc880688f468ac7a15bfDaniel Veillard						 const xmlChar *name);
216dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN xmlChar * XMLCALL
217aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderGetAttributeNs	(xmlTextReaderPtr reader,
2180eb38c7259b04de809f7bc880688f468ac7a15bfDaniel Veillard						 const xmlChar *localName,
2190eb38c7259b04de809f7bc880688f468ac7a15bfDaniel Veillard						 const xmlChar *namespaceURI);
220dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN xmlParserInputBufferPtr XMLCALL
221aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderGetRemainder	(xmlTextReaderPtr reader);
222dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN xmlChar * XMLCALL
223aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderLookupNamespace(xmlTextReaderPtr reader,
224da46d2d31e49503b087874cc987045dd09169d26Daniel Veillard						 const xmlChar *prefix);
225dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN int XMLCALL
226aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderMoveToAttributeNo(xmlTextReaderPtr reader,
227da46d2d31e49503b087874cc987045dd09169d26Daniel Veillard						 int no);
228dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN int XMLCALL
229aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderMoveToAttribute(xmlTextReaderPtr reader,
230da46d2d31e49503b087874cc987045dd09169d26Daniel Veillard						 const xmlChar *name);
231dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN int XMLCALL
232aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderMoveToAttributeNs(xmlTextReaderPtr reader,
233da46d2d31e49503b087874cc987045dd09169d26Daniel Veillard						 const xmlChar *localName,
234da46d2d31e49503b087874cc987045dd09169d26Daniel Veillard						 const xmlChar *namespaceURI);
235dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN int XMLCALL
236aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderMoveToFirstAttribute(xmlTextReaderPtr reader);
237dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN int XMLCALL
238aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderMoveToNextAttribute(xmlTextReaderPtr reader);
239dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN int XMLCALL
240aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderMoveToElement	(xmlTextReaderPtr reader);
241dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN int XMLCALL
242aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderNormalization	(xmlTextReaderPtr reader);
243e2811270e81f33a751c88647c48453803586a550Daniel VeillardXMLPUBFUN const xmlChar * XMLCALL
244e2811270e81f33a751c88647c48453803586a550Daniel Veillard		    xmlTextReaderConstEncoding  (xmlTextReaderPtr reader);
245da46d2d31e49503b087874cc987045dd09169d26Daniel Veillard
246beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillard/*
247beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillard * Extensions
248beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillard */
249dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN int XMLCALL
250aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderSetParserProp	(xmlTextReaderPtr reader,
251beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillard						 int prop,
252beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillard						 int value);
253dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN int XMLCALL
254aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderGetParserProp	(xmlTextReaderPtr reader,
255beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillard						 int prop);
256dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
257aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderCurrentNode	(xmlTextReaderPtr reader);
258d671e2863e4f21a2e40400f877ea18a1883120c1Aleksey Sanin
259d671e2863e4f21a2e40400f877ea18a1883120c1Aleksey SaninXMLPUBFUN int XMLCALL
260d671e2863e4f21a2e40400f877ea18a1883120c1Aleksey Sanin            xmlTextReaderGetParserLineNumber(xmlTextReaderPtr reader);
261d671e2863e4f21a2e40400f877ea18a1883120c1Aleksey Sanin
262d671e2863e4f21a2e40400f877ea18a1883120c1Aleksey SaninXMLPUBFUN int XMLCALL
263d671e2863e4f21a2e40400f877ea18a1883120c1Aleksey Sanin            xmlTextReaderGetParserColumnNumber(xmlTextReaderPtr reader);
264d671e2863e4f21a2e40400f877ea18a1883120c1Aleksey Sanin
265dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
2669ee35f36437073d952bc88fd64cf1618aad27c7bDaniel Veillard		    xmlTextReaderPreserve	(xmlTextReaderPtr reader);
26721e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#ifdef LIBXML_PATTERN_ENABLED
268dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN int XMLCALL
2691e90661bb817402f85103c3b9d3ce6ebab570f38Daniel Veillard		    xmlTextReaderPreservePattern(xmlTextReaderPtr reader,
270dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard						 const xmlChar *pattern,
271ffa7b7e2ba3841a80f9c5a69e89cc4b4e457840bDaniel Veillard						 const xmlChar **namespaces);
27221e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#endif /* LIBXML_PATTERN_ENABLED */
273dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN xmlDocPtr XMLCALL
274aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderCurrentDoc	(xmlTextReaderPtr reader);
275dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
276aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderExpand		(xmlTextReaderPtr reader);
277dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN int XMLCALL
278aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderNext		(xmlTextReaderPtr reader);
279198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel VeillardXMLPUBFUN int XMLCALL
280198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard		    xmlTextReaderNextSibling	(xmlTextReaderPtr reader);
281dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN int XMLCALL
282aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderIsValid	(xmlTextReaderPtr reader);
283f4e5576f8f34362b6bec9396ab073fac839dfb22Daniel Veillard#ifdef LIBXML_SCHEMAS_ENABLED
284dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN int XMLCALL
285aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderRelaxNGValidate(xmlTextReaderPtr reader,
286f4e5576f8f34362b6bec9396ab073fac839dfb22Daniel Veillard						 const char *rng);
287dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN int XMLCALL
2881579499025b7c614d82eba0cc6aa9cc2a788f128Noam Postavsky		    xmlTextReaderRelaxNGValidateCtxt(xmlTextReaderPtr reader,
2891579499025b7c614d82eba0cc6aa9cc2a788f128Noam Postavsky						 xmlRelaxNGValidCtxtPtr ctxt,
2901579499025b7c614d82eba0cc6aa9cc2a788f128Noam Postavsky						 int options);
2911579499025b7c614d82eba0cc6aa9cc2a788f128Noam Postavsky
2921579499025b7c614d82eba0cc6aa9cc2a788f128Noam PostavskyXMLPUBFUN int XMLCALL
293aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderRelaxNGSetSchema(xmlTextReaderPtr reader,
29433300b49f0801f5efe6363bd6b85b3bb5ace70fdDaniel Veillard						 xmlRelaxNGPtr schema);
295f10ae12cb8874674e3bc1f0b52b3cfcc2a1d3278Daniel VeillardXMLPUBFUN int XMLCALL
296f10ae12cb8874674e3bc1f0b52b3cfcc2a1d3278Daniel Veillard		    xmlTextReaderSchemaValidate	(xmlTextReaderPtr reader,
297dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard						 const char *xsd);
298bdadaedd8865affa6d09779571daca593ba50d9dKasimier T. BuchcikXMLPUBFUN int XMLCALL
299bdadaedd8865affa6d09779571daca593ba50d9dKasimier T. Buchcik		    xmlTextReaderSchemaValidateCtxt(xmlTextReaderPtr reader,
300bdadaedd8865affa6d09779571daca593ba50d9dKasimier T. Buchcik						 xmlSchemaValidCtxtPtr ctxt,
301bdadaedd8865affa6d09779571daca593ba50d9dKasimier T. Buchcik						 int options);
302dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN int XMLCALL
303f10ae12cb8874674e3bc1f0b52b3cfcc2a1d3278Daniel Veillard		    xmlTextReaderSetSchema	(xmlTextReaderPtr reader,
304dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard						 xmlSchemaPtr schema);
305f4e5576f8f34362b6bec9396ab073fac839dfb22Daniel Veillard#endif
306e2811270e81f33a751c88647c48453803586a550Daniel VeillardXMLPUBFUN const xmlChar * XMLCALL
307e2811270e81f33a751c88647c48453803586a550Daniel Veillard		    xmlTextReaderConstXmlVersion(xmlTextReaderPtr reader);
308e2811270e81f33a751c88647c48453803586a550Daniel VeillardXMLPUBFUN int XMLCALL
309e2811270e81f33a751c88647c48453803586a550Daniel Veillard		    xmlTextReaderStandalone     (xmlTextReaderPtr reader);
31026f70269c80140a7fb8a7aae9ef09c95efa98e70Daniel Veillard
3115e094143e423c01739ac9221f371846fd290be4eDaniel Veillard
3125e094143e423c01739ac9221f371846fd290be4eDaniel Veillard/*
3135e094143e423c01739ac9221f371846fd290be4eDaniel Veillard * Index lookup
3145e094143e423c01739ac9221f371846fd290be4eDaniel Veillard */
3155e094143e423c01739ac9221f371846fd290be4eDaniel VeillardXMLPUBFUN long XMLCALL
3165e094143e423c01739ac9221f371846fd290be4eDaniel Veillard		xmlTextReaderByteConsumed	(xmlTextReaderPtr reader);
3175e094143e423c01739ac9221f371846fd290be4eDaniel Veillard
31826f70269c80140a7fb8a7aae9ef09c95efa98e70Daniel Veillard/*
319fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard * New more complete APIs for simpler creation and reuse of readers
320fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard */
321fc8dc355dac40605e66a7e8722db5077f03076f3Daniel VeillardXMLPUBFUN xmlTextReaderPtr XMLCALL
322198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard		xmlReaderWalker		(xmlDocPtr doc);
323198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel VeillardXMLPUBFUN xmlTextReaderPtr XMLCALL
324fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard		xmlReaderForDoc		(const xmlChar * cur,
325fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *URL,
326fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *encoding,
327fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 int options);
328fc8dc355dac40605e66a7e8722db5077f03076f3Daniel VeillardXMLPUBFUN xmlTextReaderPtr XMLCALL
329fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard		xmlReaderForFile	(const char *filename,
330fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *encoding,
331fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 int options);
332fc8dc355dac40605e66a7e8722db5077f03076f3Daniel VeillardXMLPUBFUN xmlTextReaderPtr XMLCALL
333fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard		xmlReaderForMemory	(const char *buffer,
334fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 int size,
335fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *URL,
336fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *encoding,
337fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 int options);
338fc8dc355dac40605e66a7e8722db5077f03076f3Daniel VeillardXMLPUBFUN xmlTextReaderPtr XMLCALL
339fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard		xmlReaderForFd		(int fd,
340fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *URL,
341fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *encoding,
342fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 int options);
343fc8dc355dac40605e66a7e8722db5077f03076f3Daniel VeillardXMLPUBFUN xmlTextReaderPtr XMLCALL
344fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard		xmlReaderForIO		(xmlInputReadCallback ioread,
345fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 xmlInputCloseCallback ioclose,
346fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 void *ioctx,
347fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *URL,
348fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *encoding,
349fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 int options);
350fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard
351fc8dc355dac40605e66a7e8722db5077f03076f3Daniel VeillardXMLPUBFUN int XMLCALL
352198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard		xmlReaderNewWalker	(xmlTextReaderPtr reader,
353198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard					 xmlDocPtr doc);
354198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel VeillardXMLPUBFUN int XMLCALL
355fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard		xmlReaderNewDoc		(xmlTextReaderPtr reader,
356fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const xmlChar * cur,
357fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *URL,
358fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *encoding,
359fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 int options);
360fc8dc355dac40605e66a7e8722db5077f03076f3Daniel VeillardXMLPUBFUN int XMLCALL
361fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard		xmlReaderNewFile	(xmlTextReaderPtr reader,
362fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *filename,
363fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *encoding,
364fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 int options);
365fc8dc355dac40605e66a7e8722db5077f03076f3Daniel VeillardXMLPUBFUN int XMLCALL
366fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard		xmlReaderNewMemory	(xmlTextReaderPtr reader,
367fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *buffer,
368fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 int size,
369fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *URL,
370fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *encoding,
371fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 int options);
372fc8dc355dac40605e66a7e8722db5077f03076f3Daniel VeillardXMLPUBFUN int XMLCALL
373fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard		xmlReaderNewFd		(xmlTextReaderPtr reader,
374fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 int fd,
375fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *URL,
376fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *encoding,
377fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 int options);
378fc8dc355dac40605e66a7e8722db5077f03076f3Daniel VeillardXMLPUBFUN int XMLCALL
379fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard		xmlReaderNewIO		(xmlTextReaderPtr reader,
380fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 xmlInputReadCallback ioread,
381fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 xmlInputCloseCallback ioclose,
382fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 void *ioctx,
383fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *URL,
384fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *encoding,
385fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 int options);
386fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard/*
38726f70269c80140a7fb8a7aae9ef09c95efa98e70Daniel Veillard * Error handling extensions
38826f70269c80140a7fb8a7aae9ef09c95efa98e70Daniel Veillard */
389417be3ae08346c6510c28d2042dd42a22a74b331Daniel Veillardtypedef void *  xmlTextReaderLocatorPtr;
390dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard
391dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard/**
392dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard * xmlTextReaderErrorFunc:
393dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard * @arg: the user argument
394dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard * @msg: the message
395dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard * @severity: the severity of the error
396dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard * @locator: a locator indicating where the error occured
397dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard *
398dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard * Signature of an error callback from a reader parser
399dee23485f639f0738a4a0cc3159c5140ea425b37Daniel Veillard */
400f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillardtypedef void (XMLCALL *xmlTextReaderErrorFunc)(void *arg,
401f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard					       const char *msg,
402f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard					       xmlParserSeverities severity,
403f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard					       xmlTextReaderLocatorPtr locator);
404dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN int XMLCALL
405f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard	    xmlTextReaderLocatorLineNumber(xmlTextReaderLocatorPtr locator);
406dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN xmlChar * XMLCALL
407f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard	    xmlTextReaderLocatorBaseURI (xmlTextReaderLocatorPtr locator);
408dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN void XMLCALL
409f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard	    xmlTextReaderSetErrorHandler(xmlTextReaderPtr reader,
410f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard					 xmlTextReaderErrorFunc f,
411f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard					 void *arg);
41293d004f9d86662251153e2af6e233e974660be78William M. BrackXMLPUBFUN void XMLCALL
413f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard	    xmlTextReaderSetStructuredErrorHandler(xmlTextReaderPtr reader,
414f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard						   xmlStructuredErrorFunc f,
415f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard						   void *arg);
416dee23485f639f0738a4a0cc3159c5140ea425b37Daniel VeillardXMLPUBFUN void XMLCALL
417f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard	    xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader,
418f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard					 xmlTextReaderErrorFunc *f,
419f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard					 void **arg);
42026f70269c80140a7fb8a7aae9ef09c95efa98e70Daniel Veillard
421438ebbd59af78c436397ae488e42aeca5cad7542Daniel Veillard#endif /* LIBXML_READER_ENABLED */
422438ebbd59af78c436397ae488e42aeca5cad7542Daniel Veillard
423e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard#ifdef __cplusplus
424e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard}
425e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard#endif
426a2351322c89608d09ce1a99e5eccd62d00c79890Daniel Veillard
427e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard#endif /* __XML_XMLREADER_H__ */
428e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard
429