xmlreader.h revision 26f70269c80140a7fb8a7aae9ef09c95efa98e70
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 = 2,
22    XML_PARSER_VALIDATE = 3,
23    XML_PARSER_SUBST_ENTITIES = 4
24} xmlParserProperties;
25
26typedef enum {
27    XMLREADER_SEVERITY_VALIDITY_WARNING = 1,
28    XMLREADER_SEVERITY_VALIDITY_ERROR = 2,
29    XMLREADER_SEVERITY_WARNING = 3,
30    XMLREADER_SEVERITY_ERROR = 4
31} xmlReaderSeverities;
32
33typedef struct _xmlTextReader xmlTextReader;
34typedef xmlTextReader *xmlTextReaderPtr;
35
36/*
37 * Constructors & Destructor
38 */
39xmlTextReaderPtr	xmlNewTextReader	(xmlParserInputBufferPtr input,
40	                                         const char *URI);
41xmlTextReaderPtr	xmlNewTextReaderFilename(const char *URI);
42void			xmlFreeTextReader	(xmlTextReaderPtr reader);
43
44/*
45 * Iterators
46 */
47int		xmlTextReaderRead	(xmlTextReaderPtr reader);
48xmlChar *	xmlTextReaderReadInnerXml	(xmlTextReaderPtr reader);
49xmlChar *	xmlTextReaderReadOuterXml	(xmlTextReaderPtr reader);
50xmlChar *	xmlTextReaderReadString		(xmlTextReaderPtr reader);
51int		xmlTextReaderReadAttributeValue	(xmlTextReaderPtr reader);
52
53/*
54 * Attributes of the node
55 */
56int		xmlTextReaderAttributeCount(xmlTextReaderPtr reader);
57xmlChar *	xmlTextReaderBaseUri	(xmlTextReaderPtr reader);
58int		xmlTextReaderDepth	(xmlTextReaderPtr reader);
59int		xmlTextReaderHasAttributes(xmlTextReaderPtr reader);
60int		xmlTextReaderHasValue(xmlTextReaderPtr reader);
61int		xmlTextReaderIsDefault	(xmlTextReaderPtr reader);
62int		xmlTextReaderIsEmptyElement(xmlTextReaderPtr reader);
63xmlChar *	xmlTextReaderLocalName	(xmlTextReaderPtr reader);
64xmlChar *	xmlTextReaderName	(xmlTextReaderPtr reader);
65xmlChar *	xmlTextReaderNamespaceUri(xmlTextReaderPtr reader);
66int		xmlTextReaderNodeType	(xmlTextReaderPtr reader);
67xmlChar *	xmlTextReaderPrefix	(xmlTextReaderPtr reader);
68int		xmlTextReaderQuoteChar	(xmlTextReaderPtr reader);
69xmlChar *	xmlTextReaderValue	(xmlTextReaderPtr reader);
70xmlChar *	xmlTextReaderXmlLang	(xmlTextReaderPtr reader);
71int		xmlTextReaderReadState	(xmlTextReaderPtr reader);
72
73/*
74 * Methods of the XmlTextReader
75 */
76int		xmlTextReaderClose		(xmlTextReaderPtr reader);
77xmlChar *	xmlTextReaderGetAttributeNo	(xmlTextReaderPtr reader,
78						 int no);
79xmlChar *	xmlTextReaderGetAttribute	(xmlTextReaderPtr reader,
80						 const xmlChar *name);
81xmlChar *	xmlTextReaderGetAttributeNs	(xmlTextReaderPtr reader,
82						 const xmlChar *localName,
83						 const xmlChar *namespaceURI);
84xmlParserInputBufferPtr xmlTextReaderGetRemainder(xmlTextReaderPtr reader);
85xmlChar *	xmlTextReaderLookupNamespace	(xmlTextReaderPtr reader,
86						 const xmlChar *prefix);
87int		xmlTextReaderMoveToAttributeNo	(xmlTextReaderPtr reader,
88						 int no);
89int		xmlTextReaderMoveToAttribute	(xmlTextReaderPtr reader,
90						 const xmlChar *name);
91int		xmlTextReaderMoveToAttributeNs	(xmlTextReaderPtr reader,
92						 const xmlChar *localName,
93						 const xmlChar *namespaceURI);
94int		xmlTextReaderMoveToFirstAttribute(xmlTextReaderPtr reader);
95int		xmlTextReaderMoveToNextAttribute(xmlTextReaderPtr reader);
96int		xmlTextReaderMoveToElement	(xmlTextReaderPtr reader);
97int		xmlTextReaderNormalization	(xmlTextReaderPtr reader);
98
99/*
100 * Extensions
101 */
102int		xmlTextReaderSetParserProp	(xmlTextReaderPtr reader,
103						 int prop,
104						 int value);
105int		xmlTextReaderGetParserProp	(xmlTextReaderPtr reader,
106						 int prop);
107xmlNodePtr	xmlTextReaderCurrentNode	(xmlTextReaderPtr reader);
108xmlDocPtr	xmlTextReaderCurrentDoc		(xmlTextReaderPtr reader);
109
110/*
111 * Error handling extensions
112 */
113typedef void (*xmlTextReaderErrorFunc)          (void *arg,
114						 const char *msg,
115						 int line,
116						 int col,
117						 const char *URI,
118						 xmlReaderSeverities severity);
119void            xmlTextReaderSetErrorHandler    (xmlTextReaderPtr reader,
120						 xmlTextReaderErrorFunc f,
121						 void *arg);
122void            xmlTextReaderGetErrorHandler    (xmlTextReaderPtr reader,
123						 xmlTextReaderErrorFunc *f,
124						 void **arg);
125
126#ifdef __cplusplus
127}
128#endif
129#endif /* __XML_XMLREADER_H__ */
130
131