blob: 27c8ba3b855a0d91a6af9ce22819e7df31e07533 [file] [log] [blame]
Daniel Veillarde1ca5032002-12-09 14:13:43 +00001/*
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
Daniel Veillardbeb70bd2002-12-18 14:53:54 +000019typedef enum {
20 XML_PARSER_LOADDTD = 1,
21 XML_PARSER_DEFAULTATTRS,
22 XML_PARSER_VALIDATE
23} xmlParserProperties;
24
Daniel Veillarde1ca5032002-12-09 14:13:43 +000025typedef struct _xmlTextReader xmlTextReader;
26typedef xmlTextReader *xmlTextReaderPtr;
27
28/*
29 * Constructors & Destructor
30 */
31xmlTextReaderPtr xmlNewTextReader (xmlParserInputBufferPtr input);
32xmlTextReaderPtr xmlNewTextReaderFilename(const char *URI);
33void xmlFreeTextReader (xmlTextReaderPtr reader);
34
35/*
36 * Iterators
37 */
38int xmlTextReaderRead (xmlTextReaderPtr reader);
Daniel Veillard67df8092002-12-16 22:04:11 +000039xmlChar * xmlTextReaderReadInnerXml (xmlTextReaderPtr reader);
40xmlChar * xmlTextReaderReadOuterXml (xmlTextReaderPtr reader);
41xmlChar * xmlTextReaderReadString (xmlTextReaderPtr reader);
Daniel Veillardbeb70bd2002-12-18 14:53:54 +000042int xmlTextReaderReadAttributeValue (xmlTextReaderPtr reader);
Daniel Veillarde1ca5032002-12-09 14:13:43 +000043
44/*
45 * Attributes of the node
46 */
47int xmlTextReaderAttributeCount(xmlTextReaderPtr reader);
48xmlChar * xmlTextReaderBaseUri (xmlTextReaderPtr reader);
49int xmlTextReaderDepth (xmlTextReaderPtr reader);
50int xmlTextReaderHasAttributes(xmlTextReaderPtr reader);
51int xmlTextReaderHasValue(xmlTextReaderPtr reader);
52int xmlTextReaderIsDefault (xmlTextReaderPtr reader);
53int xmlTextReaderIsEmptyElement(xmlTextReaderPtr reader);
54xmlChar * xmlTextReaderLocalName (xmlTextReaderPtr reader);
55xmlChar * xmlTextReaderName (xmlTextReaderPtr reader);
56xmlChar * xmlTextReaderNamespaceUri(xmlTextReaderPtr reader);
57int xmlTextReaderNodeType (xmlTextReaderPtr reader);
58xmlChar * xmlTextReaderPrefix (xmlTextReaderPtr reader);
59int xmlTextReaderQuoteChar (xmlTextReaderPtr reader);
60xmlChar * xmlTextReaderValue (xmlTextReaderPtr reader);
61xmlChar * xmlTextReaderXmlLang (xmlTextReaderPtr reader);
Daniel Veillard67df8092002-12-16 22:04:11 +000062int xmlTextReaderReadState (xmlTextReaderPtr reader);
Daniel Veillard0eb38c72002-12-14 23:00:35 +000063
64/*
65 * Methods of the XmlTextReader
66 */
67int xmlTextReaderClose (xmlTextReaderPtr reader);
68xmlChar * xmlTextReaderGetAttributeNo (xmlTextReaderPtr reader,
69 int no);
70xmlChar * xmlTextReaderGetAttribute (xmlTextReaderPtr reader,
71 const xmlChar *name);
72xmlChar * xmlTextReaderGetAttributeNs (xmlTextReaderPtr reader,
73 const xmlChar *localName,
74 const xmlChar *namespaceURI);
Daniel Veillardda46d2d2002-12-15 23:36:49 +000075xmlParserInputBufferPtr xmlTextReaderGetRemainder(xmlTextReaderPtr reader);
76xmlChar * xmlTextReaderLookupNamespace (xmlTextReaderPtr reader,
77 const xmlChar *prefix);
78int xmlTextReaderMoveToAttributeNo (xmlTextReaderPtr reader,
79 int no);
80int xmlTextReaderMoveToAttribute (xmlTextReaderPtr reader,
81 const xmlChar *name);
82int xmlTextReaderMoveToAttributeNs (xmlTextReaderPtr reader,
83 const xmlChar *localName,
84 const xmlChar *namespaceURI);
85int xmlTextReaderMoveToFirstAttribute(xmlTextReaderPtr reader);
86int xmlTextReaderMoveToNextAttribute(xmlTextReaderPtr reader);
87int xmlTextReaderMoveToElement (xmlTextReaderPtr reader);
Daniel Veillard67df8092002-12-16 22:04:11 +000088int xmlTextReaderNormalization (xmlTextReaderPtr reader);
Daniel Veillardda46d2d2002-12-15 23:36:49 +000089
Daniel Veillardbeb70bd2002-12-18 14:53:54 +000090/*
91 * Extensions
92 */
93int xmlTextReaderSetParserProp (xmlTextReaderPtr reader,
94 int prop,
95 int value);
96int xmlTextReaderGetParserProp (xmlTextReaderPtr reader,
97 int prop);
Daniel Veillarde1ca5032002-12-09 14:13:43 +000098#ifdef __cplusplus
99}
100#endif
101#endif /* __XML_XMLREADER_H__ */
102