xmlreader.h revision 33300b49f0801f5efe6363bd6b85b3bb5ace70fd
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#ifdef LIBXML_SCHEMAS_ENABLED 15#include <libxml/relaxng.h> 16#endif 17 18#ifdef __cplusplus 19extern "C" { 20#endif 21 22typedef enum { 23 XML_PARSER_LOADDTD = 1, 24 XML_PARSER_DEFAULTATTRS = 2, 25 XML_PARSER_VALIDATE = 3, 26 XML_PARSER_SUBST_ENTITIES = 4 27} xmlParserProperties; 28 29typedef enum { 30 XML_PARSER_SEVERITY_VALIDITY_WARNING = 1, 31 XML_PARSER_SEVERITY_VALIDITY_ERROR = 2, 32 XML_PARSER_SEVERITY_WARNING = 3, 33 XML_PARSER_SEVERITY_ERROR = 4 34} xmlParserSeverities; 35 36typedef struct _xmlTextReader xmlTextReader; 37typedef xmlTextReader *xmlTextReaderPtr; 38 39/* 40 * Constructors & Destructor 41 */ 42xmlTextReaderPtr xmlNewTextReader (xmlParserInputBufferPtr input, 43 const char *URI); 44xmlTextReaderPtr xmlNewTextReaderFilename(const char *URI); 45void xmlFreeTextReader (xmlTextReaderPtr reader); 46 47/* 48 * Iterators 49 */ 50int xmlTextReaderRead (xmlTextReaderPtr reader); 51xmlChar * xmlTextReaderReadInnerXml (xmlTextReaderPtr reader); 52xmlChar * xmlTextReaderReadOuterXml (xmlTextReaderPtr reader); 53xmlChar * xmlTextReaderReadString (xmlTextReaderPtr reader); 54int xmlTextReaderReadAttributeValue (xmlTextReaderPtr reader); 55 56/* 57 * Attributes of the node 58 */ 59int xmlTextReaderAttributeCount(xmlTextReaderPtr reader); 60xmlChar * xmlTextReaderBaseUri (xmlTextReaderPtr reader); 61int xmlTextReaderDepth (xmlTextReaderPtr reader); 62int xmlTextReaderHasAttributes(xmlTextReaderPtr reader); 63int xmlTextReaderHasValue(xmlTextReaderPtr reader); 64int xmlTextReaderIsDefault (xmlTextReaderPtr reader); 65int xmlTextReaderIsEmptyElement(xmlTextReaderPtr reader); 66xmlChar * xmlTextReaderLocalName (xmlTextReaderPtr reader); 67xmlChar * xmlTextReaderName (xmlTextReaderPtr reader); 68xmlChar * xmlTextReaderNamespaceUri(xmlTextReaderPtr reader); 69int xmlTextReaderNodeType (xmlTextReaderPtr reader); 70xmlChar * xmlTextReaderPrefix (xmlTextReaderPtr reader); 71int xmlTextReaderQuoteChar (xmlTextReaderPtr reader); 72xmlChar * xmlTextReaderValue (xmlTextReaderPtr reader); 73xmlChar * xmlTextReaderXmlLang (xmlTextReaderPtr reader); 74int xmlTextReaderReadState (xmlTextReaderPtr reader); 75 76/* 77 * Methods of the XmlTextReader 78 */ 79int xmlTextReaderClose (xmlTextReaderPtr reader); 80xmlChar * xmlTextReaderGetAttributeNo (xmlTextReaderPtr reader, 81 int no); 82xmlChar * xmlTextReaderGetAttribute (xmlTextReaderPtr reader, 83 const xmlChar *name); 84xmlChar * xmlTextReaderGetAttributeNs (xmlTextReaderPtr reader, 85 const xmlChar *localName, 86 const xmlChar *namespaceURI); 87xmlParserInputBufferPtr xmlTextReaderGetRemainder(xmlTextReaderPtr reader); 88xmlChar * xmlTextReaderLookupNamespace (xmlTextReaderPtr reader, 89 const xmlChar *prefix); 90int xmlTextReaderMoveToAttributeNo (xmlTextReaderPtr reader, 91 int no); 92int xmlTextReaderMoveToAttribute (xmlTextReaderPtr reader, 93 const xmlChar *name); 94int xmlTextReaderMoveToAttributeNs (xmlTextReaderPtr reader, 95 const xmlChar *localName, 96 const xmlChar *namespaceURI); 97int xmlTextReaderMoveToFirstAttribute(xmlTextReaderPtr reader); 98int xmlTextReaderMoveToNextAttribute(xmlTextReaderPtr reader); 99int xmlTextReaderMoveToElement (xmlTextReaderPtr reader); 100int xmlTextReaderNormalization (xmlTextReaderPtr reader); 101 102/* 103 * Extensions 104 */ 105int xmlTextReaderSetParserProp (xmlTextReaderPtr reader, 106 int prop, 107 int value); 108int xmlTextReaderGetParserProp (xmlTextReaderPtr reader, 109 int prop); 110xmlNodePtr xmlTextReaderCurrentNode (xmlTextReaderPtr reader); 111xmlDocPtr xmlTextReaderCurrentDoc (xmlTextReaderPtr reader); 112xmlNodePtr xmlTextReaderExpand (xmlTextReaderPtr reader); 113int xmlTextReaderNext (xmlTextReaderPtr reader); 114int xmlTextReaderIsValid (xmlTextReaderPtr reader); 115#ifdef LIBXML_SCHEMAS_ENABLED 116int xmlTextReaderRelaxNGValidate (xmlTextReaderPtr reader, 117 const char *rng); 118int xmlTextReaderRelaxNGSetSchema (xmlTextReaderPtr reader, 119 xmlRelaxNGPtr schema); 120#endif 121 122/* 123 * Error handling extensions 124 */ 125typedef void * xmlTextReaderLocatorPtr; 126typedef void (*xmlTextReaderErrorFunc) (void *arg, 127 const char *msg, 128 xmlParserSeverities severity, 129 xmlTextReaderLocatorPtr locator); 130int xmlTextReaderLocatorLineNumber (xmlTextReaderLocatorPtr locator); 131/*int xmlTextReaderLocatorLinePosition(xmlTextReaderLocatorPtr locator);*/ 132xmlChar * xmlTextReaderLocatorBaseURI (xmlTextReaderLocatorPtr locator); 133void xmlTextReaderSetErrorHandler (xmlTextReaderPtr reader, 134 xmlTextReaderErrorFunc f, 135 void *arg); 136void xmlTextReaderGetErrorHandler (xmlTextReaderPtr reader, 137 xmlTextReaderErrorFunc *f, 138 void **arg); 139 140#ifdef __cplusplus 141} 142#endif 143#endif /* __XML_XMLREADER_H__ */ 144 145