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