blob: fbe1de0f46f069ff7729b5171170f941d7b71730 [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 */
Daniel Veillardea7751d2002-12-20 00:16:24 +000031xmlTextReaderPtr xmlNewTextReader (xmlParserInputBufferPtr input,
32 const char *URI);
Daniel Veillarde1ca5032002-12-09 14:13:43 +000033xmlTextReaderPtr xmlNewTextReaderFilename(const char *URI);
34void xmlFreeTextReader (xmlTextReaderPtr reader);
35
36/*
37 * Iterators
38 */
39int xmlTextReaderRead (xmlTextReaderPtr reader);
Daniel Veillard67df8092002-12-16 22:04:11 +000040xmlChar * xmlTextReaderReadInnerXml (xmlTextReaderPtr reader);
41xmlChar * xmlTextReaderReadOuterXml (xmlTextReaderPtr reader);
42xmlChar * xmlTextReaderReadString (xmlTextReaderPtr reader);
Daniel Veillardbeb70bd2002-12-18 14:53:54 +000043int xmlTextReaderReadAttributeValue (xmlTextReaderPtr reader);
Daniel Veillarde1ca5032002-12-09 14:13:43 +000044
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);
Daniel Veillard67df8092002-12-16 22:04:11 +000063int xmlTextReaderReadState (xmlTextReaderPtr reader);
Daniel Veillard0eb38c72002-12-14 23:00:35 +000064
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);
Daniel Veillardda46d2d2002-12-15 23:36:49 +000076xmlParserInputBufferPtr 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);
Daniel Veillard67df8092002-12-16 22:04:11 +000089int xmlTextReaderNormalization (xmlTextReaderPtr reader);
Daniel Veillardda46d2d2002-12-15 23:36:49 +000090
Daniel Veillardbeb70bd2002-12-18 14:53:54 +000091/*
92 * Extensions
93 */
94int xmlTextReaderSetParserProp (xmlTextReaderPtr reader,
95 int prop,
96 int value);
97int xmlTextReaderGetParserProp (xmlTextReaderPtr reader,
98 int prop);
Daniel Veillarde1ca5032002-12-09 14:13:43 +000099#ifdef __cplusplus
100}
101#endif
102#endif /* __XML_XMLREADER_H__ */
103