123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428 |
- /*
- * 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
- xmlTextReaderRelaxNGValidateCtxt(xmlTextReaderPtr reader,
- xmlRelaxNGValidCtxtPtr ctxt,
- int options);
- 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);
- 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__ */
|