xmlreader.h revision e18fc185fa2604ba73f2b259e34796c106ad5545
1e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard/*
2e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard * xmlreader.h : Interfaces, constants and types of the XML streaming API.
3e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard *
4e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard * See Copyright for the status of this software.
5e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard *
6e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard * daniel@veillard.com
7e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard */
8e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard
9e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard#ifndef __XML_XMLREADER_H__
10e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard#define __XML_XMLREADER_H__
11e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard
12e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard#include <libxml/tree.h>
13e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard#include <libxml/xmlIO.h>
14e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard
15e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard#ifdef __cplusplus
16e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillardextern "C" {
17e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard#endif
18e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard
19beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillardtypedef enum {
20beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillard    XML_PARSER_LOADDTD = 1,
21e18fc185fa2604ba73f2b259e34796c106ad5545Daniel Veillard    XML_PARSER_DEFAULTATTRS = 2,
22e18fc185fa2604ba73f2b259e34796c106ad5545Daniel Veillard    XML_PARSER_VALIDATE = 3,
23e18fc185fa2604ba73f2b259e34796c106ad5545Daniel Veillard    XML_PARSER_SUBST_ENTITIES = 4
24beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillard} xmlParserProperties;
25beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillard
26e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillardtypedef struct _xmlTextReader xmlTextReader;
27e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillardtypedef xmlTextReader *xmlTextReaderPtr;
28e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard
29e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard/*
30e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard * Constructors & Destructor
31e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard */
32ea7751d53bf497e873dca39b2c305e300e2574f9Daniel VeillardxmlTextReaderPtr	xmlNewTextReader	(xmlParserInputBufferPtr input,
33ea7751d53bf497e873dca39b2c305e300e2574f9Daniel Veillard	                                         const char *URI);
34e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel VeillardxmlTextReaderPtr	xmlNewTextReaderFilename(const char *URI);
35e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillardvoid			xmlFreeTextReader	(xmlTextReaderPtr reader);
36e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard
37e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard/*
38e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard * Iterators
39e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard */
40e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillardint		xmlTextReaderRead	(xmlTextReaderPtr reader);
4167df809c3a439bcbe258bca6b60144c8a7a0f18cDaniel VeillardxmlChar *	xmlTextReaderReadInnerXml	(xmlTextReaderPtr reader);
4267df809c3a439bcbe258bca6b60144c8a7a0f18cDaniel VeillardxmlChar *	xmlTextReaderReadOuterXml	(xmlTextReaderPtr reader);
4367df809c3a439bcbe258bca6b60144c8a7a0f18cDaniel VeillardxmlChar *	xmlTextReaderReadString		(xmlTextReaderPtr reader);
44beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillardint		xmlTextReaderReadAttributeValue	(xmlTextReaderPtr reader);
45e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard
46e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard/*
47e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard * Attributes of the node
48e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard */
49e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillardint		xmlTextReaderAttributeCount(xmlTextReaderPtr reader);
50e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel VeillardxmlChar *	xmlTextReaderBaseUri	(xmlTextReaderPtr reader);
51e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillardint		xmlTextReaderDepth	(xmlTextReaderPtr reader);
52e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillardint		xmlTextReaderHasAttributes(xmlTextReaderPtr reader);
53e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillardint		xmlTextReaderHasValue(xmlTextReaderPtr reader);
54e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillardint		xmlTextReaderIsDefault	(xmlTextReaderPtr reader);
55e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillardint		xmlTextReaderIsEmptyElement(xmlTextReaderPtr reader);
56e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel VeillardxmlChar *	xmlTextReaderLocalName	(xmlTextReaderPtr reader);
57e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel VeillardxmlChar *	xmlTextReaderName	(xmlTextReaderPtr reader);
58e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel VeillardxmlChar *	xmlTextReaderNamespaceUri(xmlTextReaderPtr reader);
59e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillardint		xmlTextReaderNodeType	(xmlTextReaderPtr reader);
60e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel VeillardxmlChar *	xmlTextReaderPrefix	(xmlTextReaderPtr reader);
61e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillardint		xmlTextReaderQuoteChar	(xmlTextReaderPtr reader);
62e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel VeillardxmlChar *	xmlTextReaderValue	(xmlTextReaderPtr reader);
63e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel VeillardxmlChar *	xmlTextReaderXmlLang	(xmlTextReaderPtr reader);
6467df809c3a439bcbe258bca6b60144c8a7a0f18cDaniel Veillardint		xmlTextReaderReadState	(xmlTextReaderPtr reader);
650eb38c7259b04de809f7bc880688f468ac7a15bfDaniel Veillard
660eb38c7259b04de809f7bc880688f468ac7a15bfDaniel Veillard/*
670eb38c7259b04de809f7bc880688f468ac7a15bfDaniel Veillard * Methods of the XmlTextReader
680eb38c7259b04de809f7bc880688f468ac7a15bfDaniel Veillard */
690eb38c7259b04de809f7bc880688f468ac7a15bfDaniel Veillardint		xmlTextReaderClose		(xmlTextReaderPtr reader);
700eb38c7259b04de809f7bc880688f468ac7a15bfDaniel VeillardxmlChar *	xmlTextReaderGetAttributeNo	(xmlTextReaderPtr reader,
710eb38c7259b04de809f7bc880688f468ac7a15bfDaniel Veillard						 int no);
720eb38c7259b04de809f7bc880688f468ac7a15bfDaniel VeillardxmlChar *	xmlTextReaderGetAttribute	(xmlTextReaderPtr reader,
730eb38c7259b04de809f7bc880688f468ac7a15bfDaniel Veillard						 const xmlChar *name);
740eb38c7259b04de809f7bc880688f468ac7a15bfDaniel VeillardxmlChar *	xmlTextReaderGetAttributeNs	(xmlTextReaderPtr reader,
750eb38c7259b04de809f7bc880688f468ac7a15bfDaniel Veillard						 const xmlChar *localName,
760eb38c7259b04de809f7bc880688f468ac7a15bfDaniel Veillard						 const xmlChar *namespaceURI);
77da46d2d31e49503b087874cc987045dd09169d26Daniel VeillardxmlParserInputBufferPtr xmlTextReaderGetRemainder(xmlTextReaderPtr reader);
78da46d2d31e49503b087874cc987045dd09169d26Daniel VeillardxmlChar *	xmlTextReaderLookupNamespace	(xmlTextReaderPtr reader,
79da46d2d31e49503b087874cc987045dd09169d26Daniel Veillard						 const xmlChar *prefix);
80da46d2d31e49503b087874cc987045dd09169d26Daniel Veillardint		xmlTextReaderMoveToAttributeNo	(xmlTextReaderPtr reader,
81da46d2d31e49503b087874cc987045dd09169d26Daniel Veillard						 int no);
82da46d2d31e49503b087874cc987045dd09169d26Daniel Veillardint		xmlTextReaderMoveToAttribute	(xmlTextReaderPtr reader,
83da46d2d31e49503b087874cc987045dd09169d26Daniel Veillard						 const xmlChar *name);
84da46d2d31e49503b087874cc987045dd09169d26Daniel Veillardint		xmlTextReaderMoveToAttributeNs	(xmlTextReaderPtr reader,
85da46d2d31e49503b087874cc987045dd09169d26Daniel Veillard						 const xmlChar *localName,
86da46d2d31e49503b087874cc987045dd09169d26Daniel Veillard						 const xmlChar *namespaceURI);
87da46d2d31e49503b087874cc987045dd09169d26Daniel Veillardint		xmlTextReaderMoveToFirstAttribute(xmlTextReaderPtr reader);
88da46d2d31e49503b087874cc987045dd09169d26Daniel Veillardint		xmlTextReaderMoveToNextAttribute(xmlTextReaderPtr reader);
89da46d2d31e49503b087874cc987045dd09169d26Daniel Veillardint		xmlTextReaderMoveToElement	(xmlTextReaderPtr reader);
9067df809c3a439bcbe258bca6b60144c8a7a0f18cDaniel Veillardint		xmlTextReaderNormalization	(xmlTextReaderPtr reader);
91da46d2d31e49503b087874cc987045dd09169d26Daniel Veillard
92beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillard/*
93beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillard * Extensions
94beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillard */
95beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillardint		xmlTextReaderSetParserProp	(xmlTextReaderPtr reader,
96beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillard						 int prop,
97beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillard						 int value);
98beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillardint		xmlTextReaderGetParserProp	(xmlTextReaderPtr reader,
99beb70bd39b74c8146c184857792730b139e7e16bDaniel Veillard						 int prop);
100e18fc185fa2604ba73f2b259e34796c106ad5545Daniel VeillardxmlNodePtr	xmlTextReaderCurrentNode	(xmlTextReaderPtr reader);
101e18fc185fa2604ba73f2b259e34796c106ad5545Daniel VeillardxmlDocPtr	xmlTextReaderCurrentDoc		(xmlTextReaderPtr reader);
102e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard#ifdef __cplusplus
103e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard}
104e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard#endif
105e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard#endif /* __XML_XMLREADER_H__ */
106e1ca50330b59d32b228ad9c05a874a96cef9748fDaniel Veillard
107