xmlreader.h revision d671e2863e4f21a2e40400f877ea18a1883120c1
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>
1833300b49f0801f5efe6363bd6b85b3bb5ace70fdDaniel Veillard#endif
19e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard
20a2351322c89608d09ce1a99e5eccd62d00c79890Daniel Veillard#ifdef LIBXML_READER_ENABLED
21a2351322c89608d09ce1a99e5eccd62d00c79890Daniel Veillard
22e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard#ifdef __cplusplus
23e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillardextern "C" {
24e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard#endif
25e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard
26da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard/**
27da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard * xmlTextReaderMode:
28da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard *
29da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard * Internal state values for the reader.
30da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard */
31da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillardtypedef enum {
32da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard    XML_TEXTREADER_MODE_INITIAL = 0,
33da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard    XML_TEXTREADER_MODE_INTERACTIVE = 1,
34da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard    XML_TEXTREADER_MODE_ERROR = 2,
35da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard    XML_TEXTREADER_MODE_EOF =3,
36da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard    XML_TEXTREADER_MODE_CLOSED = 4,
37da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard    XML_TEXTREADER_MODE_READING = 5
38da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard} xmlTextReaderMode;
39da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard
40da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard/**
41da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard * xmlParserProperties:
42da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard *
43da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard * Some common options to use with xmlTextReaderSetParserProp, but it
44da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard * is better to use xmlParserOption and the xmlReaderNewxxx and
45da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard * xmlReaderForxxx APIs now.
46da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard */
47beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillardtypedef enum {
48beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillard    XML_PARSER_LOADDTD = 1,
49e18fc185fa2604ba73f2b259e34796c106ad5545Daniel Veillard    XML_PARSER_DEFAULTATTRS = 2,
50e18fc185fa2604ba73f2b259e34796c106ad5545Daniel Veillard    XML_PARSER_VALIDATE = 3,
51e18fc185fa2604ba73f2b259e34796c106ad5545Daniel Veillard    XML_PARSER_SUBST_ENTITIES = 4
52beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillard} xmlParserProperties;
53beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillard
54da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard/**
55da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard * xmlParserSeverities:
56da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard *
57da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard * How severe an error callback is when the per-reader error callback API
58da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard * is used.
59da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard */
6026f70269c80140a7fb8a7aae9ef09c95efa98e70Daniel Veillardtypedef enum {
61417be3ae08346c6510c28d2042dd42a22a74b331Daniel Veillard    XML_PARSER_SEVERITY_VALIDITY_WARNING = 1,
62417be3ae08346c6510c28d2042dd42a22a74b331Daniel Veillard    XML_PARSER_SEVERITY_VALIDITY_ERROR = 2,
63417be3ae08346c6510c28d2042dd42a22a74b331Daniel Veillard    XML_PARSER_SEVERITY_WARNING = 3,
64417be3ae08346c6510c28d2042dd42a22a74b331Daniel Veillard    XML_PARSER_SEVERITY_ERROR = 4
65417be3ae08346c6510c28d2042dd42a22a74b331Daniel Veillard} xmlParserSeverities;
6626f70269c80140a7fb8a7aae9ef09c95efa98e70Daniel Veillard
67da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard/**
68da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard * xmlReaderTypes:
69da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard *
70da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard * Predefined constants for the different types of nodes.
71da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard */
720ab6fa01f5291e116d4217767d13d775b35c72a0Daniel Veillardtypedef enum {
73d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_NONE = 0,
74d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_ELEMENT = 1,
75d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_ATTRIBUTE = 2,
76d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_TEXT = 3,
77d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_CDATA = 4,
78d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_ENTITY_REFERENCE = 5,
79d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_ENTITY = 6,
80d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_PROCESSING_INSTRUCTION = 7,
81d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_COMMENT = 8,
82d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_DOCUMENT = 9,
83d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_DOCUMENT_TYPE = 10,
84d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_DOCUMENT_FRAGMENT = 11,
85d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_NOTATION = 12,
86d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_WHITESPACE = 13,
87d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_SIGNIFICANT_WHITESPACE = 14,
88d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_END_ELEMENT = 15,
89d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_END_ENTITY = 16,
90d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard    XML_READER_TYPE_XML_DECLARATION = 17
910ab6fa01f5291e116d4217767d13d775b35c72a0Daniel Veillard} xmlReaderTypes;
92d6038e0283e9f814e408fe4d3dd54cce6b0b32d4Daniel Veillard
93da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard/**
94da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard * xmlTextReader:
95da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard *
96da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard * Structure for an xmlReader context.
97da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard */
98e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillardtypedef struct _xmlTextReader xmlTextReader;
99da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard
100da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard/**
101da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard * xmlTextReaderPtr:
102da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard *
103da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard * Pointer to an xmlReader context.
104da0ff5da92cb7d0b9004b3e60094729bca554e74Daniel Veillard */
105e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillardtypedef xmlTextReader *xmlTextReaderPtr;
106e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard
107e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard/*
108e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard * Constructors & Destructor
109e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard */
11076874e4516a1d7b467d400604f8aef77be015727Igor ZlatkovicXMLPUBFUN xmlTextReaderPtr XMLCALL
11176874e4516a1d7b467d400604f8aef77be015727Igor Zlatkovic			xmlNewTextReader	(xmlParserInputBufferPtr input,
112ea7751d53bf497e873dca39b2c305e300e2574f9Daniel Veillard	                                         const char *URI);
113aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN xmlTextReaderPtr XMLCALL
114aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic			xmlNewTextReaderFilename(const char *URI);
115aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN void XMLCALL
116aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic			xmlFreeTextReader	(xmlTextReaderPtr reader);
117e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard
118e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard/*
119e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard * Iterators
120e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard */
121aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL
122aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic			xmlTextReaderRead	(xmlTextReaderPtr reader);
123aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN xmlChar * XMLCALL
124aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic			xmlTextReaderReadInnerXml	(xmlTextReaderPtr reader);
125aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN xmlChar * XMLCALL
126aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic			xmlTextReaderReadOuterXml	(xmlTextReaderPtr reader);
127aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN xmlChar * XMLCALL
128aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic			xmlTextReaderReadString		(xmlTextReaderPtr reader);
129aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL
130aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic			xmlTextReaderReadAttributeValue	(xmlTextReaderPtr reader);
131e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard
132e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard/*
133e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard * Attributes of the node
134e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard */
135aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL
136aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic			xmlTextReaderAttributeCount(xmlTextReaderPtr reader);
137aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL
138aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic			xmlTextReaderDepth	(xmlTextReaderPtr reader);
139aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL
140aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic			xmlTextReaderHasAttributes(xmlTextReaderPtr reader);
141aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL
142aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic			xmlTextReaderHasValue(xmlTextReaderPtr reader);
143aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL
144aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic			xmlTextReaderIsDefault	(xmlTextReaderPtr reader);
145aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL
146aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic			xmlTextReaderIsEmptyElement(xmlTextReaderPtr reader);
147e72c508cd0c7a829602906f54fa8a29abaf3afa6Daniel VeillardXMLPUBFUN int XMLCALL
148e72c508cd0c7a829602906f54fa8a29abaf3afa6Daniel Veillard			xmlTextReaderNodeType	(xmlTextReaderPtr reader);
149e72c508cd0c7a829602906f54fa8a29abaf3afa6Daniel VeillardXMLPUBFUN int XMLCALL
150e72c508cd0c7a829602906f54fa8a29abaf3afa6Daniel Veillard			xmlTextReaderQuoteChar	(xmlTextReaderPtr reader);
151e72c508cd0c7a829602906f54fa8a29abaf3afa6Daniel VeillardXMLPUBFUN int XMLCALL
152e72c508cd0c7a829602906f54fa8a29abaf3afa6Daniel Veillard			xmlTextReaderReadState	(xmlTextReaderPtr reader);
153e2811270e81f33a751c88647c48453803586a550Daniel VeillardXMLPUBFUN int XMLCALL
154e2811270e81f33a751c88647c48453803586a550Daniel Veillard                        xmlTextReaderIsNamespaceDecl(xmlTextReaderPtr reader);
1550eb38c7259b04de809f7bc880688f468ac7a15bfDaniel Veillard
156e72c508cd0c7a829602906f54fa8a29abaf3afa6Daniel VeillardXMLPUBFUN const xmlChar * XMLCALL
157e72c508cd0c7a829602906f54fa8a29abaf3afa6Daniel Veillard		    xmlTextReaderConstBaseUri	(xmlTextReaderPtr reader);
158e72c508cd0c7a829602906f54fa8a29abaf3afa6Daniel VeillardXMLPUBFUN const xmlChar * XMLCALL
159e72c508cd0c7a829602906f54fa8a29abaf3afa6Daniel Veillard		    xmlTextReaderConstLocalName	(xmlTextReaderPtr reader);
160e72c508cd0c7a829602906f54fa8a29abaf3afa6Daniel VeillardXMLPUBFUN const xmlChar * XMLCALL
161e72c508cd0c7a829602906f54fa8a29abaf3afa6Daniel Veillard		    xmlTextReaderConstName	(xmlTextReaderPtr reader);
162e72c508cd0c7a829602906f54fa8a29abaf3afa6Daniel VeillardXMLPUBFUN const xmlChar * XMLCALL
163e72c508cd0c7a829602906f54fa8a29abaf3afa6Daniel Veillard		    xmlTextReaderConstNamespaceUri(xmlTextReaderPtr reader);
164e72c508cd0c7a829602906f54fa8a29abaf3afa6Daniel VeillardXMLPUBFUN const xmlChar * XMLCALL
165e72c508cd0c7a829602906f54fa8a29abaf3afa6Daniel Veillard		    xmlTextReaderConstPrefix	(xmlTextReaderPtr reader);
166e72c508cd0c7a829602906f54fa8a29abaf3afa6Daniel VeillardXMLPUBFUN const xmlChar * XMLCALL
167e72c508cd0c7a829602906f54fa8a29abaf3afa6Daniel Veillard		    xmlTextReaderConstXmlLang	(xmlTextReaderPtr reader);
168f85ce8e334f448078a3d71a812824fa5b45d9b07Daniel VeillardXMLPUBFUN const xmlChar * XMLCALL
169f85ce8e334f448078a3d71a812824fa5b45d9b07Daniel Veillard		    xmlTextReaderConstString	(xmlTextReaderPtr reader,
170f85ce8e334f448078a3d71a812824fa5b45d9b07Daniel Veillard		    				 const xmlChar *str);
171198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel VeillardXMLPUBFUN const xmlChar * XMLCALL
172198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard		    xmlTextReaderConstValue	(xmlTextReaderPtr reader);
173198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard
174198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard/*
175198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard * use the Const version of the routine for
176198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard * better performance and simpler code
177198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard */
178198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel VeillardXMLPUBFUN xmlChar * XMLCALL
179198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard			xmlTextReaderBaseUri	(xmlTextReaderPtr reader);
180198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel VeillardXMLPUBFUN xmlChar * XMLCALL
181198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard			xmlTextReaderLocalName	(xmlTextReaderPtr reader);
182198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel VeillardXMLPUBFUN xmlChar * XMLCALL
183198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard			xmlTextReaderName	(xmlTextReaderPtr reader);
184198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel VeillardXMLPUBFUN xmlChar * XMLCALL
185198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard			xmlTextReaderNamespaceUri(xmlTextReaderPtr reader);
186198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel VeillardXMLPUBFUN xmlChar * XMLCALL
187198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard			xmlTextReaderPrefix	(xmlTextReaderPtr reader);
188198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel VeillardXMLPUBFUN xmlChar * XMLCALL
189198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard			xmlTextReaderXmlLang	(xmlTextReaderPtr reader);
190198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel VeillardXMLPUBFUN xmlChar * XMLCALL
191198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard			xmlTextReaderValue	(xmlTextReaderPtr reader);
192f85ce8e334f448078a3d71a812824fa5b45d9b07Daniel Veillard
1930eb38c7259b04de809f7bc880688f468ac7a15bfDaniel Veillard/*
1940eb38c7259b04de809f7bc880688f468ac7a15bfDaniel Veillard * Methods of the XmlTextReader
1950eb38c7259b04de809f7bc880688f468ac7a15bfDaniel Veillard */
196aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL
197aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderClose		(xmlTextReaderPtr reader);
198aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN xmlChar * XMLCALL
199aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderGetAttributeNo	(xmlTextReaderPtr reader,
2000eb38c7259b04de809f7bc880688f468ac7a15bfDaniel Veillard						 int no);
201aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN xmlChar * XMLCALL
202aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderGetAttribute	(xmlTextReaderPtr reader,
2030eb38c7259b04de809f7bc880688f468ac7a15bfDaniel Veillard						 const xmlChar *name);
204aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN xmlChar * XMLCALL
205aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderGetAttributeNs	(xmlTextReaderPtr reader,
2060eb38c7259b04de809f7bc880688f468ac7a15bfDaniel Veillard						 const xmlChar *localName,
2070eb38c7259b04de809f7bc880688f468ac7a15bfDaniel Veillard						 const xmlChar *namespaceURI);
208aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN xmlParserInputBufferPtr XMLCALL
209aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderGetRemainder	(xmlTextReaderPtr reader);
210aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN xmlChar * XMLCALL
211aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderLookupNamespace(xmlTextReaderPtr reader,
212da46d2d31e49503b087874cc987045dd09169d26Daniel Veillard						 const xmlChar *prefix);
213aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL
214aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderMoveToAttributeNo(xmlTextReaderPtr reader,
215da46d2d31e49503b087874cc987045dd09169d26Daniel Veillard						 int no);
216aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL
217aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderMoveToAttribute(xmlTextReaderPtr reader,
218da46d2d31e49503b087874cc987045dd09169d26Daniel Veillard						 const xmlChar *name);
219aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL
220aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderMoveToAttributeNs(xmlTextReaderPtr reader,
221da46d2d31e49503b087874cc987045dd09169d26Daniel Veillard						 const xmlChar *localName,
222da46d2d31e49503b087874cc987045dd09169d26Daniel Veillard						 const xmlChar *namespaceURI);
223aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL
224aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderMoveToFirstAttribute(xmlTextReaderPtr reader);
225aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL
226aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderMoveToNextAttribute(xmlTextReaderPtr reader);
227aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL
228aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderMoveToElement	(xmlTextReaderPtr reader);
229aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL
230aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderNormalization	(xmlTextReaderPtr reader);
231e2811270e81f33a751c88647c48453803586a550Daniel VeillardXMLPUBFUN const xmlChar * XMLCALL
232e2811270e81f33a751c88647c48453803586a550Daniel Veillard		    xmlTextReaderConstEncoding  (xmlTextReaderPtr reader);
233da46d2d31e49503b087874cc987045dd09169d26Daniel Veillard
234beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillard/*
235beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillard * Extensions
236beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillard */
237aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL
238aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderSetParserProp	(xmlTextReaderPtr reader,
239beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillard						 int prop,
240beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillard						 int value);
241aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL
242aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderGetParserProp	(xmlTextReaderPtr reader,
243beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillard						 int prop);
244aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN xmlNodePtr XMLCALL
245aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderCurrentNode	(xmlTextReaderPtr reader);
246d671e2863e4f21a2e40400f877ea18a1883120c1Aleksey Sanin
247d671e2863e4f21a2e40400f877ea18a1883120c1Aleksey SaninXMLPUBFUN int XMLCALL
248d671e2863e4f21a2e40400f877ea18a1883120c1Aleksey Sanin            xmlTextReaderGetParserLineNumber(xmlTextReaderPtr reader);
249d671e2863e4f21a2e40400f877ea18a1883120c1Aleksey Sanin
250d671e2863e4f21a2e40400f877ea18a1883120c1Aleksey SaninXMLPUBFUN int XMLCALL
251d671e2863e4f21a2e40400f877ea18a1883120c1Aleksey Sanin            xmlTextReaderGetParserColumnNumber(xmlTextReaderPtr reader);
252d671e2863e4f21a2e40400f877ea18a1883120c1Aleksey Sanin
2539ee35f36437073d952bc88fd64cf1618aad27c7bDaniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
2549ee35f36437073d952bc88fd64cf1618aad27c7bDaniel Veillard		    xmlTextReaderPreserve	(xmlTextReaderPtr reader);
25521e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#ifdef LIBXML_PATTERN_ENABLED
2561e90661bb817402f85103c3b9d3ce6ebab570f38Daniel VeillardXMLPUBFUN int XMLCALL
2571e90661bb817402f85103c3b9d3ce6ebab570f38Daniel Veillard		    xmlTextReaderPreservePattern(xmlTextReaderPtr reader,
258ffa7b7e2ba3841a80f9c5a69e89cc4b4e457840bDaniel Veillard		    				 const xmlChar *pattern,
259ffa7b7e2ba3841a80f9c5a69e89cc4b4e457840bDaniel Veillard						 const xmlChar **namespaces);
26021e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#endif /* LIBXML_PATTERN_ENABLED */
261aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN xmlDocPtr XMLCALL
262aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderCurrentDoc	(xmlTextReaderPtr reader);
263aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN xmlNodePtr XMLCALL
264aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderExpand		(xmlTextReaderPtr reader);
265aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL
266aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderNext		(xmlTextReaderPtr reader);
267198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel VeillardXMLPUBFUN int XMLCALL
268198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard		    xmlTextReaderNextSibling	(xmlTextReaderPtr reader);
269aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL
270aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderIsValid	(xmlTextReaderPtr reader);
271f4e5576f8f34362b6bec9396ab073fac839dfb22Daniel Veillard#ifdef LIBXML_SCHEMAS_ENABLED
272aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL
273aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderRelaxNGValidate(xmlTextReaderPtr reader,
274f4e5576f8f34362b6bec9396ab073fac839dfb22Daniel Veillard						 const char *rng);
275aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL
276aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderRelaxNGSetSchema(xmlTextReaderPtr reader,
27733300b49f0801f5efe6363bd6b85b3bb5ace70fdDaniel Veillard						 xmlRelaxNGPtr schema);
278f4e5576f8f34362b6bec9396ab073fac839dfb22Daniel Veillard#endif
279e2811270e81f33a751c88647c48453803586a550Daniel VeillardXMLPUBFUN const xmlChar * XMLCALL
280e2811270e81f33a751c88647c48453803586a550Daniel Veillard		    xmlTextReaderConstXmlVersion(xmlTextReaderPtr reader);
281e2811270e81f33a751c88647c48453803586a550Daniel VeillardXMLPUBFUN int XMLCALL
282e2811270e81f33a751c88647c48453803586a550Daniel Veillard		    xmlTextReaderStandalone     (xmlTextReaderPtr reader);
28326f70269c80140a7fb8a7aae9ef09c95efa98e70Daniel Veillard
28426f70269c80140a7fb8a7aae9ef09c95efa98e70Daniel Veillard/*
285fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard * New more complete APIs for simpler creation and reuse of readers
286fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard */
287fc8dc355dac40605e66a7e8722db5077f03076f3Daniel VeillardXMLPUBFUN xmlTextReaderPtr XMLCALL
288198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard		xmlReaderWalker		(xmlDocPtr doc);
289198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel VeillardXMLPUBFUN xmlTextReaderPtr XMLCALL
290fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard		xmlReaderForDoc		(const xmlChar * cur,
291fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *URL,
292fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *encoding,
293fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 int options);
294fc8dc355dac40605e66a7e8722db5077f03076f3Daniel VeillardXMLPUBFUN xmlTextReaderPtr XMLCALL
295fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard		xmlReaderForFile	(const char *filename,
296fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *encoding,
297fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 int options);
298fc8dc355dac40605e66a7e8722db5077f03076f3Daniel VeillardXMLPUBFUN xmlTextReaderPtr XMLCALL
299fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard		xmlReaderForMemory	(const char *buffer,
300fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 int size,
301fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *URL,
302fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *encoding,
303fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 int options);
304fc8dc355dac40605e66a7e8722db5077f03076f3Daniel VeillardXMLPUBFUN xmlTextReaderPtr XMLCALL
305fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard		xmlReaderForFd		(int fd,
306fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *URL,
307fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *encoding,
308fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 int options);
309fc8dc355dac40605e66a7e8722db5077f03076f3Daniel VeillardXMLPUBFUN xmlTextReaderPtr XMLCALL
310fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard		xmlReaderForIO		(xmlInputReadCallback ioread,
311fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 xmlInputCloseCallback ioclose,
312fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 void *ioctx,
313fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *URL,
314fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *encoding,
315fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 int options);
316fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard
317fc8dc355dac40605e66a7e8722db5077f03076f3Daniel VeillardXMLPUBFUN int XMLCALL
318198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard		xmlReaderNewWalker	(xmlTextReaderPtr reader,
319198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel Veillard					 xmlDocPtr doc);
320198c1bfc1cd2cc031410e4be4e5faebed45c557cDaniel VeillardXMLPUBFUN int XMLCALL
321fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard		xmlReaderNewDoc		(xmlTextReaderPtr reader,
322fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const xmlChar * cur,
323fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *URL,
324fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *encoding,
325fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 int options);
326fc8dc355dac40605e66a7e8722db5077f03076f3Daniel VeillardXMLPUBFUN int XMLCALL
327fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard		xmlReaderNewFile	(xmlTextReaderPtr reader,
328fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *filename,
329fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *encoding,
330fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 int options);
331fc8dc355dac40605e66a7e8722db5077f03076f3Daniel VeillardXMLPUBFUN int XMLCALL
332fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard		xmlReaderNewMemory	(xmlTextReaderPtr reader,
333fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *buffer,
334fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 int size,
335fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *URL,
336fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *encoding,
337fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 int options);
338fc8dc355dac40605e66a7e8722db5077f03076f3Daniel VeillardXMLPUBFUN int XMLCALL
339fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard		xmlReaderNewFd		(xmlTextReaderPtr reader,
340fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 int fd,
341fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *URL,
342fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *encoding,
343fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 int options);
344fc8dc355dac40605e66a7e8722db5077f03076f3Daniel VeillardXMLPUBFUN int XMLCALL
345fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard		xmlReaderNewIO		(xmlTextReaderPtr reader,
346fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 xmlInputReadCallback ioread,
347fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 xmlInputCloseCallback ioclose,
348fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 void *ioctx,
349fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *URL,
350fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 const char *encoding,
351fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard					 int options);
352fc8dc355dac40605e66a7e8722db5077f03076f3Daniel Veillard/*
35326f70269c80140a7fb8a7aae9ef09c95efa98e70Daniel Veillard * Error handling extensions
35426f70269c80140a7fb8a7aae9ef09c95efa98e70Daniel Veillard */
355417be3ae08346c6510c28d2042dd42a22a74b331Daniel Veillardtypedef void *  xmlTextReaderLocatorPtr;
35618a88ce2f4bf7fd107d62bcd5724658306e08cb2Igor Zlatkovictypedef void   (XMLCALL *xmlTextReaderErrorFunc)        (void *arg,
35726f70269c80140a7fb8a7aae9ef09c95efa98e70Daniel Veillard						 const char *msg,
358417be3ae08346c6510c28d2042dd42a22a74b331Daniel Veillard						 xmlParserSeverities severity,
359417be3ae08346c6510c28d2042dd42a22a74b331Daniel Veillard						 xmlTextReaderLocatorPtr locator);
360aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL
361aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderLocatorLineNumber(xmlTextReaderLocatorPtr locator);
362417be3ae08346c6510c28d2042dd42a22a74b331Daniel Veillard/*int             xmlTextReaderLocatorLinePosition(xmlTextReaderLocatorPtr locator);*/
363aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN xmlChar * XMLCALL
364aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderLocatorBaseURI (xmlTextReaderLocatorPtr locator);
365aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN void XMLCALL
366aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderSetErrorHandler(xmlTextReaderPtr reader,
36726f70269c80140a7fb8a7aae9ef09c95efa98e70Daniel Veillard						 xmlTextReaderErrorFunc f,
36826f70269c80140a7fb8a7aae9ef09c95efa98e70Daniel Veillard						 void *arg);
36993d004f9d86662251153e2af6e233e974660be78William M. BrackXMLPUBFUN void XMLCALL
37093d004f9d86662251153e2af6e233e974660be78William M. Brack		    xmlTextReaderSetStructuredErrorHandler(xmlTextReaderPtr reader,
37193d004f9d86662251153e2af6e233e974660be78William M. Brack							   xmlStructuredErrorFunc f,
37293d004f9d86662251153e2af6e233e974660be78William M. Brack							   void *arg);
373aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN void XMLCALL
374aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		    xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader,
37526f70269c80140a7fb8a7aae9ef09c95efa98e70Daniel Veillard						 xmlTextReaderErrorFunc *f,
37626f70269c80140a7fb8a7aae9ef09c95efa98e70Daniel Veillard						 void **arg);
37726f70269c80140a7fb8a7aae9ef09c95efa98e70Daniel Veillard
378e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard#ifdef __cplusplus
379e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard}
380e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard#endif
381a2351322c89608d09ce1a99e5eccd62d00c79890Daniel Veillard
382a2351322c89608d09ce1a99e5eccd62d00c79890Daniel Veillard#endif /* LIBXML_READER_ENABLED */
383a2351322c89608d09ce1a99e5eccd62d00c79890Daniel Veillard
384e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard#endif /* __XML_XMLREADER_H__ */
385e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard
386