| /* |
| * Summary: the XMLReader implementation |
| * Description: API of the XML streaming API based on C# interfaces. |
| * |
| * Copy: See Copyright for the status of this software. |
| * |
| * Author: Daniel Veillard |
| */ |
| |
| #ifndef __XML_XMLREADER_H__ |
| #define __XML_XMLREADER_H__ |
| |
| #include <libxml/xmlversion.h> |
| #include <libxml/tree.h> |
| #include <libxml/xmlIO.h> |
| #ifdef LIBXML_SCHEMAS_ENABLED |
| #include <libxml/relaxng.h> |
| #include <libxml/xmlschemas.h> |
| #endif |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| /** |
| * xmlParserSeverities: |
| * |
| * How severe an error callback is when the per-reader error callback API |
| * is used. |
| */ |
| 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; |
| |
| #ifdef LIBXML_READER_ENABLED |
| |
| /** |
| * xmlTextReaderMode: |
| * |
| * Internal state values for the reader. |
| */ |
| typedef enum { |
| XML_TEXTREADER_MODE_INITIAL = 0, |
| XML_TEXTREADER_MODE_INTERACTIVE = 1, |
| XML_TEXTREADER_MODE_ERROR = 2, |
| XML_TEXTREADER_MODE_EOF =3, |
| XML_TEXTREADER_MODE_CLOSED = 4, |
| XML_TEXTREADER_MODE_READING = 5 |
| } xmlTextReaderMode; |
| |
| /** |
| * xmlParserProperties: |
| * |
| * Some common options to use with xmlTextReaderSetParserProp, but it |
| * is better to use xmlParserOption and the xmlReaderNewxxx and |
| * xmlReaderForxxx APIs now. |
| */ |
| typedef enum { |
| XML_PARSER_LOADDTD = 1, |
| XML_PARSER_DEFAULTATTRS = 2, |
| XML_PARSER_VALIDATE = 3, |
| XML_PARSER_SUBST_ENTITIES = 4 |
| } xmlParserProperties; |
| |
| /** |
| * xmlReaderTypes: |
| * |
| * Predefined constants for the different types of nodes. |
| */ |
| typedef enum { |
| XML_READER_TYPE_NONE = 0, |
| XML_READER_TYPE_ELEMENT = 1, |
| XML_READER_TYPE_ATTRIBUTE = 2, |
| XML_READER_TYPE_TEXT = 3, |
| XML_READER_TYPE_CDATA = 4, |
| XML_READER_TYPE_ENTITY_REFERENCE = 5, |
| XML_READER_TYPE_ENTITY = 6, |
| XML_READER_TYPE_PROCESSING_INSTRUCTION = 7, |
| XML_READER_TYPE_COMMENT = 8, |
| XML_READER_TYPE_DOCUMENT = 9, |
| XML_READER_TYPE_DOCUMENT_TYPE = 10, |
| XML_READER_TYPE_DOCUMENT_FRAGMENT = 11, |
| XML_READER_TYPE_NOTATION = 12, |
| XML_READER_TYPE_WHITESPACE = 13, |
| XML_READER_TYPE_SIGNIFICANT_WHITESPACE = 14, |
| XML_READER_TYPE_END_ELEMENT = 15, |
| XML_READER_TYPE_END_ENTITY = 16, |
| XML_READER_TYPE_XML_DECLARATION = 17 |
| } xmlReaderTypes; |
| |
| /** |
| * xmlTextReader: |
| * |
| * Structure for an xmlReader context. |
| */ |
| typedef struct _xmlTextReader xmlTextReader; |
| |
| /** |
| * xmlTextReaderPtr: |
| * |
| * Pointer to an xmlReader context. |
| */ |
| typedef xmlTextReader *xmlTextReaderPtr; |
| |
| /* |
| * Constructors & Destructor |
| */ |
| XMLPUBFUN xmlTextReaderPtr XMLCALL |
| xmlNewTextReader (xmlParserInputBufferPtr input, |
| const char *URI); |
| XMLPUBFUN xmlTextReaderPtr XMLCALL |
| xmlNewTextReaderFilename(const char *URI); |
| |
| XMLPUBFUN void XMLCALL |
| xmlFreeTextReader (xmlTextReaderPtr reader); |
| |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderSetup(xmlTextReaderPtr reader, |
| xmlParserInputBufferPtr input, const char *URL, |
| const char *encoding, int options); |
| |
| /* |
| * Iterators |
| */ |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderRead (xmlTextReaderPtr reader); |
| |
| #ifdef LIBXML_WRITER_ENABLED |
| XMLPUBFUN xmlChar * XMLCALL |
| xmlTextReaderReadInnerXml (xmlTextReaderPtr reader); |
| |
| XMLPUBFUN xmlChar * XMLCALL |
| xmlTextReaderReadOuterXml (xmlTextReaderPtr reader); |
| #endif |
| |
| XMLPUBFUN xmlChar * XMLCALL |
| xmlTextReaderReadString (xmlTextReaderPtr reader); |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderReadAttributeValue (xmlTextReaderPtr reader); |
| |
| /* |
| * Attributes of the node |
| */ |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderAttributeCount(xmlTextReaderPtr reader); |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderDepth (xmlTextReaderPtr reader); |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderHasAttributes(xmlTextReaderPtr reader); |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderHasValue(xmlTextReaderPtr reader); |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderIsDefault (xmlTextReaderPtr reader); |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderIsEmptyElement(xmlTextReaderPtr reader); |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderNodeType (xmlTextReaderPtr reader); |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderQuoteChar (xmlTextReaderPtr reader); |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderReadState (xmlTextReaderPtr reader); |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderIsNamespaceDecl(xmlTextReaderPtr reader); |
| |
| XMLPUBFUN const xmlChar * XMLCALL |
| xmlTextReaderConstBaseUri (xmlTextReaderPtr reader); |
| XMLPUBFUN const xmlChar * XMLCALL |
| xmlTextReaderConstLocalName (xmlTextReaderPtr reader); |
| XMLPUBFUN const xmlChar * XMLCALL |
| xmlTextReaderConstName (xmlTextReaderPtr reader); |
| XMLPUBFUN const xmlChar * XMLCALL |
| xmlTextReaderConstNamespaceUri(xmlTextReaderPtr reader); |
| XMLPUBFUN const xmlChar * XMLCALL |
| xmlTextReaderConstPrefix (xmlTextReaderPtr reader); |
| XMLPUBFUN const xmlChar * XMLCALL |
| xmlTextReaderConstXmlLang (xmlTextReaderPtr reader); |
| XMLPUBFUN const xmlChar * XMLCALL |
| xmlTextReaderConstString (xmlTextReaderPtr reader, |
| const xmlChar *str); |
| XMLPUBFUN const xmlChar * XMLCALL |
| xmlTextReaderConstValue (xmlTextReaderPtr reader); |
| |
| /* |
| * use the Const version of the routine for |
| * better performance and simpler code |
| */ |
| XMLPUBFUN xmlChar * XMLCALL |
| xmlTextReaderBaseUri (xmlTextReaderPtr reader); |
| XMLPUBFUN xmlChar * XMLCALL |
| xmlTextReaderLocalName (xmlTextReaderPtr reader); |
| XMLPUBFUN xmlChar * XMLCALL |
| xmlTextReaderName (xmlTextReaderPtr reader); |
| XMLPUBFUN xmlChar * XMLCALL |
| xmlTextReaderNamespaceUri(xmlTextReaderPtr reader); |
| XMLPUBFUN xmlChar * XMLCALL |
| xmlTextReaderPrefix (xmlTextReaderPtr reader); |
| XMLPUBFUN xmlChar * XMLCALL |
| xmlTextReaderXmlLang (xmlTextReaderPtr reader); |
| XMLPUBFUN xmlChar * XMLCALL |
| xmlTextReaderValue (xmlTextReaderPtr reader); |
| |
| /* |
| * Methods of the XmlTextReader |
| */ |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderClose (xmlTextReaderPtr reader); |
| XMLPUBFUN xmlChar * XMLCALL |
| xmlTextReaderGetAttributeNo (xmlTextReaderPtr reader, |
| int no); |
| XMLPUBFUN xmlChar * XMLCALL |
| xmlTextReaderGetAttribute (xmlTextReaderPtr reader, |
| const xmlChar *name); |
| XMLPUBFUN xmlChar * XMLCALL |
| xmlTextReaderGetAttributeNs (xmlTextReaderPtr reader, |
| const xmlChar *localName, |
| const xmlChar *namespaceURI); |
| XMLPUBFUN xmlParserInputBufferPtr XMLCALL |
| xmlTextReaderGetRemainder (xmlTextReaderPtr reader); |
| XMLPUBFUN xmlChar * XMLCALL |
| xmlTextReaderLookupNamespace(xmlTextReaderPtr reader, |
| const xmlChar *prefix); |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderMoveToAttributeNo(xmlTextReaderPtr reader, |
| int no); |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderMoveToAttribute(xmlTextReaderPtr reader, |
| const xmlChar *name); |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderMoveToAttributeNs(xmlTextReaderPtr reader, |
| const xmlChar *localName, |
| const xmlChar *namespaceURI); |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderMoveToFirstAttribute(xmlTextReaderPtr reader); |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderMoveToNextAttribute(xmlTextReaderPtr reader); |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderMoveToElement (xmlTextReaderPtr reader); |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderNormalization (xmlTextReaderPtr reader); |
| XMLPUBFUN const xmlChar * XMLCALL |
| xmlTextReaderConstEncoding (xmlTextReaderPtr reader); |
| |
| /* |
| * Extensions |
| */ |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderSetParserProp (xmlTextReaderPtr reader, |
| int prop, |
| int value); |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderGetParserProp (xmlTextReaderPtr reader, |
| int prop); |
| XMLPUBFUN xmlNodePtr XMLCALL |
| xmlTextReaderCurrentNode (xmlTextReaderPtr reader); |
| |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderGetParserLineNumber(xmlTextReaderPtr reader); |
| |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderGetParserColumnNumber(xmlTextReaderPtr reader); |
| |
| XMLPUBFUN xmlNodePtr XMLCALL |
| xmlTextReaderPreserve (xmlTextReaderPtr reader); |
| #ifdef LIBXML_PATTERN_ENABLED |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderPreservePattern(xmlTextReaderPtr reader, |
| const xmlChar *pattern, |
| const xmlChar **namespaces); |
| #endif /* LIBXML_PATTERN_ENABLED */ |
| XMLPUBFUN xmlDocPtr XMLCALL |
| xmlTextReaderCurrentDoc (xmlTextReaderPtr reader); |
| XMLPUBFUN xmlNodePtr XMLCALL |
| xmlTextReaderExpand (xmlTextReaderPtr reader); |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderNext (xmlTextReaderPtr reader); |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderNextSibling (xmlTextReaderPtr reader); |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderIsValid (xmlTextReaderPtr reader); |
| #ifdef LIBXML_SCHEMAS_ENABLED |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderRelaxNGValidate(xmlTextReaderPtr reader, |
| const char *rng); |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderRelaxNGSetSchema(xmlTextReaderPtr reader, |
| xmlRelaxNGPtr schema); |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderSchemaValidate (xmlTextReaderPtr reader, |
| const char *xsd); |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderSchemaValidateCtxt(xmlTextReaderPtr reader, |
| xmlSchemaValidCtxtPtr ctxt, |
| int options); |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderSetSchema (xmlTextReaderPtr reader, |
| xmlSchemaPtr schema); |
| #endif |
| XMLPUBFUN const xmlChar * XMLCALL |
| xmlTextReaderConstXmlVersion(xmlTextReaderPtr reader); |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderStandalone (xmlTextReaderPtr reader); |
| |
| |
| /* |
| * Index lookup |
| */ |
| XMLPUBFUN long XMLCALL |
| xmlTextReaderByteConsumed (xmlTextReaderPtr reader); |
| |
| /* |
| * New more complete APIs for simpler creation and reuse of readers |
| */ |
| XMLPUBFUN xmlTextReaderPtr XMLCALL |
| xmlReaderWalker (xmlDocPtr doc); |
| XMLPUBFUN xmlTextReaderPtr XMLCALL |
| xmlReaderForDoc (const xmlChar * cur, |
| const char *URL, |
| const char *encoding, |
| int options); |
| XMLPUBFUN xmlTextReaderPtr XMLCALL |
| xmlReaderForFile (const char *filename, |
| const char *encoding, |
| int options); |
| XMLPUBFUN xmlTextReaderPtr XMLCALL |
| xmlReaderForMemory (const char *buffer, |
| int size, |
| const char *URL, |
| const char *encoding, |
| int options); |
| XMLPUBFUN xmlTextReaderPtr XMLCALL |
| xmlReaderForFd (int fd, |
| const char *URL, |
| const char *encoding, |
| int options); |
| XMLPUBFUN xmlTextReaderPtr XMLCALL |
| xmlReaderForIO (xmlInputReadCallback ioread, |
| xmlInputCloseCallback ioclose, |
| void *ioctx, |
| const char *URL, |
| const char *encoding, |
| int options); |
| |
| XMLPUBFUN int XMLCALL |
| xmlReaderNewWalker (xmlTextReaderPtr reader, |
| xmlDocPtr doc); |
| XMLPUBFUN int XMLCALL |
| xmlReaderNewDoc (xmlTextReaderPtr reader, |
| const xmlChar * cur, |
| const char *URL, |
| const char *encoding, |
| int options); |
| XMLPUBFUN int XMLCALL |
| xmlReaderNewFile (xmlTextReaderPtr reader, |
| const char *filename, |
| const char *encoding, |
| int options); |
| XMLPUBFUN int XMLCALL |
| xmlReaderNewMemory (xmlTextReaderPtr reader, |
| const char *buffer, |
| int size, |
| const char *URL, |
| const char *encoding, |
| int options); |
| XMLPUBFUN int XMLCALL |
| xmlReaderNewFd (xmlTextReaderPtr reader, |
| int fd, |
| const char *URL, |
| const char *encoding, |
| int options); |
| XMLPUBFUN int XMLCALL |
| xmlReaderNewIO (xmlTextReaderPtr reader, |
| xmlInputReadCallback ioread, |
| xmlInputCloseCallback ioclose, |
| void *ioctx, |
| const char *URL, |
| const char *encoding, |
| int options); |
| /* |
| * Error handling extensions |
| */ |
| typedef void * xmlTextReaderLocatorPtr; |
| |
| /** |
| * xmlTextReaderErrorFunc: |
| * @arg: the user argument |
| * @msg: the message |
| * @severity: the severity of the error |
| * @locator: a locator indicating where the error occured |
| * |
| * Signature of an error callback from a reader parser |
| */ |
| typedef void (XMLCALL *xmlTextReaderErrorFunc)(void *arg, |
| const char *msg, |
| xmlParserSeverities severity, |
| xmlTextReaderLocatorPtr locator); |
| XMLPUBFUN int XMLCALL |
| xmlTextReaderLocatorLineNumber(xmlTextReaderLocatorPtr locator); |
| /*int xmlTextReaderLocatorLinePosition(xmlTextReaderLocatorPtr locator);*/ |
| XMLPUBFUN xmlChar * XMLCALL |
| xmlTextReaderLocatorBaseURI (xmlTextReaderLocatorPtr locator); |
| XMLPUBFUN void XMLCALL |
| xmlTextReaderSetErrorHandler(xmlTextReaderPtr reader, |
| xmlTextReaderErrorFunc f, |
| void *arg); |
| XMLPUBFUN void XMLCALL |
| xmlTextReaderSetStructuredErrorHandler(xmlTextReaderPtr reader, |
| xmlStructuredErrorFunc f, |
| void *arg); |
| XMLPUBFUN void XMLCALL |
| xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader, |
| xmlTextReaderErrorFunc *f, |
| void **arg); |
| |
| #endif /* LIBXML_READER_ENABLED */ |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* __XML_XMLREADER_H__ */ |
| |