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