/* * xmlreader.h : Interfaces, constants and types of the XML streaming API. * * See Copyright for the status of this software. * * daniel@veillard.com */ #ifndef __XML_XMLREADER_H__ #define __XML_XMLREADER_H__ #include #include #ifdef LIBXML_SCHEMAS_ENABLED #include #endif #ifdef __cplusplus extern "C" { #endif typedef enum { XML_PARSER_LOADDTD = 1, XML_PARSER_DEFAULTATTRS = 2, XML_PARSER_VALIDATE = 3, XML_PARSER_SUBST_ENTITIES = 4 } xmlParserProperties; typedef enum { XML_PARSER_SEVERITY_VALIDITY_WARNING = 1, XML_PARSER_SEVERITY_VALIDITY_ERROR = 2, XML_PARSER_SEVERITY_WARNING = 3, XML_PARSER_SEVERITY_ERROR = 4 } xmlParserSeverities; typedef struct _xmlTextReader xmlTextReader; typedef xmlTextReader *xmlTextReaderPtr; /* * Constructors & Destructor */ xmlTextReaderPtr xmlNewTextReader (xmlParserInputBufferPtr input, const char *URI); xmlTextReaderPtr xmlNewTextReaderFilename(const char *URI); void xmlFreeTextReader (xmlTextReaderPtr reader); /* * Iterators */ int xmlTextReaderRead (xmlTextReaderPtr reader); xmlChar * xmlTextReaderReadInnerXml (xmlTextReaderPtr reader); xmlChar * xmlTextReaderReadOuterXml (xmlTextReaderPtr reader); xmlChar * xmlTextReaderReadString (xmlTextReaderPtr reader); int xmlTextReaderReadAttributeValue (xmlTextReaderPtr reader); /* * Attributes of the node */ int xmlTextReaderAttributeCount(xmlTextReaderPtr reader); xmlChar * xmlTextReaderBaseUri (xmlTextReaderPtr reader); int xmlTextReaderDepth (xmlTextReaderPtr reader); int xmlTextReaderHasAttributes(xmlTextReaderPtr reader); int xmlTextReaderHasValue(xmlTextReaderPtr reader); int xmlTextReaderIsDefault (xmlTextReaderPtr reader); int xmlTextReaderIsEmptyElement(xmlTextReaderPtr reader); xmlChar * xmlTextReaderLocalName (xmlTextReaderPtr reader); xmlChar * xmlTextReaderName (xmlTextReaderPtr reader); xmlChar * xmlTextReaderNamespaceUri(xmlTextReaderPtr reader); int xmlTextReaderNodeType (xmlTextReaderPtr reader); xmlChar * xmlTextReaderPrefix (xmlTextReaderPtr reader); int xmlTextReaderQuoteChar (xmlTextReaderPtr reader); xmlChar * xmlTextReaderValue (xmlTextReaderPtr reader); xmlChar * xmlTextReaderXmlLang (xmlTextReaderPtr reader); int xmlTextReaderReadState (xmlTextReaderPtr reader); /* * Methods of the XmlTextReader */ int xmlTextReaderClose (xmlTextReaderPtr reader); xmlChar * xmlTextReaderGetAttributeNo (xmlTextReaderPtr reader, int no); xmlChar * xmlTextReaderGetAttribute (xmlTextReaderPtr reader, const xmlChar *name); xmlChar * xmlTextReaderGetAttributeNs (xmlTextReaderPtr reader, const xmlChar *localName, const xmlChar *namespaceURI); xmlParserInputBufferPtr xmlTextReaderGetRemainder(xmlTextReaderPtr reader); xmlChar * xmlTextReaderLookupNamespace (xmlTextReaderPtr reader, const xmlChar *prefix); int xmlTextReaderMoveToAttributeNo (xmlTextReaderPtr reader, int no); int xmlTextReaderMoveToAttribute (xmlTextReaderPtr reader, const xmlChar *name); int xmlTextReaderMoveToAttributeNs (xmlTextReaderPtr reader, const xmlChar *localName, const xmlChar *namespaceURI); int xmlTextReaderMoveToFirstAttribute(xmlTextReaderPtr reader); int xmlTextReaderMoveToNextAttribute(xmlTextReaderPtr reader); int xmlTextReaderMoveToElement (xmlTextReaderPtr reader); int xmlTextReaderNormalization (xmlTextReaderPtr reader); /* * Extensions */ int xmlTextReaderSetParserProp (xmlTextReaderPtr reader, int prop, int value); int xmlTextReaderGetParserProp (xmlTextReaderPtr reader, int prop); xmlNodePtr xmlTextReaderCurrentNode (xmlTextReaderPtr reader); xmlDocPtr xmlTextReaderCurrentDoc (xmlTextReaderPtr reader); xmlNodePtr xmlTextReaderExpand (xmlTextReaderPtr reader); int xmlTextReaderNext (xmlTextReaderPtr reader); int xmlTextReaderIsValid (xmlTextReaderPtr reader); #ifdef LIBXML_SCHEMAS_ENABLED int xmlTextReaderRelaxNGValidate (xmlTextReaderPtr reader, const char *rng); int xmlTextReaderRelaxNGSetSchema (xmlTextReaderPtr reader, xmlRelaxNGPtr schema); #endif /* * Error handling extensions */ typedef void * xmlTextReaderLocatorPtr; typedef void (*xmlTextReaderErrorFunc) (void *arg, const char *msg, xmlParserSeverities severity, xmlTextReaderLocatorPtr locator); int xmlTextReaderLocatorLineNumber (xmlTextReaderLocatorPtr locator); /*int xmlTextReaderLocatorLinePosition(xmlTextReaderLocatorPtr locator);*/ xmlChar * xmlTextReaderLocatorBaseURI (xmlTextReaderLocatorPtr locator); void xmlTextReaderSetErrorHandler (xmlTextReaderPtr reader, xmlTextReaderErrorFunc f, void *arg); void xmlTextReaderGetErrorHandler (xmlTextReaderPtr reader, xmlTextReaderErrorFunc *f, void **arg); #ifdef __cplusplus } #endif #endif /* __XML_XMLREADER_H__ */