blob: 457dcd52d8474bb24cb988191bf3db2dce71b725 [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,
Daniel Veillarde18fc182002-12-28 22:56:33 +000021 XML_PARSER_DEFAULTATTRS = 2,
22 XML_PARSER_VALIDATE = 3,
23 XML_PARSER_SUBST_ENTITIES = 4
Daniel Veillardbeb70bd2002-12-18 14:53:54 +000024} xmlParserProperties;
25
Daniel Veillarde1ca5032002-12-09 14:13:43 +000026typedef struct _xmlTextReader xmlTextReader;
27typedef xmlTextReader *xmlTextReaderPtr;
28
29/*
30 * Constructors & Destructor
31 */
Daniel Veillardea7751d2002-12-20 00:16:24 +000032xmlTextReaderPtr xmlNewTextReader (xmlParserInputBufferPtr input,
33 const char *URI);
Daniel Veillarde1ca5032002-12-09 14:13:43 +000034xmlTextReaderPtr xmlNewTextReaderFilename(const char *URI);
35void xmlFreeTextReader (xmlTextReaderPtr reader);
36
37/*
38 * Iterators
39 */
40int xmlTextReaderRead (xmlTextReaderPtr reader);
Daniel Veillard67df8092002-12-16 22:04:11 +000041xmlChar * xmlTextReaderReadInnerXml (xmlTextReaderPtr reader);
42xmlChar * xmlTextReaderReadOuterXml (xmlTextReaderPtr reader);
43xmlChar * xmlTextReaderReadString (xmlTextReaderPtr reader);
Daniel Veillardbeb70bd2002-12-18 14:53:54 +000044int xmlTextReaderReadAttributeValue (xmlTextReaderPtr reader);
Daniel Veillarde1ca5032002-12-09 14:13:43 +000045
46/*
47 * Attributes of the node
48 */
49int xmlTextReaderAttributeCount(xmlTextReaderPtr reader);
50xmlChar * xmlTextReaderBaseUri (xmlTextReaderPtr reader);
51int xmlTextReaderDepth (xmlTextReaderPtr reader);
52int xmlTextReaderHasAttributes(xmlTextReaderPtr reader);
53int xmlTextReaderHasValue(xmlTextReaderPtr reader);
54int xmlTextReaderIsDefault (xmlTextReaderPtr reader);
55int xmlTextReaderIsEmptyElement(xmlTextReaderPtr reader);
56xmlChar * xmlTextReaderLocalName (xmlTextReaderPtr reader);
57xmlChar * xmlTextReaderName (xmlTextReaderPtr reader);
58xmlChar * xmlTextReaderNamespaceUri(xmlTextReaderPtr reader);
59int xmlTextReaderNodeType (xmlTextReaderPtr reader);
60xmlChar * xmlTextReaderPrefix (xmlTextReaderPtr reader);
61int xmlTextReaderQuoteChar (xmlTextReaderPtr reader);
62xmlChar * xmlTextReaderValue (xmlTextReaderPtr reader);
63xmlChar * xmlTextReaderXmlLang (xmlTextReaderPtr reader);
Daniel Veillard67df8092002-12-16 22:04:11 +000064int xmlTextReaderReadState (xmlTextReaderPtr reader);
Daniel Veillard0eb38c72002-12-14 23:00:35 +000065
66/*
67 * Methods of the XmlTextReader
68 */
69int xmlTextReaderClose (xmlTextReaderPtr reader);
70xmlChar * xmlTextReaderGetAttributeNo (xmlTextReaderPtr reader,
71 int no);
72xmlChar * xmlTextReaderGetAttribute (xmlTextReaderPtr reader,
73 const xmlChar *name);
74xmlChar * xmlTextReaderGetAttributeNs (xmlTextReaderPtr reader,
75 const xmlChar *localName,
76 const xmlChar *namespaceURI);
Daniel Veillardda46d2d2002-12-15 23:36:49 +000077xmlParserInputBufferPtr xmlTextReaderGetRemainder(xmlTextReaderPtr reader);
78xmlChar * xmlTextReaderLookupNamespace (xmlTextReaderPtr reader,
79 const xmlChar *prefix);
80int xmlTextReaderMoveToAttributeNo (xmlTextReaderPtr reader,
81 int no);
82int xmlTextReaderMoveToAttribute (xmlTextReaderPtr reader,
83 const xmlChar *name);
84int xmlTextReaderMoveToAttributeNs (xmlTextReaderPtr reader,
85 const xmlChar *localName,
86 const xmlChar *namespaceURI);
87int xmlTextReaderMoveToFirstAttribute(xmlTextReaderPtr reader);
88int xmlTextReaderMoveToNextAttribute(xmlTextReaderPtr reader);
89int xmlTextReaderMoveToElement (xmlTextReaderPtr reader);
Daniel Veillard67df8092002-12-16 22:04:11 +000090int xmlTextReaderNormalization (xmlTextReaderPtr reader);
Daniel Veillardda46d2d2002-12-15 23:36:49 +000091
Daniel Veillardbeb70bd2002-12-18 14:53:54 +000092/*
93 * Extensions
94 */
95int xmlTextReaderSetParserProp (xmlTextReaderPtr reader,
96 int prop,
97 int value);
98int xmlTextReaderGetParserProp (xmlTextReaderPtr reader,
99 int prop);
Daniel Veillarde18fc182002-12-28 22:56:33 +0000100xmlNodePtr xmlTextReaderCurrentNode (xmlTextReaderPtr reader);
101xmlDocPtr xmlTextReaderCurrentDoc (xmlTextReaderPtr reader);
Daniel Veillarde1ca5032002-12-09 14:13:43 +0000102#ifdef __cplusplus
103}
104#endif
105#endif /* __XML_XMLREADER_H__ */
106