xmlreader.h revision ea7751d53bf497e873dca39b2c305e300e2574f9
1/*
2 * xmlreader.h : Interfaces, constants and types of the XML streaming API.
3 *
4 * See Copyright for the status of this software.
5 *
6 * daniel@veillard.com
7 */
8
9#ifndef __XML_XMLREADER_H__
10#define __XML_XMLREADER_H__
11
12#include <libxml/tree.h>
13#include <libxml/xmlIO.h>
14
15#ifdef __cplusplus
16extern "C" {
17#endif
18
19typedef enum {
20    XML_PARSER_LOADDTD = 1,
21    XML_PARSER_DEFAULTATTRS,
22    XML_PARSER_VALIDATE
23} xmlParserProperties;
24
25typedef struct _xmlTextReader xmlTextReader;
26typedef xmlTextReader *xmlTextReaderPtr;
27
28/*
29 * Constructors & Destructor
30 */
31xmlTextReaderPtr	xmlNewTextReader	(xmlParserInputBufferPtr input,
32	                                         const char *URI);
33xmlTextReaderPtr	xmlNewTextReaderFilename(const char *URI);
34void			xmlFreeTextReader	(xmlTextReaderPtr reader);
35
36/*
37 * Iterators
38 */
39int		xmlTextReaderRead	(xmlTextReaderPtr reader);
40xmlChar *	xmlTextReaderReadInnerXml	(xmlTextReaderPtr reader);
41xmlChar *	xmlTextReaderReadOuterXml	(xmlTextReaderPtr reader);
42xmlChar *	xmlTextReaderReadString		(xmlTextReaderPtr reader);
43int		xmlTextReaderReadAttributeValue	(xmlTextReaderPtr reader);
44
45/*
46 * Attributes of the node
47 */
48int		xmlTextReaderAttributeCount(xmlTextReaderPtr reader);
49xmlChar *	xmlTextReaderBaseUri	(xmlTextReaderPtr reader);
50int		xmlTextReaderDepth	(xmlTextReaderPtr reader);
51int		xmlTextReaderHasAttributes(xmlTextReaderPtr reader);
52int		xmlTextReaderHasValue(xmlTextReaderPtr reader);
53int		xmlTextReaderIsDefault	(xmlTextReaderPtr reader);
54int		xmlTextReaderIsEmptyElement(xmlTextReaderPtr reader);
55xmlChar *	xmlTextReaderLocalName	(xmlTextReaderPtr reader);
56xmlChar *	xmlTextReaderName	(xmlTextReaderPtr reader);
57xmlChar *	xmlTextReaderNamespaceUri(xmlTextReaderPtr reader);
58int		xmlTextReaderNodeType	(xmlTextReaderPtr reader);
59xmlChar *	xmlTextReaderPrefix	(xmlTextReaderPtr reader);
60int		xmlTextReaderQuoteChar	(xmlTextReaderPtr reader);
61xmlChar *	xmlTextReaderValue	(xmlTextReaderPtr reader);
62xmlChar *	xmlTextReaderXmlLang	(xmlTextReaderPtr reader);
63int		xmlTextReaderReadState	(xmlTextReaderPtr reader);
64
65/*
66 * Methods of the XmlTextReader
67 */
68int		xmlTextReaderClose		(xmlTextReaderPtr reader);
69xmlChar *	xmlTextReaderGetAttributeNo	(xmlTextReaderPtr reader,
70						 int no);
71xmlChar *	xmlTextReaderGetAttribute	(xmlTextReaderPtr reader,
72						 const xmlChar *name);
73xmlChar *	xmlTextReaderGetAttributeNs	(xmlTextReaderPtr reader,
74						 const xmlChar *localName,
75						 const xmlChar *namespaceURI);
76xmlParserInputBufferPtr xmlTextReaderGetRemainder(xmlTextReaderPtr reader);
77xmlChar *	xmlTextReaderLookupNamespace	(xmlTextReaderPtr reader,
78						 const xmlChar *prefix);
79int		xmlTextReaderMoveToAttributeNo	(xmlTextReaderPtr reader,
80						 int no);
81int		xmlTextReaderMoveToAttribute	(xmlTextReaderPtr reader,
82						 const xmlChar *name);
83int		xmlTextReaderMoveToAttributeNs	(xmlTextReaderPtr reader,
84						 const xmlChar *localName,
85						 const xmlChar *namespaceURI);
86int		xmlTextReaderMoveToFirstAttribute(xmlTextReaderPtr reader);
87int		xmlTextReaderMoveToNextAttribute(xmlTextReaderPtr reader);
88int		xmlTextReaderMoveToElement	(xmlTextReaderPtr reader);
89int		xmlTextReaderNormalization	(xmlTextReaderPtr reader);
90
91/*
92 * Extensions
93 */
94int		xmlTextReaderSetParserProp	(xmlTextReaderPtr reader,
95						 int prop,
96						 int value);
97int		xmlTextReaderGetParserProp	(xmlTextReaderPtr reader,
98						 int prop);
99#ifdef __cplusplus
100}
101#endif
102#endif /* __XML_XMLREADER_H__ */
103
104