Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434/* * 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/xmlerror.h>#include <libxml/xmlIO.h>#ifdef LIBXML_SCHEMAS_ENABLED#include <libxml/relaxng.h>#include <libxml/xmlschemas.h>#endif/* for compatibility */#include <libxml/parser.h>
#ifdef __cplusplusextern "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 xmlNewTextReader (xmlParserInputBufferPtr input, const char *URI);XMLPUBFUN xmlTextReaderPtr xmlNewTextReaderFilename(const char *URI);
XMLPUBFUN void xmlFreeTextReader (xmlTextReaderPtr reader);
XMLPUBFUN int xmlTextReaderSetup(xmlTextReaderPtr reader, xmlParserInputBufferPtr input, const char *URL, const char *encoding, int options);XMLPUBFUN void xmlTextReaderSetMaxAmplification(xmlTextReaderPtr reader, unsigned maxAmpl);
/* * Iterators */XMLPUBFUN int xmlTextReaderRead (xmlTextReaderPtr reader);
#ifdef LIBXML_WRITER_ENABLEDXMLPUBFUN xmlChar * xmlTextReaderReadInnerXml(xmlTextReaderPtr reader);
XMLPUBFUN xmlChar * xmlTextReaderReadOuterXml(xmlTextReaderPtr reader);#endif
XMLPUBFUN xmlChar * xmlTextReaderReadString (xmlTextReaderPtr reader);XMLPUBFUN int xmlTextReaderReadAttributeValue(xmlTextReaderPtr reader);
/* * Attributes of the node */XMLPUBFUN int xmlTextReaderAttributeCount(xmlTextReaderPtr reader);XMLPUBFUN int xmlTextReaderDepth (xmlTextReaderPtr reader);XMLPUBFUN int xmlTextReaderHasAttributes(xmlTextReaderPtr reader);XMLPUBFUN int xmlTextReaderHasValue(xmlTextReaderPtr reader);XMLPUBFUN int xmlTextReaderIsDefault (xmlTextReaderPtr reader);XMLPUBFUN int xmlTextReaderIsEmptyElement(xmlTextReaderPtr reader);XMLPUBFUN int xmlTextReaderNodeType (xmlTextReaderPtr reader);XMLPUBFUN int xmlTextReaderQuoteChar (xmlTextReaderPtr reader);XMLPUBFUN int xmlTextReaderReadState (xmlTextReaderPtr reader);XMLPUBFUN int xmlTextReaderIsNamespaceDecl(xmlTextReaderPtr reader);
XMLPUBFUN const xmlChar * xmlTextReaderConstBaseUri (xmlTextReaderPtr reader);XMLPUBFUN const xmlChar * xmlTextReaderConstLocalName (xmlTextReaderPtr reader);XMLPUBFUN const xmlChar * xmlTextReaderConstName (xmlTextReaderPtr reader);XMLPUBFUN const xmlChar * xmlTextReaderConstNamespaceUri(xmlTextReaderPtr reader);XMLPUBFUN const xmlChar * xmlTextReaderConstPrefix (xmlTextReaderPtr reader);XMLPUBFUN const xmlChar * xmlTextReaderConstXmlLang (xmlTextReaderPtr reader);XMLPUBFUN const xmlChar * xmlTextReaderConstString (xmlTextReaderPtr reader, const xmlChar *str);XMLPUBFUN const xmlChar * xmlTextReaderConstValue (xmlTextReaderPtr reader);
/* * use the Const version of the routine for * better performance and simpler code */XMLPUBFUN xmlChar * xmlTextReaderBaseUri (xmlTextReaderPtr reader);XMLPUBFUN xmlChar * xmlTextReaderLocalName (xmlTextReaderPtr reader);XMLPUBFUN xmlChar * xmlTextReaderName (xmlTextReaderPtr reader);XMLPUBFUN xmlChar * xmlTextReaderNamespaceUri(xmlTextReaderPtr reader);XMLPUBFUN xmlChar * xmlTextReaderPrefix (xmlTextReaderPtr reader);XMLPUBFUN xmlChar * xmlTextReaderXmlLang (xmlTextReaderPtr reader);XMLPUBFUN xmlChar * xmlTextReaderValue (xmlTextReaderPtr reader);
/* * Methods of the XmlTextReader */XMLPUBFUN int xmlTextReaderClose (xmlTextReaderPtr reader);XMLPUBFUN xmlChar * xmlTextReaderGetAttributeNo (xmlTextReaderPtr reader, int no);XMLPUBFUN xmlChar * xmlTextReaderGetAttribute (xmlTextReaderPtr reader, const xmlChar *name);XMLPUBFUN xmlChar * xmlTextReaderGetAttributeNs (xmlTextReaderPtr reader, const xmlChar *localName, const xmlChar *namespaceURI);XMLPUBFUN xmlParserInputBufferPtr xmlTextReaderGetRemainder (xmlTextReaderPtr reader);XMLPUBFUN xmlChar * xmlTextReaderLookupNamespace(xmlTextReaderPtr reader, const xmlChar *prefix);XMLPUBFUN int xmlTextReaderMoveToAttributeNo(xmlTextReaderPtr reader, int no);XMLPUBFUN int xmlTextReaderMoveToAttribute(xmlTextReaderPtr reader, const xmlChar *name);XMLPUBFUN int xmlTextReaderMoveToAttributeNs(xmlTextReaderPtr reader, const xmlChar *localName, const xmlChar *namespaceURI);XMLPUBFUN int xmlTextReaderMoveToFirstAttribute(xmlTextReaderPtr reader);XMLPUBFUN int xmlTextReaderMoveToNextAttribute(xmlTextReaderPtr reader);XMLPUBFUN int xmlTextReaderMoveToElement (xmlTextReaderPtr reader);XMLPUBFUN int xmlTextReaderNormalization (xmlTextReaderPtr reader);XMLPUBFUN const xmlChar * xmlTextReaderConstEncoding (xmlTextReaderPtr reader);
/* * Extensions */XMLPUBFUN int xmlTextReaderSetParserProp (xmlTextReaderPtr reader, int prop, int value);XMLPUBFUN int xmlTextReaderGetParserProp (xmlTextReaderPtr reader, int prop);XMLPUBFUN xmlNodePtr xmlTextReaderCurrentNode (xmlTextReaderPtr reader);
XMLPUBFUN int xmlTextReaderGetParserLineNumber(xmlTextReaderPtr reader);
XMLPUBFUN int xmlTextReaderGetParserColumnNumber(xmlTextReaderPtr reader);
XMLPUBFUN xmlNodePtr xmlTextReaderPreserve (xmlTextReaderPtr reader);#ifdef LIBXML_PATTERN_ENABLEDXMLPUBFUN int xmlTextReaderPreservePattern(xmlTextReaderPtr reader, const xmlChar *pattern, const xmlChar **namespaces);#endif /* LIBXML_PATTERN_ENABLED */XMLPUBFUN xmlDocPtr xmlTextReaderCurrentDoc (xmlTextReaderPtr reader);XMLPUBFUN xmlNodePtr xmlTextReaderExpand (xmlTextReaderPtr reader);XMLPUBFUN int xmlTextReaderNext (xmlTextReaderPtr reader);XMLPUBFUN int xmlTextReaderNextSibling (xmlTextReaderPtr reader);XMLPUBFUN int xmlTextReaderIsValid (xmlTextReaderPtr reader);#ifdef LIBXML_SCHEMAS_ENABLEDXMLPUBFUN int xmlTextReaderRelaxNGValidate(xmlTextReaderPtr reader, const char *rng);XMLPUBFUN int xmlTextReaderRelaxNGValidateCtxt(xmlTextReaderPtr reader, xmlRelaxNGValidCtxtPtr ctxt, int options);
XMLPUBFUN int xmlTextReaderRelaxNGSetSchema(xmlTextReaderPtr reader, xmlRelaxNGPtr schema);XMLPUBFUN int xmlTextReaderSchemaValidate (xmlTextReaderPtr reader, const char *xsd);XMLPUBFUN int xmlTextReaderSchemaValidateCtxt(xmlTextReaderPtr reader, xmlSchemaValidCtxtPtr ctxt, int options);XMLPUBFUN int xmlTextReaderSetSchema (xmlTextReaderPtr reader, xmlSchemaPtr schema);#endifXMLPUBFUN const xmlChar * xmlTextReaderConstXmlVersion(xmlTextReaderPtr reader);XMLPUBFUN int xmlTextReaderStandalone (xmlTextReaderPtr reader);
/* * Index lookup */XMLPUBFUN long xmlTextReaderByteConsumed (xmlTextReaderPtr reader);
/* * New more complete APIs for simpler creation and reuse of readers */XMLPUBFUN xmlTextReaderPtr xmlReaderWalker (xmlDocPtr doc);XMLPUBFUN xmlTextReaderPtr xmlReaderForDoc (const xmlChar * cur, const char *URL, const char *encoding, int options);XMLPUBFUN xmlTextReaderPtr xmlReaderForFile (const char *filename, const char *encoding, int options);XMLPUBFUN xmlTextReaderPtr xmlReaderForMemory (const char *buffer, int size, const char *URL, const char *encoding, int options);XMLPUBFUN xmlTextReaderPtr xmlReaderForFd (int fd, const char *URL, const char *encoding, int options);XMLPUBFUN xmlTextReaderPtr xmlReaderForIO (xmlInputReadCallback ioread, xmlInputCloseCallback ioclose, void *ioctx, const char *URL, const char *encoding, int options);
XMLPUBFUN int xmlReaderNewWalker (xmlTextReaderPtr reader, xmlDocPtr doc);XMLPUBFUN int xmlReaderNewDoc (xmlTextReaderPtr reader, const xmlChar * cur, const char *URL, const char *encoding, int options);XMLPUBFUN int xmlReaderNewFile (xmlTextReaderPtr reader, const char *filename, const char *encoding, int options);XMLPUBFUN int xmlReaderNewMemory (xmlTextReaderPtr reader, const char *buffer, int size, const char *URL, const char *encoding, int options);XMLPUBFUN int xmlReaderNewFd (xmlTextReaderPtr reader, int fd, const char *URL, const char *encoding, int options);XMLPUBFUN int 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 occurred * * Signature of an error callback from a reader parser */typedef void (*xmlTextReaderErrorFunc)(void *arg, const char *msg, xmlParserSeverities severity, xmlTextReaderLocatorPtr locator);XMLPUBFUN int xmlTextReaderLocatorLineNumber(xmlTextReaderLocatorPtr locator);XMLPUBFUN xmlChar * xmlTextReaderLocatorBaseURI (xmlTextReaderLocatorPtr locator);XMLPUBFUN void xmlTextReaderSetErrorHandler(xmlTextReaderPtr reader, xmlTextReaderErrorFunc f, void *arg);XMLPUBFUN void xmlTextReaderSetStructuredErrorHandler(xmlTextReaderPtr reader, xmlStructuredErrorFunc f, void *arg);XMLPUBFUN void xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader, xmlTextReaderErrorFunc *f, void **arg);
#endif /* LIBXML_READER_ENABLED */
#ifdef __cplusplus}#endif
#endif /* __XML_XMLREADER_H__ */