| /** | |
| * @file | |
| * | |
| * @brief Validating XML 1.0 parser | |
| * | |
| * Interfaces, constants and types related to the XML parser. | |
| * | |
| * @copyright See Copyright for the status of this software. | |
| * | |
| * @author Daniel Veillard | |
| */ | |
| #ifndef __XML_PARSER_H__ | |
| #define __XML_PARSER_H__ | |
| #include <libxml/xmlversion.h> | |
| /** @cond ignore */ | |
| #define XML_TREE_INTERNALS | |
| /** @endcond */ | |
| #include <libxml/tree.h> | |
| #undef XML_TREE_INTERNALS | |
| #include <libxml/dict.h> | |
| #include <libxml/hash.h> | |
| #include <libxml/valid.h> | |
| #include <libxml/entities.h> | |
| #include <libxml/xmlerror.h> | |
| #include <libxml/xmlstring.h> | |
| #include <libxml/xmlmemory.h> | |
| #include <libxml/encoding.h> | |
| #include <libxml/xmlIO.h> | |
| /* for compatibility */ | |
| #include <libxml/SAX2.h> | |
| #include <libxml/threads.h> | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| /** | |
| * The default version of XML used: 1.0 | |
| */ | |
| #define XML_DEFAULT_VERSION "1.0" | |
| /** | |
| * Status after parsing a document | |
| */ | |
| typedef enum { | |
| /** not well-formed */ | |
| XML_STATUS_NOT_WELL_FORMED = (1 << 0), | |
| /** not namespace-well-formed */ | |
| XML_STATUS_NOT_NS_WELL_FORMED = (1 << 1), | |
| /** DTD validation failed */ | |
| XML_STATUS_DTD_VALIDATION_FAILED = (1 << 2), | |
| /** catastrophic failure like OOM or I/O error */ | |
| XML_STATUS_CATASTROPHIC_ERROR = (1 << 3) | |
| } xmlParserStatus; | |
| /** | |
| * Resource type for resource loaders | |
| */ | |
| typedef enum { | |
| /** unknown */ | |
| XML_RESOURCE_UNKNOWN = 0, | |
| /** main document */ | |
| XML_RESOURCE_MAIN_DOCUMENT, | |
| /** external DTD */ | |
| XML_RESOURCE_DTD, | |
| /** external general entity */ | |
| XML_RESOURCE_GENERAL_ENTITY, | |
| /** external parameter entity */ | |
| XML_RESOURCE_PARAMETER_ENTITY, | |
| /** XIncluded document */ | |
| XML_RESOURCE_XINCLUDE, | |
| /** XIncluded text */ | |
| XML_RESOURCE_XINCLUDE_TEXT | |
| } xmlResourceType; | |
| /** | |
| * Flags for parser input | |
| */ | |
| typedef enum { | |
| /** The input buffer won't be changed during parsing. */ | |
| XML_INPUT_BUF_STATIC = (1 << 1), | |
| /** The input buffer is zero-terminated. (Note that the zero | |
| byte shouldn't be included in buffer size.) */ | |
| XML_INPUT_BUF_ZERO_TERMINATED = (1 << 2), | |
| /** Uncompress gzipped file input */ | |
| XML_INPUT_UNZIP = (1 << 3), | |
| /** Allow network access. Unused internally. */ | |
| XML_INPUT_NETWORK = (1 << 4), | |
| /** Allow system catalog to resolve URIs. */ | |
| XML_INPUT_USE_SYS_CATALOG = (1 << 5) | |
| } xmlParserInputFlags; | |
| /* Deprecated */ | |
| typedef void (* xmlParserInputDeallocate)(xmlChar *str); | |
| /** | |
| * Parser input | |
| */ | |
| struct _xmlParserInput { | |
| /* Input buffer */ | |
| xmlParserInputBuffer *buf XML_DEPRECATED_MEMBER; | |
| /** | |
| * @deprecated Use #xmlCtxtGetInputPosition | |
| * | |
| * The filename or URI, if any | |
| */ | |
| const char *filename; | |
| /* unused */ | |
| const char *directory XML_DEPRECATED_MEMBER; | |
| /* Base of the array to parse */ | |
| const xmlChar *base; | |
| /** | |
| * @deprecated Use #xmlCtxtGetInputWindow | |
| * | |
| * Current char being parsed | |
| */ | |
| const xmlChar *cur; | |
| /* end of the array to parse */ | |
| const xmlChar *end; | |
| /* unused */ | |
| int length XML_DEPRECATED_MEMBER; | |
| /** | |
| * @deprecated Use #xmlCtxtGetInputPosition | |
| * | |
| * Current line | |
| */ | |
| int line; | |
| /** | |
| * @deprecated Use #xmlCtxtGetInputPosition | |
| * | |
| * Current column | |
| */ | |
| int col; | |
| /** | |
| * @deprecated Use #xmlCtxtGetInputPosition | |
| * | |
| * How many xmlChars already consumed | |
| */ | |
| unsigned long consumed; | |
| /* function to deallocate the base */ | |
| xmlParserInputDeallocate free XML_DEPRECATED_MEMBER; | |
| /* unused */ | |
| const xmlChar *encoding XML_DEPRECATED_MEMBER; | |
| /* the version string for entity */ | |
| const xmlChar *version XML_DEPRECATED_MEMBER; | |
| /* Flags */ | |
| int flags XML_DEPRECATED_MEMBER; | |
| /* an unique identifier for the entity, unused internally */ | |
| int id XML_DEPRECATED_MEMBER; | |
| /* unused */ | |
| unsigned long parentConsumed XML_DEPRECATED_MEMBER; | |
| /* entity, if any */ | |
| xmlEntity *entity XML_DEPRECATED_MEMBER; | |
| }; | |
| /** @cond ignore */ | |
| typedef struct _xmlParserNodeInfo xmlParserNodeInfo; | |
| typedef xmlParserNodeInfo *xmlParserNodeInfoPtr; | |
| struct _xmlParserNodeInfo { | |
| const struct _xmlNode* node; | |
| /* Position & line # that text that created the node begins & ends on */ | |
| unsigned long begin_pos; | |
| unsigned long begin_line; | |
| unsigned long end_pos; | |
| unsigned long end_line; | |
| }; | |
| typedef struct _xmlParserNodeInfoSeq xmlParserNodeInfoSeq; | |
| typedef xmlParserNodeInfoSeq *xmlParserNodeInfoSeqPtr; | |
| struct _xmlParserNodeInfoSeq { | |
| unsigned long maximum; | |
| unsigned long length; | |
| xmlParserNodeInfo* buffer; | |
| }; | |
| /* | |
| * Internal type | |
| */ | |
| typedef enum { | |
| XML_PARSER_EOF = -1, /* nothing is to be parsed */ | |
| XML_PARSER_START = 0, /* nothing has been parsed */ | |
| XML_PARSER_MISC, /* Misc* before int subset */ | |
| XML_PARSER_PI, /* Within a processing instruction */ | |
| XML_PARSER_DTD, /* within some DTD content */ | |
| XML_PARSER_PROLOG, /* Misc* after internal subset */ | |
| XML_PARSER_COMMENT, /* within a comment */ | |
| XML_PARSER_START_TAG, /* within a start tag */ | |
| XML_PARSER_CONTENT, /* within the content */ | |
| XML_PARSER_CDATA_SECTION, /* within a CDATA section */ | |
| XML_PARSER_END_TAG, /* within a closing tag */ | |
| XML_PARSER_ENTITY_DECL, /* within an entity declaration */ | |
| XML_PARSER_ENTITY_VALUE, /* within an entity value in a decl */ | |
| XML_PARSER_ATTRIBUTE_VALUE, /* within an attribute value */ | |
| XML_PARSER_SYSTEM_LITERAL, /* within a SYSTEM value */ | |
| XML_PARSER_EPILOG, /* the Misc* after the last end tag */ | |
| XML_PARSER_IGNORE, /* within an IGNORED section */ | |
| XML_PARSER_PUBLIC_LITERAL, /* within a PUBLIC value */ | |
| XML_PARSER_XML_DECL /* before XML decl (but after BOM) */ | |
| } xmlParserInputState; | |
| /* | |
| * Internal bits in the 'loadsubset' context member | |
| */ | |
| #define XML_DETECT_IDS 2 | |
| #define XML_COMPLETE_ATTRS 4 | |
| #define XML_SKIP_IDS 8 | |
| /* | |
| * Internal type. Only XML_PARSE_READER is used. | |
| */ | |
| typedef enum { | |
| XML_PARSE_UNKNOWN = 0, | |
| XML_PARSE_DOM = 1, | |
| XML_PARSE_SAX = 2, | |
| XML_PARSE_PUSH_DOM = 3, | |
| XML_PARSE_PUSH_SAX = 4, | |
| XML_PARSE_READER = 5 | |
| } xmlParserMode; | |
| typedef struct _xmlStartTag xmlStartTag; | |
| typedef struct _xmlParserNsData xmlParserNsData; | |
| typedef struct _xmlAttrHashBucket xmlAttrHashBucket; | |
| /** @endcond */ | |
| /** | |
| * Callback for custom resource loaders. | |
| * | |
| * `flags` can contain XML_INPUT_UNZIP and XML_INPUT_NETWORK. | |
| * | |
| * The URL is resolved using XML catalogs before being passed to | |
| * the callback. | |
| * | |
| * On success, `out` should be set to a new parser input object and | |
| * XML_ERR_OK should be returned. | |
| * | |
| * @param ctxt parser context | |
| * @param url URL or system ID to load | |
| * @param publicId publid ID from DTD (optional) | |
| * @param type resource type | |
| * @param flags flags | |
| * @param out result pointer | |
| * @returns an xmlParserErrors code. | |
| */ | |
| typedef xmlParserErrors | |
| (*xmlResourceLoader)(void *ctxt, const char *url, const char *publicId, | |
| xmlResourceType type, xmlParserInputFlags flags, | |
| xmlParserInput **out); | |
| /** | |
| * Parser context | |
| */ | |
| struct _xmlParserCtxt { | |
| /** | |
| * @deprecated Use xmlCtxtGetSaxHandler() and | |
| * xmlCtxtSetSaxHandler(). | |
| * | |
| * the SAX handler | |
| */ | |
| struct _xmlSAXHandler *sax; | |
| /** | |
| * @deprecated Use #xmlCtxtGetUserData | |
| * | |
| * user data for SAX interface, defaults to the context itself | |
| */ | |
| void *userData; | |
| /** | |
| * @deprecated Use xmlCtxtGetDocument() | |
| * | |
| * the document being built | |
| */ | |
| xmlDoc *myDoc; | |
| /** | |
| * @deprecated Use xmlCtxtGetStatus() | |
| * | |
| * is the document well formed? | |
| */ | |
| int wellFormed; | |
| /** | |
| * @deprecated Use xmlParserOption XML_PARSE_NOENT | |
| * | |
| * shall we replace entities? | |
| */ | |
| int replaceEntities XML_DEPRECATED_MEMBER; | |
| /** | |
| * @deprecated Use xmlCtxtGetVersion() | |
| * | |
| * the XML version string | |
| */ | |
| xmlChar *version; | |
| /** | |
| * @deprecated Use xmlCtxtGetDeclaredEncoding() | |
| * | |
| * the declared encoding, if any | |
| */ | |
| xmlChar *encoding; | |
| /** | |
| * @deprecated Use xmlCtxtGetStandalone() | |
| * | |
| * standalone document | |
| */ | |
| int standalone; | |
| /** | |
| * @deprecated Use xmlCtxtIsHtml() | |
| * | |
| * non-zero for HTML documents, actually an htmlInsertMode | |
| */ | |
| int html; | |
| /* Input stream stack */ | |
| /** | |
| * Current input stream | |
| */ | |
| /* TODO: Add accessors, see issue #762 */ | |
| xmlParserInput *input; | |
| /* Number of current input streams */ | |
| int inputNr; | |
| /* Max number of input streams */ | |
| int inputMax XML_DEPRECATED_MEMBER; | |
| /* stack of inputs */ | |
| xmlParserInput **inputTab; | |
| /* Node analysis stack only used for DOM building */ | |
| /** | |
| * @deprecated Use #xmlCtxtGetNode | |
| * | |
| * The current element. | |
| */ | |
| xmlNode *node; | |
| /* Depth of the parsing stack */ | |
| int nodeNr XML_DEPRECATED_MEMBER; | |
| /* Max depth of the parsing stack */ | |
| int nodeMax XML_DEPRECATED_MEMBER; | |
| /* array of nodes */ | |
| xmlNode **nodeTab XML_DEPRECATED_MEMBER; | |
| /* Whether node info should be kept */ | |
| int record_info; | |
| /* info about each node parsed */ | |
| xmlParserNodeInfoSeq node_seq XML_DEPRECATED_MEMBER; | |
| /** | |
| * @deprecated Use xmlCtxtGetLastError() | |
| * | |
| * error code | |
| */ | |
| int errNo; | |
| /* reference and external subset */ | |
| int hasExternalSubset XML_DEPRECATED_MEMBER; | |
| /* the internal subset has PE refs */ | |
| int hasPErefs XML_DEPRECATED_MEMBER; | |
| /* unused */ | |
| int external XML_DEPRECATED_MEMBER; | |
| /** | |
| * @deprecated Use xmlCtxtGetStatus() | |
| * | |
| * is the document valid | |
| */ | |
| int valid; | |
| /** | |
| * @deprecated Use xmlParserOption XML_PARSE_DTDVALID | |
| * | |
| * shall we try to validate? | |
| */ | |
| int validate XML_DEPRECATED_MEMBER; | |
| /** | |
| * @deprecated Use xmlCtxtGetValidCtxt() | |
| * | |
| * The validity context | |
| */ | |
| xmlValidCtxt vctxt; | |
| /* push parser state */ | |
| xmlParserInputState instate XML_DEPRECATED_MEMBER; | |
| /* unused */ | |
| int token XML_DEPRECATED_MEMBER; | |
| /** | |
| * @deprecated Don't use | |
| * | |
| * The main document URI, if available, with its last | |
| * component stripped. | |
| */ | |
| char *directory; | |
| /* Node name stack */ | |
| /* Current parsed Node */ | |
| const xmlChar *name XML_DEPRECATED_MEMBER; | |
| /* Depth of the parsing stack */ | |
| int nameNr XML_DEPRECATED_MEMBER; | |
| /* Max depth of the parsing stack */ | |
| int nameMax XML_DEPRECATED_MEMBER; | |
| /* array of nodes */ | |
| const xmlChar **nameTab XML_DEPRECATED_MEMBER; | |
| /* unused */ | |
| long nbChars XML_DEPRECATED_MEMBER; | |
| /* used by progressive parsing lookup */ | |
| long checkIndex XML_DEPRECATED_MEMBER; | |
| /** | |
| * @deprecated Use inverted xmlParserOption XML_PARSE_NOBLANKS | |
| * | |
| * ugly but ... | |
| */ | |
| int keepBlanks XML_DEPRECATED_MEMBER; | |
| /** | |
| * @deprecated Use xmlCtxtIsStopped() | |
| * | |
| * SAX callbacks are disabled | |
| */ | |
| int disableSAX XML_DEPRECATED_MEMBER; | |
| /** | |
| * @deprecated Use xmlCtxtIsInSubset | |
| * | |
| * Set if DTD content is parsed. | |
| * | |
| * - 0: not in DTD | |
| * - 1: in internal DTD subset | |
| * - 2: in external DTD subset | |
| */ | |
| int inSubset; | |
| /** | |
| * @deprecated Use the `name` argument of the | |
| * `internalSubset` SAX callback or #xmlCtxtGetDocTypeDecl | |
| * | |
| * Name of the internal subset (root element type). | |
| */ | |
| const xmlChar *intSubName; | |
| /** | |
| * @deprecated Use the `systemId` argument of the | |
| * `internalSubset` SAX callback or #xmlCtxtGetDocTypeDecl | |
| * | |
| * System identifier (URI) of external the subset. | |
| */ | |
| xmlChar *extSubURI; | |
| /** | |
| * @deprecated Use the `publicId` argument of the | |
| * `internalSubset` SAX callback or #xmlCtxtGetDocTypeDecl | |
| * | |
| * This member is MISNAMED. It contains the *public* identifier | |
| * of the external subset. | |
| */ | |
| xmlChar *extSubSystem; | |
| /* xml:space values */ | |
| /* Should the parser preserve spaces */ | |
| int *space XML_DEPRECATED_MEMBER; | |
| /* Depth of the parsing stack */ | |
| int spaceNr XML_DEPRECATED_MEMBER; | |
| /* Max depth of the parsing stack */ | |
| int spaceMax XML_DEPRECATED_MEMBER; | |
| /* array of space infos */ | |
| int *spaceTab XML_DEPRECATED_MEMBER; | |
| /* to prevent entity substitution loops */ | |
| int depth XML_DEPRECATED_MEMBER; | |
| /* unused */ | |
| xmlParserInput *entity XML_DEPRECATED_MEMBER; | |
| /* unused */ | |
| int charset XML_DEPRECATED_MEMBER; | |
| /* Those two fields are there to speed up large node parsing */ | |
| int nodelen XML_DEPRECATED_MEMBER; | |
| int nodemem XML_DEPRECATED_MEMBER; | |
| /** | |
| * @deprecated Use xmlParserOption XML_PARSE_PEDANTIC | |
| * | |
| * signal pedantic warnings | |
| */ | |
| int pedantic XML_DEPRECATED_MEMBER; | |
| /** | |
| * @deprecated Use xmlCtxtGetPrivate() and xmlCtxtSetPrivate() | |
| * | |
| * For user data, libxml won't touch it | |
| */ | |
| void *_private; | |
| /** | |
| * @deprecated Use xmlParserOption XML_PARSE_DTDLOAD, | |
| * XML_PARSE_DTDATTR or XML_PARSE_SKIP_IDS. | |
| * | |
| * Control loading of the external subset and handling of IDs. | |
| * Other options like `validate` can override this value. | |
| * | |
| * - 0: The default behavior is to process IDs and to ignore | |
| * the external subset. | |
| * - XML_DETECT_IDS: Load external subset. This flag is | |
| * misnamed. ID handling is only controlled by XML_SKIP_IDS. | |
| * - XML_COMPLETE_ATTRS: Load external subset and process | |
| * default attributes. | |
| * - XML_SKIP_IDS: Ignore IDs. | |
| */ | |
| int loadsubset XML_DEPRECATED_MEMBER; | |
| /* unused */ | |
| int linenumbers XML_DEPRECATED_MEMBER; | |
| /** | |
| * @deprecated Use xmlCtxtGetCatalogs() and xmlCtxtSetCatalogs() | |
| * | |
| * document's own catalog | |
| */ | |
| void *catalogs XML_DEPRECATED_MEMBER; | |
| /** | |
| * @deprecated Use xmlParserOption XML_PARSE_RECOVER | |
| * run in recovery mode | |
| */ | |
| int recovery XML_DEPRECATED_MEMBER; | |
| /* unused */ | |
| int progressive XML_DEPRECATED_MEMBER; | |
| /** | |
| * @deprecated Use xmlCtxtGetDict() and xmlCtxtSetDict() | |
| * | |
| * dictionary for the parser | |
| */ | |
| xmlDict *dict; | |
| /* array for the attributes callbacks */ | |
| const xmlChar **atts XML_DEPRECATED_MEMBER; | |
| /* the size of the array */ | |
| int maxatts XML_DEPRECATED_MEMBER; | |
| /* unused */ | |
| int docdict XML_DEPRECATED_MEMBER; | |
| /* | |
| * pre-interned strings | |
| */ | |
| const xmlChar *str_xml XML_DEPRECATED_MEMBER; | |
| const xmlChar *str_xmlns XML_DEPRECATED_MEMBER; | |
| const xmlChar *str_xml_ns XML_DEPRECATED_MEMBER; | |
| /* | |
| * Everything below is used only by the new SAX mode | |
| */ | |
| /* operating in the new SAX mode */ | |
| int sax2 XML_DEPRECATED_MEMBER; | |
| /* the number of inherited namespaces */ | |
| int nsNr XML_DEPRECATED_MEMBER; | |
| /* the size of the arrays */ | |
| int nsMax XML_DEPRECATED_MEMBER; | |
| /* the array of prefix/namespace name */ | |
| const xmlChar **nsTab XML_DEPRECATED_MEMBER; | |
| /* which attribute were allocated */ | |
| unsigned *attallocs XML_DEPRECATED_MEMBER; | |
| /* array of data for push */ | |
| xmlStartTag *pushTab XML_DEPRECATED_MEMBER; | |
| /* defaulted attributes if any */ | |
| xmlHashTable *attsDefault XML_DEPRECATED_MEMBER; | |
| /* non-CDATA attributes if any */ | |
| xmlHashTable *attsSpecial XML_DEPRECATED_MEMBER; | |
| /** | |
| * @deprecated Use xmlCtxtGetStatus() | |
| * | |
| * is the document XML Namespace okay | |
| */ | |
| int nsWellFormed; | |
| /** | |
| * @deprecated Use xmlCtxtGetOptions() | |
| * | |
| * Extra options | |
| */ | |
| int options; | |
| /** | |
| * @deprecated Use inverted xmlParserOption XML_PARSE_NODICT | |
| * | |
| * Use dictionary names for the tree | |
| */ | |
| int dictNames XML_DEPRECATED_MEMBER; | |
| /* | |
| * Those fields are needed only for streaming parsing so far | |
| */ | |
| /* number of freed element nodes */ | |
| int freeElemsNr XML_DEPRECATED_MEMBER; | |
| /* List of freed element nodes */ | |
| xmlNode *freeElems XML_DEPRECATED_MEMBER; | |
| /* number of freed attributes nodes */ | |
| int freeAttrsNr XML_DEPRECATED_MEMBER; | |
| /* List of freed attributes nodes */ | |
| xmlAttr *freeAttrs XML_DEPRECATED_MEMBER; | |
| /** | |
| * @deprecated Use xmlCtxtGetLastError() | |
| * | |
| * the complete error information for the last error. | |
| */ | |
| xmlError lastError XML_DEPRECATED_MEMBER; | |
| /* the parser mode */ | |
| xmlParserMode parseMode XML_DEPRECATED_MEMBER; | |
| /* unused */ | |
| unsigned long nbentities XML_DEPRECATED_MEMBER; | |
| /* size of external entities */ | |
| unsigned long sizeentities XML_DEPRECATED_MEMBER; | |
| /* for use by HTML non-recursive parser */ | |
| /* Current NodeInfo */ | |
| xmlParserNodeInfo *nodeInfo XML_DEPRECATED_MEMBER; | |
| /* Depth of the parsing stack */ | |
| int nodeInfoNr XML_DEPRECATED_MEMBER; | |
| /* Max depth of the parsing stack */ | |
| int nodeInfoMax XML_DEPRECATED_MEMBER; | |
| /* array of nodeInfos */ | |
| xmlParserNodeInfo *nodeInfoTab XML_DEPRECATED_MEMBER; | |
| /* we need to label inputs */ | |
| int input_id XML_DEPRECATED_MEMBER; | |
| /* volume of entity copy */ | |
| unsigned long sizeentcopy XML_DEPRECATED_MEMBER; | |
| /* quote state for push parser */ | |
| int endCheckState XML_DEPRECATED_MEMBER; | |
| /* number of errors */ | |
| unsigned short nbErrors XML_DEPRECATED_MEMBER; | |
| /* number of warnings */ | |
| unsigned short nbWarnings XML_DEPRECATED_MEMBER; | |
| /* maximum amplification factor */ | |
| unsigned maxAmpl XML_DEPRECATED_MEMBER; | |
| /* namespace database */ | |
| xmlParserNsData *nsdb XML_DEPRECATED_MEMBER; | |
| /* allocated size */ | |
| unsigned attrHashMax XML_DEPRECATED_MEMBER; | |
| /* atttribute hash table */ | |
| xmlAttrHashBucket *attrHash XML_DEPRECATED_MEMBER; | |
| xmlStructuredErrorFunc errorHandler XML_DEPRECATED_MEMBER; | |
| void *errorCtxt XML_DEPRECATED_MEMBER; | |
| xmlResourceLoader resourceLoader XML_DEPRECATED_MEMBER; | |
| void *resourceCtxt XML_DEPRECATED_MEMBER; | |
| xmlCharEncConvImpl convImpl XML_DEPRECATED_MEMBER; | |
| void *convCtxt XML_DEPRECATED_MEMBER; | |
| }; | |
| /** | |
| * A SAX Locator. | |
| */ | |
| struct _xmlSAXLocator { | |
| const xmlChar *(*getPublicId)(void *ctx); | |
| const xmlChar *(*getSystemId)(void *ctx); | |
| int (*getLineNumber)(void *ctx); | |
| int (*getColumnNumber)(void *ctx); | |
| }; | |
| /** | |
| * SAX callback to resolve external entities. | |
| * | |
| * This is only used to load DTDs. The preferred way to install | |
| * custom resolvers is #xmlCtxtSetResourceLoader. | |
| * | |
| * @param ctx the user data (XML parser context) | |
| * @param publicId The public identifier of the entity | |
| * @param systemId The system identifier of the entity (URL) | |
| * @returns the xmlParserInput if inlined or NULL for DOM behaviour. | |
| */ | |
| typedef xmlParserInput *(*resolveEntitySAXFunc) (void *ctx, | |
| const xmlChar *publicId, | |
| const xmlChar *systemId); | |
| /** | |
| * SAX callback for the internal subset. | |
| * | |
| * @param ctx the user data (XML parser context) | |
| * @param name the root element name | |
| * @param publicId the public identifier | |
| * @param systemId the system identifier (e.g. filename or URL) | |
| */ | |
| typedef void (*internalSubsetSAXFunc) (void *ctx, | |
| const xmlChar *name, | |
| const xmlChar *publicId, | |
| const xmlChar *systemId); | |
| /** | |
| * SAX callback for the external subset. | |
| * | |
| * @param ctx the user data (XML parser context) | |
| * @param name the root element name | |
| * @param publicId the public identifier | |
| * @param systemId the system identifier (e.g. filename or URL) | |
| */ | |
| typedef void (*externalSubsetSAXFunc) (void *ctx, | |
| const xmlChar *name, | |
| const xmlChar *publicId, | |
| const xmlChar *systemId); | |
| /** | |
| * SAX callback to look up a general entity by name. | |
| * | |
| * @param ctx the user data (XML parser context) | |
| * @param name The entity name | |
| * @returns the xmlEntity if found. | |
| */ | |
| typedef xmlEntity *(*getEntitySAXFunc) (void *ctx, | |
| const xmlChar *name); | |
| /** | |
| * SAX callback to look up a parameter entity by name. | |
| * | |
| * @param ctx the user data (XML parser context) | |
| * @param name The entity name | |
| * @returns the xmlEntity if found. | |
| */ | |
| typedef xmlEntity *(*getParameterEntitySAXFunc) (void *ctx, | |
| const xmlChar *name); | |
| /** | |
| * SAX callback for entity declarations. | |
| * | |
| * @param ctx the user data (XML parser context) | |
| * @param name the entity name | |
| * @param type the entity type | |
| * @param publicId The public ID of the entity | |
| * @param systemId The system ID of the entity | |
| * @param content the entity value (without processing). | |
| */ | |
| typedef void (*entityDeclSAXFunc) (void *ctx, | |
| const xmlChar *name, | |
| int type, | |
| const xmlChar *publicId, | |
| const xmlChar *systemId, | |
| xmlChar *content); | |
| /** | |
| * SAX callback for notation declarations. | |
| * | |
| * @param ctx the user data (XML parser context) | |
| * @param name The name of the notation | |
| * @param publicId The public ID of the notation | |
| * @param systemId The system ID of the notation | |
| */ | |
| typedef void (*notationDeclSAXFunc)(void *ctx, | |
| const xmlChar *name, | |
| const xmlChar *publicId, | |
| const xmlChar *systemId); | |
| /** | |
| * SAX callback for attribute declarations. | |
| * | |
| * @param ctx the user data (XML parser context) | |
| * @param elem the name of the element | |
| * @param fullname the attribute name | |
| * @param type the attribute type | |
| * @param def the type of default value | |
| * @param defaultValue the attribute default value | |
| * @param tree the tree of enumerated value set | |
| */ | |
| typedef void (*attributeDeclSAXFunc)(void *ctx, | |
| const xmlChar *elem, | |
| const xmlChar *fullname, | |
| int type, | |
| int def, | |
| const xmlChar *defaultValue, | |
| xmlEnumeration *tree); | |
| /** | |
| * SAX callback for element declarations. | |
| * | |
| * @param ctx the user data (XML parser context) | |
| * @param name the element name | |
| * @param type the element type | |
| * @param content the element value tree | |
| */ | |
| typedef void (*elementDeclSAXFunc)(void *ctx, | |
| const xmlChar *name, | |
| int type, | |
| xmlElementContent *content); | |
| /** | |
| * SAX callback for unparsed entity declarations. | |
| * | |
| * @param ctx the user data (XML parser context) | |
| * @param name The name of the entity | |
| * @param publicId The public ID of the entity | |
| * @param systemId The system ID of the entity | |
| * @param notationName the name of the notation | |
| */ | |
| typedef void (*unparsedEntityDeclSAXFunc)(void *ctx, | |
| const xmlChar *name, | |
| const xmlChar *publicId, | |
| const xmlChar *systemId, | |
| const xmlChar *notationName); | |
| /** | |
| * This callback receives the "document locator" at startup, | |
| * which is always the global xmlDefaultSAXLocator. | |
| * | |
| * Everything is available on the context, so this is useless in | |
| * our case. | |
| * | |
| * @param ctx the user data (XML parser context) | |
| * @param loc A SAX Locator | |
| */ | |
| typedef void (*setDocumentLocatorSAXFunc) (void *ctx, | |
| xmlSAXLocator *loc); | |
| /** | |
| * SAX callback for start of document. | |
| * | |
| * @param ctx the user data (XML parser context) | |
| */ | |
| typedef void (*startDocumentSAXFunc) (void *ctx); | |
| /** | |
| * SAX callback for end of document. | |
| * | |
| * @param ctx the user data (XML parser context) | |
| */ | |
| typedef void (*endDocumentSAXFunc) (void *ctx); | |
| /** | |
| * SAX callback for start tags. | |
| * | |
| * @param ctx the user data (XML parser context) | |
| * @param name The element name, including namespace prefix | |
| * @param atts An array of name/value attributes pairs, NULL terminated | |
| */ | |
| typedef void (*startElementSAXFunc) (void *ctx, | |
| const xmlChar *name, | |
| const xmlChar **atts); | |
| /** | |
| * SAX callback for end tags. | |
| * | |
| * @param ctx the user data (XML parser context) | |
| * @param name The element name | |
| */ | |
| typedef void (*endElementSAXFunc) (void *ctx, | |
| const xmlChar *name); | |
| /** | |
| * Callback for attributes. | |
| * | |
| * @deprecated This typedef is unused. | |
| * | |
| * @param ctx the user data (XML parser context) | |
| * @param name The attribute name, including namespace prefix | |
| * @param value The attribute value | |
| */ | |
| typedef void (*attributeSAXFunc) (void *ctx, | |
| const xmlChar *name, | |
| const xmlChar *value); | |
| /** | |
| * SAX callback for entity references. | |
| * | |
| * @param ctx the user data (XML parser context) | |
| * @param name The entity name | |
| */ | |
| typedef void (*referenceSAXFunc) (void *ctx, | |
| const xmlChar *name); | |
| /** | |
| * SAX callback for character data. | |
| * | |
| * @param ctx the user data (XML parser context) | |
| * @param ch a xmlChar string | |
| * @param len the number of xmlChar | |
| */ | |
| typedef void (*charactersSAXFunc) (void *ctx, | |
| const xmlChar *ch, | |
| int len); | |
| /** | |
| * SAX callback for "ignorable" whitespace. | |
| * | |
| * @param ctx the user data (XML parser context) | |
| * @param ch a xmlChar string | |
| * @param len the number of xmlChar | |
| */ | |
| typedef void (*ignorableWhitespaceSAXFunc) (void *ctx, | |
| const xmlChar *ch, | |
| int len); | |
| /** | |
| * SAX callback for processing instructions. | |
| * | |
| * @param ctx the user data (XML parser context) | |
| * @param target the target name | |
| * @param data the PI data's | |
| */ | |
| typedef void (*processingInstructionSAXFunc) (void *ctx, | |
| const xmlChar *target, | |
| const xmlChar *data); | |
| /** | |
| * SAX callback for comments. | |
| * | |
| * @param ctx the user data (XML parser context) | |
| * @param value the comment content | |
| */ | |
| typedef void (*commentSAXFunc) (void *ctx, | |
| const xmlChar *value); | |
| /** | |
| * SAX callback for CDATA sections. | |
| * | |
| * @param ctx the user data (XML parser context) | |
| * @param value The pcdata content | |
| * @param len the block length | |
| */ | |
| typedef void (*cdataBlockSAXFunc) ( | |
| void *ctx, | |
| const xmlChar *value, | |
| int len); | |
| /** | |
| * SAX callback for warning messages. | |
| * | |
| * @param ctx an XML parser context | |
| * @param msg the message to display/transmit | |
| * @param ... extra parameters for the message display | |
| */ | |
| typedef void (*warningSAXFunc) (void *ctx, | |
| const char *msg, ...) LIBXML_ATTR_FORMAT(2,3); | |
| /** | |
| * SAX callback for error messages. | |
| * | |
| * @param ctx an XML parser context | |
| * @param msg the message to display/transmit | |
| * @param ... extra parameters for the message display | |
| */ | |
| typedef void (*errorSAXFunc) (void *ctx, | |
| const char *msg, ...) LIBXML_ATTR_FORMAT(2,3); | |
| /** | |
| * SAX callback for fatal error messages. | |
| * | |
| * @param ctx an XML parser context | |
| * @param msg the message to display/transmit | |
| * @param ... extra parameters for the message display | |
| */ | |
| typedef void (*fatalErrorSAXFunc) (void *ctx, | |
| const char *msg, ...) LIBXML_ATTR_FORMAT(2,3); | |
| /** | |
| * SAX callback to get standalone status. | |
| * | |
| * @param ctx the user data (XML parser context) | |
| * @returns 1 if true | |
| */ | |
| typedef int (*isStandaloneSAXFunc) (void *ctx); | |
| /** | |
| * SAX callback to get internal subset status. | |
| * | |
| * @param ctx the user data (XML parser context) | |
| * @returns 1 if true | |
| */ | |
| typedef int (*hasInternalSubsetSAXFunc) (void *ctx); | |
| /** | |
| * SAX callback to get external subset status. | |
| * | |
| * @param ctx the user data (XML parser context) | |
| * @returns 1 if true | |
| */ | |
| typedef int (*hasExternalSubsetSAXFunc) (void *ctx); | |
| /************************************************************************ | |
| * * | |
| * The SAX version 2 API extensions * | |
| * * | |
| ************************************************************************/ | |
| /** | |
| * Special constant required for SAX2 handlers. | |
| */ | |
| #define XML_SAX2_MAGIC 0xDEEDBEAF | |
| /** | |
| * SAX2 callback for start tags. | |
| * | |
| * It provides the namespace information for the element, as well as | |
| * the new namespace declarations on the element. | |
| * | |
| * @param ctx the user data (XML parser context) | |
| * @param localname the local name of the element | |
| * @param prefix the element namespace prefix if available | |
| * @param URI the element namespace name if available | |
| * @param nb_namespaces number of namespace definitions on that node | |
| * @param namespaces pointer to the array of prefix/URI pairs namespace definitions | |
| * @param nb_attributes the number of attributes on that node | |
| * @param nb_defaulted the number of defaulted attributes. The defaulted | |
| * ones are at the end of the array | |
| * @param attributes pointer to the array of (localname/prefix/URI/value/end) | |
| * attribute values. | |
| */ | |
| typedef void (*startElementNsSAX2Func) (void *ctx, | |
| const xmlChar *localname, | |
| const xmlChar *prefix, | |
| const xmlChar *URI, | |
| int nb_namespaces, | |
| const xmlChar **namespaces, | |
| int nb_attributes, | |
| int nb_defaulted, | |
| const xmlChar **attributes); | |
| /** | |
| * SAX2 callback for end tags. | |
| * | |
| * It provides the namespace information for the element. | |
| * | |
| * @param ctx the user data (XML parser context) | |
| * @param localname the local name of the element | |
| * @param prefix the element namespace prefix if available | |
| * @param URI the element namespace name if available | |
| */ | |
| typedef void (*endElementNsSAX2Func) (void *ctx, | |
| const xmlChar *localname, | |
| const xmlChar *prefix, | |
| const xmlChar *URI); | |
| /** | |
| * Callbacks for SAX parser | |
| * | |
| * For DTD-related handlers, it's recommended to either use the | |
| * original libxml2 handler or set them to NULL if DTDs can be | |
| * ignored. | |
| */ | |
| struct _xmlSAXHandler { | |
| /** | |
| * Called after the start of the document type declaration | |
| * was parsed. | |
| * | |
| * Should typically not be modified. | |
| */ | |
| internalSubsetSAXFunc internalSubset; | |
| /** | |
| * Standalone status. Not invoked by the parser. Not supposed | |
| * to be changed by applications. | |
| */ | |
| isStandaloneSAXFunc isStandalone; | |
| /** | |
| * Internal subset availability. Not invoked by the parser. | |
| * Not supposed to be changed by applications. | |
| */ | |
| hasInternalSubsetSAXFunc hasInternalSubset; | |
| /** | |
| * External subset availability. Not invoked by the parser. | |
| * Not supposed to be changed by applications. | |
| */ | |
| hasExternalSubsetSAXFunc hasExternalSubset; | |
| /** | |
| * Only called when loading external DTDs. Not called to load | |
| * external entities. | |
| * | |
| * Should typically not be modified. | |
| */ | |
| resolveEntitySAXFunc resolveEntity; | |
| /** | |
| * Called when looking up general entities. | |
| * | |
| * Should typically not be modified. | |
| */ | |
| getEntitySAXFunc getEntity; | |
| /** | |
| * Called after an entity declaration was parsed. | |
| * | |
| * Should typically not be modified. | |
| */ | |
| entityDeclSAXFunc entityDecl; | |
| /** | |
| * Called after a notation declaration was parsed. | |
| * | |
| * Should typically not be modified. | |
| */ | |
| notationDeclSAXFunc notationDecl; | |
| /** | |
| * Called after an attribute declaration was parsed. | |
| * | |
| * Should typically not be modified. | |
| */ | |
| attributeDeclSAXFunc attributeDecl; | |
| /** | |
| * Called after an element declaration was parsed. | |
| * | |
| * Should typically not be modified. | |
| */ | |
| elementDeclSAXFunc elementDecl; | |
| /** | |
| * Called after an unparsed entity declaration was parsed. | |
| * | |
| * Should typically not be modified. | |
| */ | |
| unparsedEntityDeclSAXFunc unparsedEntityDecl; | |
| /** | |
| * This callback receives the "document locator" at startup, | |
| * which is always the global xmlDefaultSAXLocator. | |
| * | |
| * Everything is available on the context, so this is useless in | |
| * our case. | |
| */ | |
| setDocumentLocatorSAXFunc setDocumentLocator; | |
| /** | |
| * Called after the XML declaration was parsed. | |
| * | |
| * Use xmlCtxtGetVersion(), xmlCtxtGetDeclaredEncoding() and | |
| * xmlCtxtGetStandalone() to get data from the XML declaration. | |
| */ | |
| startDocumentSAXFunc startDocument; | |
| /** | |
| * Called at the end of the document. | |
| */ | |
| endDocumentSAXFunc endDocument; | |
| /** | |
| * Legacy start tag handler | |
| * | |
| * `startElement` and `endElement` are only used by the legacy SAX1 | |
| * interface and should not be used in new software. If you really | |
| * have to enable SAX1, the preferred way is set the `initialized` | |
| * member to 1 instead of XML_SAX2_MAGIC. | |
| * | |
| * For backward compatibility, it's also possible to set the | |
| * `startElementNs` and `endElementNs` handlers to NULL. | |
| * | |
| * You can also set the XML_PARSE_SAX1 parser option, but versions | |
| * older than 2.12.0 will probably crash if this option is provided | |
| * together with custom SAX callbacks. | |
| */ | |
| startElementSAXFunc startElement; | |
| /** | |
| * See _xmlSAXHandler.startElement | |
| */ | |
| endElementSAXFunc endElement; | |
| /** | |
| * Called after an entity reference was parsed. | |
| */ | |
| referenceSAXFunc reference; | |
| /** | |
| * Called after a character data was parsed. | |
| */ | |
| charactersSAXFunc characters; | |
| /** | |
| * Called after "ignorable" whitespace was parsed. | |
| * | |
| * `ignorableWhitespace` should always be set to the same value | |
| * as `characters`. Otherwise, the parser will try to detect | |
| * whitespace which is unreliable. | |
| */ | |
| ignorableWhitespaceSAXFunc ignorableWhitespace; | |
| /** | |
| * Called after a processing instruction was parsed. | |
| */ | |
| processingInstructionSAXFunc processingInstruction; | |
| /** | |
| * Called after a comment was parsed. | |
| */ | |
| commentSAXFunc comment; | |
| /** | |
| * Callback for warning messages. | |
| */ | |
| warningSAXFunc warning; | |
| /** | |
| * Callback for error messages. | |
| */ | |
| errorSAXFunc error; | |
| /** | |
| * Unused, all errors go to `error`. | |
| */ | |
| fatalErrorSAXFunc fatalError; | |
| /** | |
| * Called when looking up parameter entities. | |
| * | |
| * Should typically not be modified. | |
| */ | |
| getParameterEntitySAXFunc getParameterEntity; | |
| /** | |
| * Called after a CDATA section was parsed. | |
| */ | |
| cdataBlockSAXFunc cdataBlock; | |
| /** | |
| * Called to parse the external subset. | |
| * | |
| * Should typically not be modified. | |
| */ | |
| externalSubsetSAXFunc externalSubset; | |
| /** | |
| * Legacy magic value | |
| * | |
| * `initialized` should always be set to XML_SAX2_MAGIC to | |
| * enable the modern SAX2 interface. | |
| */ | |
| unsigned int initialized; | |
| /** | |
| * Application data | |
| */ | |
| void *_private; | |
| /** | |
| * Called after a start tag was parsed. | |
| */ | |
| startElementNsSAX2Func startElementNs; | |
| /** | |
| * Called after an end tag was parsed. | |
| */ | |
| endElementNsSAX2Func endElementNs; | |
| /** | |
| * Structured error handler. | |
| * | |
| * Takes precedence over `error` or `warning`, but modern code | |
| * should use xmlCtxtSetErrorHandler(). | |
| */ | |
| xmlStructuredErrorFunc serror; | |
| }; | |
| /** | |
| * SAX handler, version 1. | |
| * | |
| * @deprecated Use version 2 handlers. | |
| */ | |
| typedef struct _xmlSAXHandlerV1 xmlSAXHandlerV1; | |
| typedef xmlSAXHandlerV1 *xmlSAXHandlerV1Ptr; | |
| /** | |
| * SAX handler, version 1. | |
| * | |
| * @deprecated Use version 2 handlers. | |
| */ | |
| struct _xmlSAXHandlerV1 { | |
| internalSubsetSAXFunc internalSubset; | |
| isStandaloneSAXFunc isStandalone; | |
| hasInternalSubsetSAXFunc hasInternalSubset; | |
| hasExternalSubsetSAXFunc hasExternalSubset; | |
| resolveEntitySAXFunc resolveEntity; | |
| getEntitySAXFunc getEntity; | |
| entityDeclSAXFunc entityDecl; | |
| notationDeclSAXFunc notationDecl; | |
| attributeDeclSAXFunc attributeDecl; | |
| elementDeclSAXFunc elementDecl; | |
| unparsedEntityDeclSAXFunc unparsedEntityDecl; | |
| setDocumentLocatorSAXFunc setDocumentLocator; | |
| startDocumentSAXFunc startDocument; | |
| endDocumentSAXFunc endDocument; | |
| startElementSAXFunc startElement; | |
| endElementSAXFunc endElement; | |
| referenceSAXFunc reference; | |
| charactersSAXFunc characters; | |
| ignorableWhitespaceSAXFunc ignorableWhitespace; | |
| processingInstructionSAXFunc processingInstruction; | |
| commentSAXFunc comment; | |
| warningSAXFunc warning; | |
| errorSAXFunc error; | |
| fatalErrorSAXFunc fatalError; /* unused error() get all the errors */ | |
| getParameterEntitySAXFunc getParameterEntity; | |
| cdataBlockSAXFunc cdataBlock; | |
| externalSubsetSAXFunc externalSubset; | |
| unsigned int initialized; | |
| }; | |
| /** | |
| * Callback for external entity loader. | |
| * | |
| * The URL is not resolved using XML catalogs before being passed | |
| * to the callback. | |
| * | |
| * @param URL The URL or system ID of the resource requested | |
| * @param publicId The public ID of the resource requested (optional) | |
| * @param context the XML parser context | |
| * @returns the entity input parser or NULL on error. | |
| */ | |
| typedef xmlParserInput *(*xmlExternalEntityLoader) (const char *URL, | |
| const char *publicId, | |
| xmlParserCtxt *context); | |
| /* | |
| * Variables | |
| */ | |
| XMLPUBVAR const char *const xmlParserVersion; | |
| /** @cond ignore */ | |
| XML_DEPRECATED | |
| XMLPUBVAR const xmlSAXLocator xmlDefaultSAXLocator; | |
| #ifdef LIBXML_SAX1_ENABLED | |
| /** | |
| * @deprecated Use #xmlSAXVersion or #xmlSAX2InitDefaultSAXHandler | |
| */ | |
| XML_DEPRECATED | |
| XMLPUBVAR const xmlSAXHandlerV1 xmlDefaultSAXHandler; | |
| #endif | |
| XML_DEPRECATED | |
| XMLPUBFUN int *__xmlDoValidityCheckingDefaultValue(void); | |
| XML_DEPRECATED | |
| XMLPUBFUN int *__xmlGetWarningsDefaultValue(void); | |
| XML_DEPRECATED | |
| XMLPUBFUN int *__xmlKeepBlanksDefaultValue(void); | |
| XML_DEPRECATED | |
| XMLPUBFUN int *__xmlLineNumbersDefaultValue(void); | |
| XML_DEPRECATED | |
| XMLPUBFUN int *__xmlLoadExtDtdDefaultValue(void); | |
| XML_DEPRECATED | |
| XMLPUBFUN int *__xmlPedanticParserDefaultValue(void); | |
| XML_DEPRECATED | |
| XMLPUBFUN int *__xmlSubstituteEntitiesDefaultValue(void); | |
| #ifdef LIBXML_OUTPUT_ENABLED | |
| XML_DEPRECATED | |
| XMLPUBFUN int *__xmlIndentTreeOutput(void); | |
| XML_DEPRECATED | |
| XMLPUBFUN const char **__xmlTreeIndentString(void); | |
| XML_DEPRECATED | |
| XMLPUBFUN int *__xmlSaveNoEmptyTags(void); | |
| #endif | |
| /** @endcond */ | |
| #ifndef XML_GLOBALS_NO_REDEFINITION | |
| /** | |
| * Thread-local setting to enable validation. Defaults to 0. | |
| * | |
| * @deprecated Use the parser option XML_PARSE_DTDVALID. | |
| */ | |
| #define xmlDoValidityCheckingDefaultValue \ | |
| (*__xmlDoValidityCheckingDefaultValue()) | |
| /** | |
| * Thread-local setting to disable warnings. Defaults to 1. | |
| * | |
| * @deprecated Use the parser option XML_PARSE_NOWARNING. | |
| */ | |
| #define xmlGetWarningsDefaultValue \ | |
| (*__xmlGetWarningsDefaultValue()) | |
| /** | |
| * Thread-local setting to ignore some whitespace. Defaults | |
| * to 1. | |
| * | |
| * @deprecated Use the parser option XML_PARSE_NOBLANKS. | |
| */ | |
| #define xmlKeepBlanksDefaultValue (*__xmlKeepBlanksDefaultValue()) | |
| /** | |
| * Thread-local setting to store line numbers. Defaults | |
| * to 0, but is always enabled after setting parser options. | |
| * | |
| * @deprecated Shouldn't be needed when using parser options. | |
| */ | |
| #define xmlLineNumbersDefaultValue \ | |
| (*__xmlLineNumbersDefaultValue()) | |
| /** | |
| * Thread-local setting to enable loading of external DTDs. | |
| * Defaults to 0. | |
| * | |
| * @deprecated Use the parser option XML_PARSE_DTDLOAD. | |
| */ | |
| #define xmlLoadExtDtdDefaultValue (*__xmlLoadExtDtdDefaultValue()) | |
| /** | |
| * Thread-local setting to enable pedantic warnings. | |
| * Defaults to 0. | |
| * | |
| * @deprecated Use the parser option XML_PARSE_PEDANTIC. | |
| */ | |
| #define xmlPedanticParserDefaultValue \ | |
| (*__xmlPedanticParserDefaultValue()) | |
| /** | |
| * Thread-local setting to enable entity substitution. | |
| * Defaults to 0. | |
| * | |
| * @deprecated Use the parser option XML_PARSE_NOENT. | |
| */ | |
| #define xmlSubstituteEntitiesDefaultValue \ | |
| (*__xmlSubstituteEntitiesDefaultValue()) | |
| #ifdef LIBXML_OUTPUT_ENABLED | |
| /** | |
| * Thread-local setting to disable indenting when | |
| * formatting output. Defaults to 1. | |
| * | |
| * @deprecated Use the xmlsave.h API with option | |
| * XML_SAVE_NO_INDENT. | |
| */ | |
| #define xmlIndentTreeOutput (*__xmlIndentTreeOutput()) | |
| /** | |
| * Thread-local setting to change the indent string. | |
| * Defaults to two spaces. | |
| * | |
| * @deprecated Use the xmlsave.h API and | |
| * xmlSaveSetIndentString(). | |
| */ | |
| #define xmlTreeIndentString (*__xmlTreeIndentString()) | |
| /** | |
| * Thread-local setting to disable empty tags when | |
| * serializing. Defaults to 0. | |
| * | |
| * @deprecated Use the xmlsave.h API with option | |
| * XML_SAVE_NO_EMPTY. | |
| */ | |
| #define xmlSaveNoEmptyTags (*__xmlSaveNoEmptyTags()) | |
| #endif | |
| #endif | |
| /* | |
| * Init/Cleanup | |
| */ | |
| XMLPUBFUN void | |
| xmlInitParser (void); | |
| XMLPUBFUN void | |
| xmlCleanupParser (void); | |
| XML_DEPRECATED | |
| XMLPUBFUN void | |
| xmlInitGlobals (void); | |
| XML_DEPRECATED | |
| XMLPUBFUN void | |
| xmlCleanupGlobals (void); | |
| /* | |
| * Input functions | |
| */ | |
| XML_DEPRECATED | |
| XMLPUBFUN int | |
| xmlParserInputRead (xmlParserInput *in, | |
| int len); | |
| XMLPUBFUN int | |
| xmlParserInputGrow (xmlParserInput *in, | |
| int len); | |
| /* | |
| * Basic parsing Interfaces | |
| */ | |
| #ifdef LIBXML_SAX1_ENABLED | |
| XMLPUBFUN xmlDoc * | |
| xmlParseDoc (const xmlChar *cur); | |
| XMLPUBFUN xmlDoc * | |
| xmlParseFile (const char *filename); | |
| XMLPUBFUN xmlDoc * | |
| xmlParseMemory (const char *buffer, | |
| int size); | |
| #endif /* LIBXML_SAX1_ENABLED */ | |
| XML_DEPRECATED | |
| XMLPUBFUN int | |
| xmlSubstituteEntitiesDefault(int val); | |
| XMLPUBFUN int | |
| xmlKeepBlanksDefault (int val); | |
| XMLPUBFUN void | |
| xmlStopParser (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN int | |
| xmlPedanticParserDefault(int val); | |
| XML_DEPRECATED | |
| XMLPUBFUN int | |
| xmlLineNumbersDefault (int val); | |
| XML_DEPRECATED | |
| XMLPUBFUN int | |
| xmlThrDefSubstituteEntitiesDefaultValue(int v); | |
| XML_DEPRECATED | |
| XMLPUBFUN int | |
| xmlThrDefKeepBlanksDefaultValue(int v); | |
| XML_DEPRECATED | |
| XMLPUBFUN int | |
| xmlThrDefPedanticParserDefaultValue(int v); | |
| XML_DEPRECATED | |
| XMLPUBFUN int | |
| xmlThrDefLineNumbersDefaultValue(int v); | |
| XML_DEPRECATED | |
| XMLPUBFUN int | |
| xmlThrDefDoValidityCheckingDefaultValue(int v); | |
| XML_DEPRECATED | |
| XMLPUBFUN int | |
| xmlThrDefGetWarningsDefaultValue(int v); | |
| XML_DEPRECATED | |
| XMLPUBFUN int | |
| xmlThrDefLoadExtDtdDefaultValue(int v); | |
| #ifdef LIBXML_SAX1_ENABLED | |
| /* | |
| * Recovery mode | |
| */ | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlDoc * | |
| xmlRecoverDoc (const xmlChar *cur); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlDoc * | |
| xmlRecoverMemory (const char *buffer, | |
| int size); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlDoc * | |
| xmlRecoverFile (const char *filename); | |
| #endif /* LIBXML_SAX1_ENABLED */ | |
| /* | |
| * Less common routines and SAX interfaces | |
| */ | |
| XMLPUBFUN int | |
| xmlParseDocument (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN int | |
| xmlParseExtParsedEnt (xmlParserCtxt *ctxt); | |
| #ifdef LIBXML_SAX1_ENABLED | |
| XML_DEPRECATED | |
| XMLPUBFUN int | |
| xmlSAXUserParseFile (xmlSAXHandler *sax, | |
| void *user_data, | |
| const char *filename); | |
| XML_DEPRECATED | |
| XMLPUBFUN int | |
| xmlSAXUserParseMemory (xmlSAXHandler *sax, | |
| void *user_data, | |
| const char *buffer, | |
| int size); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlDoc * | |
| xmlSAXParseDoc (xmlSAXHandler *sax, | |
| const xmlChar *cur, | |
| int recovery); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlDoc * | |
| xmlSAXParseMemory (xmlSAXHandler *sax, | |
| const char *buffer, | |
| int size, | |
| int recovery); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlDoc * | |
| xmlSAXParseMemoryWithData (xmlSAXHandler *sax, | |
| const char *buffer, | |
| int size, | |
| int recovery, | |
| void *data); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlDoc * | |
| xmlSAXParseFile (xmlSAXHandler *sax, | |
| const char *filename, | |
| int recovery); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlDoc * | |
| xmlSAXParseFileWithData (xmlSAXHandler *sax, | |
| const char *filename, | |
| int recovery, | |
| void *data); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlDoc * | |
| xmlSAXParseEntity (xmlSAXHandler *sax, | |
| const char *filename); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlDoc * | |
| xmlParseEntity (const char *filename); | |
| #endif /* LIBXML_SAX1_ENABLED */ | |
| #ifdef LIBXML_VALID_ENABLED | |
| XMLPUBFUN xmlDtd * | |
| xmlCtxtParseDtd (xmlParserCtxt *ctxt, | |
| xmlParserInput *input, | |
| const xmlChar *publicId, | |
| const xmlChar *systemId); | |
| XMLPUBFUN int | |
| xmlCtxtValidateDocument (xmlParserCtxt *ctxt, | |
| xmlDoc *doc); | |
| XMLPUBFUN int | |
| xmlCtxtValidateDtd (xmlParserCtxt *ctxt, | |
| xmlDoc *doc, | |
| xmlDtd *dtd); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlDtd * | |
| xmlSAXParseDTD (xmlSAXHandler *sax, | |
| const xmlChar *publicId, | |
| const xmlChar *systemId); | |
| XMLPUBFUN xmlDtd * | |
| xmlParseDTD (const xmlChar *publicId, | |
| const xmlChar *systemId); | |
| XMLPUBFUN xmlDtd * | |
| xmlIOParseDTD (xmlSAXHandler *sax, | |
| xmlParserInputBuffer *input, | |
| xmlCharEncoding enc); | |
| #endif /* LIBXML_VALID_ENABLE */ | |
| #ifdef LIBXML_SAX1_ENABLED | |
| XMLPUBFUN int | |
| xmlParseBalancedChunkMemory(xmlDoc *doc, | |
| xmlSAXHandler *sax, | |
| void *user_data, | |
| int depth, | |
| const xmlChar *string, | |
| xmlNode **lst); | |
| #endif /* LIBXML_SAX1_ENABLED */ | |
| XMLPUBFUN xmlParserErrors | |
| xmlParseInNodeContext (xmlNode *node, | |
| const char *data, | |
| int datalen, | |
| int options, | |
| xmlNode **lst); | |
| #ifdef LIBXML_SAX1_ENABLED | |
| XMLPUBFUN int | |
| xmlParseBalancedChunkMemoryRecover(xmlDoc *doc, | |
| xmlSAXHandler *sax, | |
| void *user_data, | |
| int depth, | |
| const xmlChar *string, | |
| xmlNode **lst, | |
| int recover); | |
| XML_DEPRECATED | |
| XMLPUBFUN int | |
| xmlParseExternalEntity (xmlDoc *doc, | |
| xmlSAXHandler *sax, | |
| void *user_data, | |
| int depth, | |
| const xmlChar *URL, | |
| const xmlChar *ID, | |
| xmlNode **lst); | |
| #endif /* LIBXML_SAX1_ENABLED */ | |
| XMLPUBFUN int | |
| xmlParseCtxtExternalEntity(xmlParserCtxt *ctx, | |
| const xmlChar *URL, | |
| const xmlChar *ID, | |
| xmlNode **lst); | |
| /* | |
| * Parser contexts handling. | |
| */ | |
| XMLPUBFUN xmlParserCtxt * | |
| xmlNewParserCtxt (void); | |
| XMLPUBFUN xmlParserCtxt * | |
| xmlNewSAXParserCtxt (const xmlSAXHandler *sax, | |
| void *userData); | |
| XMLPUBFUN int | |
| xmlInitParserCtxt (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN void | |
| xmlClearParserCtxt (xmlParserCtxt *ctxt); | |
| XMLPUBFUN void | |
| xmlFreeParserCtxt (xmlParserCtxt *ctxt); | |
| #ifdef LIBXML_SAX1_ENABLED | |
| XML_DEPRECATED | |
| XMLPUBFUN void | |
| xmlSetupParserForBuffer (xmlParserCtxt *ctxt, | |
| const xmlChar* buffer, | |
| const char *filename); | |
| #endif /* LIBXML_SAX1_ENABLED */ | |
| XMLPUBFUN xmlParserCtxt * | |
| xmlCreateDocParserCtxt (const xmlChar *cur); | |
| #ifdef LIBXML_PUSH_ENABLED | |
| /* | |
| * Interfaces for the Push mode. | |
| */ | |
| XMLPUBFUN xmlParserCtxt * | |
| xmlCreatePushParserCtxt(xmlSAXHandler *sax, | |
| void *user_data, | |
| const char *chunk, | |
| int size, | |
| const char *filename); | |
| XMLPUBFUN int | |
| xmlParseChunk (xmlParserCtxt *ctxt, | |
| const char *chunk, | |
| int size, | |
| int terminate); | |
| #endif /* LIBXML_PUSH_ENABLED */ | |
| /* | |
| * Special I/O mode. | |
| */ | |
| XMLPUBFUN xmlParserCtxt * | |
| xmlCreateIOParserCtxt (xmlSAXHandler *sax, | |
| void *user_data, | |
| xmlInputReadCallback ioread, | |
| xmlInputCloseCallback ioclose, | |
| void *ioctx, | |
| xmlCharEncoding enc); | |
| XMLPUBFUN xmlParserInput * | |
| xmlNewIOInputStream (xmlParserCtxt *ctxt, | |
| xmlParserInputBuffer *input, | |
| xmlCharEncoding enc); | |
| /* | |
| * Node infos. | |
| */ | |
| XML_DEPRECATED | |
| XMLPUBFUN const xmlParserNodeInfo* | |
| xmlParserFindNodeInfo (xmlParserCtxt *ctxt, | |
| xmlNode *node); | |
| XML_DEPRECATED | |
| XMLPUBFUN void | |
| xmlInitNodeInfoSeq (xmlParserNodeInfoSeq *seq); | |
| XML_DEPRECATED | |
| XMLPUBFUN void | |
| xmlClearNodeInfoSeq (xmlParserNodeInfoSeq *seq); | |
| XML_DEPRECATED | |
| XMLPUBFUN unsigned long | |
| xmlParserFindNodeInfoIndex(xmlParserNodeInfoSeq *seq, | |
| xmlNode *node); | |
| XML_DEPRECATED | |
| XMLPUBFUN void | |
| xmlParserAddNodeInfo (xmlParserCtxt *ctxt, | |
| xmlParserNodeInfo *info); | |
| /* | |
| * External entities handling actually implemented in xmlIO. | |
| */ | |
| XMLPUBFUN void | |
| xmlSetExternalEntityLoader(xmlExternalEntityLoader f); | |
| XMLPUBFUN xmlExternalEntityLoader | |
| xmlGetExternalEntityLoader(void); | |
| XMLPUBFUN xmlParserInput * | |
| xmlLoadExternalEntity (const char *URL, | |
| const char *ID, | |
| xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN long | |
| xmlByteConsumed (xmlParserCtxt *ctxt); | |
| /* | |
| * New set of simpler/more flexible APIs | |
| */ | |
| /** | |
| * This is the set of XML parser options that can be passed to | |
| * #xmlReadDoc, #xmlCtxtSetOptions and other functions. | |
| */ | |
| typedef enum { | |
| /** | |
| * Enable "recovery" mode which allows non-wellformed documents. | |
| * How this mode behaves exactly is unspecified and may change | |
| * without further notice. Use of this feature is DISCOURAGED. | |
| * | |
| * Not supported by the push parser. | |
| */ | |
| XML_PARSE_RECOVER = 1<<0, | |
| /** | |
| * Despite the confusing name, this option enables substitution | |
| * of entities. The resulting tree won't contain any entity | |
| * reference nodes. | |
| * | |
| * This option also enables loading of external entities (both | |
| * general and parameter entities) which is dangerous. If you | |
| * process untrusted data, it's recommended to set the | |
| * XML_PARSE_NO_XXE option to disable loading of external | |
| * entities. | |
| */ | |
| XML_PARSE_NOENT = 1<<1, | |
| /** | |
| * Enables loading of an external DTD and the loading and | |
| * substitution of external parameter entities. Has no effect | |
| * if XML_PARSE_NO_XXE is set. | |
| */ | |
| XML_PARSE_DTDLOAD = 1<<2, | |
| /** | |
| * Adds default attributes from the DTD to the result document. | |
| * | |
| * Implies XML_PARSE_DTDLOAD, but loading of external content | |
| * can be disabled with XML_PARSE_NO_XXE. | |
| */ | |
| XML_PARSE_DTDATTR = 1<<3, | |
| /** | |
| * This option enables DTD validation which requires to load | |
| * external DTDs and external entities (both general and | |
| * parameter entities) unless XML_PARSE_NO_XXE was set. | |
| * | |
| * DTD validation is vulnerable to algorithmic complexity | |
| * attacks and should never be enabled with untrusted input. | |
| */ | |
| XML_PARSE_DTDVALID = 1<<4, | |
| /** | |
| * Disable error and warning reports to the error handlers. | |
| * Errors are still accessible with xmlCtxtGetLastError(). | |
| */ | |
| XML_PARSE_NOERROR = 1<<5, | |
| /** | |
| * Disable warning reports. | |
| */ | |
| XML_PARSE_NOWARNING = 1<<6, | |
| /** | |
| * Enable some pedantic warnings. | |
| */ | |
| XML_PARSE_PEDANTIC = 1<<7, | |
| /** | |
| * Remove some whitespace from the result document. Where to | |
| * remove whitespace depends on DTD element declarations or a | |
| * broken heuristic with unfixable bugs. Use of this option is | |
| * DISCOURAGED. | |
| * | |
| * Not supported by the push parser. | |
| */ | |
| XML_PARSE_NOBLANKS = 1<<8, | |
| /** | |
| * Always invoke the deprecated SAX1 startElement and endElement | |
| * handlers. | |
| * | |
| * @deprecated This option will be removed in a future version. | |
| */ | |
| XML_PARSE_SAX1 = 1<<9, | |
| /** | |
| * Enable XInclude processing. This option only affects the | |
| * xmlTextReader and XInclude interfaces. | |
| */ | |
| XML_PARSE_XINCLUDE = 1<<10, | |
| /** | |
| * Disable network access with the built-in HTTP or FTP clients. | |
| * | |
| * After the last built-in network client was removed in 2.15, | |
| * this option has no effect expect for being passed on to custom | |
| * resource loaders. | |
| */ | |
| XML_PARSE_NONET = 1<<11, | |
| /** | |
| * Create a document without interned strings, making all | |
| * strings separate memory allocations. | |
| */ | |
| XML_PARSE_NODICT = 1<<12, | |
| /** | |
| * Remove redundant namespace declarations from the result | |
| * document. | |
| */ | |
| XML_PARSE_NSCLEAN = 1<<13, | |
| /** | |
| * Output normal text nodes instead of CDATA nodes. | |
| */ | |
| XML_PARSE_NOCDATA = 1<<14, | |
| /** | |
| * Don't generate XInclude start/end nodes when expanding | |
| * inclusions. This option only affects the xmlTextReader | |
| * and XInclude interfaces. | |
| */ | |
| XML_PARSE_NOXINCNODE = 1<<15, | |
| /** | |
| * Store small strings directly in the node struct to save | |
| * memory. | |
| */ | |
| XML_PARSE_COMPACT = 1<<16, | |
| /** | |
| * Use old Name productions from before XML 1.0 Fifth Edition. | |
| * | |
| * @deprecated This option will be removed in a future version. | |
| */ | |
| XML_PARSE_OLD10 = 1<<17, | |
| /** | |
| * Don't fix up XInclude xml:base URIs. This option only affects | |
| * the xmlTextReader and XInclude interfaces. | |
| */ | |
| XML_PARSE_NOBASEFIX = 1<<18, | |
| /** | |
| * Relax some internal limits. | |
| * | |
| * Maximum size of text nodes, tags, comments, processing instructions, | |
| * CDATA sections, entity values | |
| * | |
| * normal: 10M | |
| * huge: 1B | |
| * | |
| * Maximum size of names, system literals, pubid literals | |
| * | |
| * normal: 50K | |
| * huge: 10M | |
| * | |
| * Maximum nesting depth of elements | |
| * | |
| * normal: 256 | |
| * huge: 2048 | |
| * | |
| * Maximum nesting depth of entities | |
| * | |
| * normal: 20 | |
| * huge: 40 | |
| */ | |
| XML_PARSE_HUGE = 1<<19, | |
| /** | |
| * Enable an unspecified legacy mode for SAX parsers. | |
| * | |
| * @deprecated This option will be removed in a future version. | |
| */ | |
| XML_PARSE_OLDSAX = 1<<20, | |
| /** | |
| * Ignore the encoding in the XML declaration. This option is | |
| * mostly unneeded these days. The only effect is to enforce | |
| * UTF-8 decoding of ASCII-like data. | |
| */ | |
| XML_PARSE_IGNORE_ENC = 1<<21, | |
| /** | |
| * Enable reporting of line numbers larger than 65535. | |
| */ | |
| XML_PARSE_BIG_LINES = 1<<22, | |
| /** | |
| * Disables loading of external DTDs or entities. | |
| * | |
| * @since 2.13.0 | |
| */ | |
| XML_PARSE_NO_XXE = 1<<23, | |
| /** | |
| * Enable input decompression. Setting this option is discouraged | |
| * to avoid zip bombs. | |
| * | |
| * @since 2.14.0 | |
| */ | |
| XML_PARSE_UNZIP = 1<<24, | |
| /** | |
| * Disables the global system XML catalog. | |
| * | |
| * @since 2.14.0 | |
| */ | |
| XML_PARSE_NO_SYS_CATALOG = 1<<25, | |
| /** | |
| * Enable XML catalog processing instructions. | |
| * | |
| * @since 2.14.0 | |
| */ | |
| XML_PARSE_CATALOG_PI = 1<<26, | |
| /** | |
| * Force the parser to ignore IDs. | |
| * | |
| * @since 2.15.0 | |
| */ | |
| XML_PARSE_SKIP_IDS = 1<<27 | |
| } xmlParserOption; | |
| XMLPUBFUN void | |
| xmlCtxtReset (xmlParserCtxt *ctxt); | |
| XMLPUBFUN int | |
| xmlCtxtResetPush (xmlParserCtxt *ctxt, | |
| const char *chunk, | |
| int size, | |
| const char *filename, | |
| const char *encoding); | |
| XMLPUBFUN int | |
| xmlCtxtGetOptions (xmlParserCtxt *ctxt); | |
| XMLPUBFUN int | |
| xmlCtxtSetOptions (xmlParserCtxt *ctxt, | |
| int options); | |
| XMLPUBFUN int | |
| xmlCtxtUseOptions (xmlParserCtxt *ctxt, | |
| int options); | |
| XMLPUBFUN void * | |
| xmlCtxtGetPrivate (xmlParserCtxt *ctxt); | |
| XMLPUBFUN void | |
| xmlCtxtSetPrivate (xmlParserCtxt *ctxt, | |
| void *priv); | |
| XMLPUBFUN void * | |
| xmlCtxtGetCatalogs (xmlParserCtxt *ctxt); | |
| XMLPUBFUN void | |
| xmlCtxtSetCatalogs (xmlParserCtxt *ctxt, | |
| void *catalogs); | |
| XMLPUBFUN xmlDict * | |
| xmlCtxtGetDict (xmlParserCtxt *ctxt); | |
| XMLPUBFUN void | |
| xmlCtxtSetDict (xmlParserCtxt *ctxt, | |
| xmlDict *); | |
| XMLPUBFUN xmlSAXHandler * | |
| xmlCtxtGetSaxHandler (xmlParserCtxt *ctxt); | |
| XMLPUBFUN int | |
| xmlCtxtSetSaxHandler (xmlParserCtxt *ctxt, | |
| const xmlSAXHandler *sax); | |
| XMLPUBFUN xmlDoc * | |
| xmlCtxtGetDocument (xmlParserCtxt *ctxt); | |
| XMLPUBFUN int | |
| xmlCtxtIsHtml (xmlParserCtxt *ctxt); | |
| XMLPUBFUN int | |
| xmlCtxtIsStopped (xmlParserCtxt *ctxt); | |
| XMLPUBFUN int | |
| xmlCtxtIsInSubset (xmlParserCtxt *ctxt); | |
| #ifdef LIBXML_VALID_ENABLED | |
| XMLPUBFUN xmlValidCtxt * | |
| xmlCtxtGetValidCtxt (xmlParserCtxt *ctxt); | |
| #endif | |
| XMLPUBFUN const xmlChar * | |
| xmlCtxtGetVersion (xmlParserCtxt *ctxt); | |
| XMLPUBFUN const xmlChar * | |
| xmlCtxtGetDeclaredEncoding(xmlParserCtxt *ctxt); | |
| XMLPUBFUN int | |
| xmlCtxtGetStandalone (xmlParserCtxt *ctxt); | |
| XMLPUBFUN xmlParserStatus | |
| xmlCtxtGetStatus (xmlParserCtxt *ctxt); | |
| XMLPUBFUN void * | |
| xmlCtxtGetUserData (xmlParserCtxt *ctxt); | |
| XMLPUBFUN xmlNode * | |
| xmlCtxtGetNode (xmlParserCtxt *ctxt); | |
| XMLPUBFUN int | |
| xmlCtxtGetDocTypeDecl (xmlParserCtxt *ctxt, | |
| const xmlChar **name, | |
| const xmlChar **systemId, | |
| const xmlChar **publicId); | |
| XMLPUBFUN int | |
| xmlCtxtGetInputPosition (xmlParserCtxt *ctxt, | |
| int inputIndex, | |
| const char **filname, | |
| int *line, | |
| int *col, | |
| unsigned long *bytePos); | |
| XMLPUBFUN int | |
| xmlCtxtGetInputWindow (xmlParserCtxt *ctxt, | |
| int inputIndex, | |
| const xmlChar **startOut, | |
| int *sizeInOut, | |
| int *offsetOut); | |
| XMLPUBFUN void | |
| xmlCtxtSetErrorHandler (xmlParserCtxt *ctxt, | |
| xmlStructuredErrorFunc handler, | |
| void *data); | |
| XMLPUBFUN void | |
| xmlCtxtSetResourceLoader(xmlParserCtxt *ctxt, | |
| xmlResourceLoader loader, | |
| void *vctxt); | |
| XMLPUBFUN void | |
| xmlCtxtSetCharEncConvImpl(xmlParserCtxt *ctxt, | |
| xmlCharEncConvImpl impl, | |
| void *vctxt); | |
| XMLPUBFUN void | |
| xmlCtxtSetMaxAmplification(xmlParserCtxt *ctxt, | |
| unsigned maxAmpl); | |
| XMLPUBFUN xmlDoc * | |
| xmlReadDoc (const xmlChar *cur, | |
| const char *URL, | |
| const char *encoding, | |
| int options); | |
| XMLPUBFUN xmlDoc * | |
| xmlReadFile (const char *URL, | |
| const char *encoding, | |
| int options); | |
| XMLPUBFUN xmlDoc * | |
| xmlReadMemory (const char *buffer, | |
| int size, | |
| const char *URL, | |
| const char *encoding, | |
| int options); | |
| XMLPUBFUN xmlDoc * | |
| xmlReadFd (int fd, | |
| const char *URL, | |
| const char *encoding, | |
| int options); | |
| XMLPUBFUN xmlDoc * | |
| xmlReadIO (xmlInputReadCallback ioread, | |
| xmlInputCloseCallback ioclose, | |
| void *ioctx, | |
| const char *URL, | |
| const char *encoding, | |
| int options); | |
| XMLPUBFUN xmlDoc * | |
| xmlCtxtParseDocument (xmlParserCtxt *ctxt, | |
| xmlParserInput *input); | |
| XMLPUBFUN xmlNode * | |
| xmlCtxtParseContent (xmlParserCtxt *ctxt, | |
| xmlParserInput *input, | |
| xmlNode *node, | |
| int hasTextDecl); | |
| XMLPUBFUN xmlDoc * | |
| xmlCtxtReadDoc (xmlParserCtxt *ctxt, | |
| const xmlChar *cur, | |
| const char *URL, | |
| const char *encoding, | |
| int options); | |
| XMLPUBFUN xmlDoc * | |
| xmlCtxtReadFile (xmlParserCtxt *ctxt, | |
| const char *filename, | |
| const char *encoding, | |
| int options); | |
| XMLPUBFUN xmlDoc * | |
| xmlCtxtReadMemory (xmlParserCtxt *ctxt, | |
| const char *buffer, | |
| int size, | |
| const char *URL, | |
| const char *encoding, | |
| int options); | |
| XMLPUBFUN xmlDoc * | |
| xmlCtxtReadFd (xmlParserCtxt *ctxt, | |
| int fd, | |
| const char *URL, | |
| const char *encoding, | |
| int options); | |
| XMLPUBFUN xmlDoc * | |
| xmlCtxtReadIO (xmlParserCtxt *ctxt, | |
| xmlInputReadCallback ioread, | |
| xmlInputCloseCallback ioclose, | |
| void *ioctx, | |
| const char *URL, | |
| const char *encoding, | |
| int options); | |
| /* | |
| * New input API | |
| */ | |
| XMLPUBFUN xmlParserErrors | |
| xmlNewInputFromUrl(const char *url, xmlParserInputFlags flags, | |
| xmlParserInput **out); | |
| XMLPUBFUN xmlParserInput * | |
| xmlNewInputFromMemory(const char *url, const void *mem, size_t size, | |
| xmlParserInputFlags flags); | |
| XMLPUBFUN xmlParserInput * | |
| xmlNewInputFromString(const char *url, const char *str, | |
| xmlParserInputFlags flags); | |
| XMLPUBFUN xmlParserInput * | |
| xmlNewInputFromFd(const char *url, int fd, xmlParserInputFlags flags); | |
| XMLPUBFUN xmlParserInput * | |
| xmlNewInputFromIO(const char *url, xmlInputReadCallback ioRead, | |
| xmlInputCloseCallback ioClose, void *ioCtxt, | |
| xmlParserInputFlags flags); | |
| XMLPUBFUN xmlParserErrors | |
| xmlInputSetEncodingHandler(xmlParserInput *input, | |
| xmlCharEncodingHandler *handler); | |
| /* | |
| * Library wide options | |
| */ | |
| /** | |
| * Used to examine the existence of features that can be enabled | |
| * or disabled at compile-time. | |
| * They used to be called XML_FEATURE_xxx but this clashed with Expat | |
| */ | |
| typedef enum { | |
| /** Multithreading support */ | |
| XML_WITH_THREAD = 1, | |
| /** @deprecated Always available */ | |
| XML_WITH_TREE = 2, | |
| /** Serialization support */ | |
| XML_WITH_OUTPUT = 3, | |
| /** Push parser */ | |
| XML_WITH_PUSH = 4, | |
| /** XML Reader */ | |
| XML_WITH_READER = 5, | |
| /** Streaming patterns */ | |
| XML_WITH_PATTERN = 6, | |
| /** XML Writer */ | |
| XML_WITH_WRITER = 7, | |
| /** Legacy SAX1 API */ | |
| XML_WITH_SAX1 = 8, | |
| /** @deprecated FTP support was removed */ | |
| XML_WITH_FTP = 9, | |
| /** @deprecated HTTP support was removed */ | |
| XML_WITH_HTTP = 10, | |
| /** DTD validation */ | |
| XML_WITH_VALID = 11, | |
| /** HTML parser */ | |
| XML_WITH_HTML = 12, | |
| /** Legacy symbols */ | |
| XML_WITH_LEGACY = 13, | |
| /** Canonical XML */ | |
| XML_WITH_C14N = 14, | |
| /** XML Catalogs */ | |
| XML_WITH_CATALOG = 15, | |
| /** XPath */ | |
| XML_WITH_XPATH = 16, | |
| /** XPointer */ | |
| XML_WITH_XPTR = 17, | |
| /** XInclude */ | |
| XML_WITH_XINCLUDE = 18, | |
| /** iconv */ | |
| XML_WITH_ICONV = 19, | |
| /** Built-in ISO-8859-X */ | |
| XML_WITH_ISO8859X = 20, | |
| /** @deprecated Removed */ | |
| XML_WITH_UNICODE = 21, | |
| /** Regular expressions */ | |
| XML_WITH_REGEXP = 22, | |
| /** @deprecated Same as XML_WITH_REGEXP */ | |
| XML_WITH_AUTOMATA = 23, | |
| /** @deprecated Removed */ | |
| XML_WITH_EXPR = 24, | |
| /** XML Schemas */ | |
| XML_WITH_SCHEMAS = 25, | |
| /** Schematron */ | |
| XML_WITH_SCHEMATRON = 26, | |
| /** Loadable modules */ | |
| XML_WITH_MODULES = 27, | |
| /** Debugging API */ | |
| XML_WITH_DEBUG = 28, | |
| /** @deprecated Removed */ | |
| XML_WITH_DEBUG_MEM = 29, | |
| /** @deprecated Removed */ | |
| XML_WITH_DEBUG_RUN = 30, | |
| /** GZIP compression */ | |
| XML_WITH_ZLIB = 31, | |
| /** ICU */ | |
| XML_WITH_ICU = 32, | |
| /** @deprecated LZMA support was removed */ | |
| XML_WITH_LZMA = 33, | |
| /** RELAXNG, since 2.14 */ | |
| XML_WITH_RELAXNG = 34, | |
| XML_WITH_NONE = 99999 /* just to be sure of allocation size */ | |
| } xmlFeature; | |
| XMLPUBFUN int | |
| xmlHasFeature (xmlFeature feature); | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| #endif /* __XML_PARSER_H__ */ |