| /** | |
| * @file | |
| * | |
| * @brief Internals routines and limits exported by the parser. | |
| * | |
| * Except for some I/O-related functions, most of these macros and | |
| * functions are deprecated. | |
| * | |
| * @copyright See Copyright for the status of this software. | |
| * | |
| * @author Daniel Veillard | |
| */ | |
| #ifndef __XML_PARSER_INTERNALS_H__ | |
| #define __XML_PARSER_INTERNALS_H__ | |
| #include <libxml/xmlversion.h> | |
| #include <libxml/parser.h> | |
| #include <libxml/HTMLparser.h> | |
| #include <libxml/chvalid.h> | |
| #include <libxml/SAX2.h> | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| /** | |
| * Push an input on the stack. | |
| * | |
| * @deprecated Use #xmlCtxtPushInput | |
| */ | |
| #define inputPush xmlCtxtPushInput | |
| /** | |
| * Pop an input from the stack. | |
| * | |
| * @deprecated Use #xmlCtxtPushInput | |
| */ | |
| #define inputPop xmlCtxtPopInput | |
| /** | |
| * Maximum element nesting depth (without XML_PARSE_HUGE). | |
| */ | |
| #define xmlParserMaxDepth 256 | |
| /** | |
| * Maximum size allowed for a single text node when building a tree. | |
| * This is not a limitation of the parser but a safety boundary feature, | |
| * use XML_PARSE_HUGE option to override it. | |
| * Introduced in 2.9.0 | |
| */ | |
| #define XML_MAX_TEXT_LENGTH 10000000 | |
| /** | |
| * Maximum size allowed when XML_PARSE_HUGE is set. | |
| */ | |
| #define XML_MAX_HUGE_LENGTH 1000000000 | |
| /** | |
| * Maximum size allowed for a markup identifier. | |
| * This is not a limitation of the parser but a safety boundary feature, | |
| * use XML_PARSE_HUGE option to override it. | |
| * Note that with the use of parsing dictionaries overriding the limit | |
| * may result in more runtime memory usage in face of "unfriendly' content | |
| * Introduced in 2.9.0 | |
| */ | |
| #define XML_MAX_NAME_LENGTH 50000 | |
| /** | |
| * Maximum size allowed by the parser for a dictionary by default | |
| * This is not a limitation of the parser but a safety boundary feature, | |
| * use XML_PARSE_HUGE option to override it. | |
| * Introduced in 2.9.0 | |
| */ | |
| #define XML_MAX_DICTIONARY_LIMIT 100000000 | |
| /** | |
| * Maximum size allowed by the parser for ahead lookup | |
| * This is an upper boundary enforced by the parser to avoid bad | |
| * behaviour on "unfriendly' content | |
| * Introduced in 2.9.0 | |
| */ | |
| #define XML_MAX_LOOKUP_LIMIT 10000000 | |
| /** | |
| * Identifiers can be longer, but this will be more costly | |
| * at runtime. | |
| */ | |
| #define XML_MAX_NAMELEN 100 | |
| /************************************************************************ | |
| * * | |
| * UNICODE version of the macros. * | |
| * * | |
| ************************************************************************/ | |
| /** | |
| * Macro to check the following production in the XML spec: | |
| * | |
| * [2] Char ::= #x9 | #xA | #xD | [#x20...] | |
| * | |
| * any byte character in the accepted range | |
| * | |
| * @param c an byte value (int) | |
| */ | |
| #define IS_BYTE_CHAR(c) xmlIsChar_ch(c) | |
| /** | |
| * Macro to check the following production in the XML spec: | |
| * | |
| * [2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | |
| * | [#x10000-#x10FFFF] | |
| * | |
| * any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. | |
| * | |
| * @param c an UNICODE value (int) | |
| */ | |
| #define IS_CHAR(c) xmlIsCharQ(c) | |
| /** | |
| * Behaves like IS_CHAR on single-byte value | |
| * | |
| * @param c an xmlChar (usually an unsigned char) | |
| */ | |
| #define IS_CHAR_CH(c) xmlIsChar_ch(c) | |
| /** | |
| * Macro to check the following production in the XML spec: | |
| * | |
| * [3] S ::= (#x20 | #x9 | #xD | #xA)+ | |
| * @param c an UNICODE value (int) | |
| */ | |
| #define IS_BLANK(c) xmlIsBlankQ(c) | |
| /** | |
| * Behaviour same as IS_BLANK | |
| * | |
| * @param c an xmlChar value (normally unsigned char) | |
| */ | |
| #define IS_BLANK_CH(c) xmlIsBlank_ch(c) | |
| /** | |
| * Macro to check the following production in the XML spec: | |
| * | |
| * [85] BaseChar ::= ... long list see REC ... | |
| * @param c an UNICODE value (int) | |
| */ | |
| #define IS_BASECHAR(c) xmlIsBaseCharQ(c) | |
| /** | |
| * Macro to check the following production in the XML spec: | |
| * | |
| * [88] Digit ::= ... long list see REC ... | |
| * @param c an UNICODE value (int) | |
| */ | |
| #define IS_DIGIT(c) xmlIsDigitQ(c) | |
| /** | |
| * Behaves like IS_DIGIT but with a single byte argument | |
| * | |
| * @param c an xmlChar value (usually an unsigned char) | |
| */ | |
| #define IS_DIGIT_CH(c) xmlIsDigit_ch(c) | |
| /** | |
| * Macro to check the following production in the XML spec: | |
| * | |
| * [87] CombiningChar ::= ... long list see REC ... | |
| * @param c an UNICODE value (int) | |
| */ | |
| #define IS_COMBINING(c) xmlIsCombiningQ(c) | |
| /** | |
| * Always false (all combining chars > 0xff) | |
| * | |
| * @param c an xmlChar (usually an unsigned char) | |
| */ | |
| #define IS_COMBINING_CH(c) 0 | |
| /** | |
| * Macro to check the following production in the XML spec: | |
| * | |
| * [89] Extender ::= #x00B7 | #x02D0 | #x02D1 | #x0387 | #x0640 | | |
| * #x0E46 | #x0EC6 | #x3005 | [#x3031-#x3035] | | |
| * [#x309D-#x309E] | [#x30FC-#x30FE] | |
| * @param c an UNICODE value (int) | |
| */ | |
| #define IS_EXTENDER(c) xmlIsExtenderQ(c) | |
| /** | |
| * Behaves like IS_EXTENDER but with a single-byte argument | |
| * | |
| * @param c an xmlChar value (usually an unsigned char) | |
| */ | |
| #define IS_EXTENDER_CH(c) xmlIsExtender_ch(c) | |
| /** | |
| * Macro to check the following production in the XML spec: | |
| * | |
| * [86] Ideographic ::= [#x4E00-#x9FA5] | #x3007 | [#x3021-#x3029] | |
| * @param c an UNICODE value (int) | |
| */ | |
| #define IS_IDEOGRAPHIC(c) xmlIsIdeographicQ(c) | |
| /** | |
| * Macro to check the following production in the XML spec: | |
| * | |
| * [84] Letter ::= BaseChar | Ideographic | |
| * @param c an UNICODE value (int) | |
| */ | |
| #define IS_LETTER(c) (IS_BASECHAR(c) || IS_IDEOGRAPHIC(c)) | |
| /** | |
| * Macro behaves like IS_LETTER, but only check base chars | |
| * | |
| * @param c an xmlChar value (normally unsigned char) | |
| */ | |
| #define IS_LETTER_CH(c) xmlIsBaseChar_ch(c) | |
| /** | |
| * Macro to check [a-zA-Z] | |
| * | |
| * @param c an xmlChar value | |
| */ | |
| #define IS_ASCII_LETTER(c) ((0x61 <= ((c) | 0x20)) && \ | |
| (((c) | 0x20) <= 0x7a)) | |
| /** | |
| * Macro to check [0-9] | |
| * | |
| * @param c an xmlChar value | |
| */ | |
| #define IS_ASCII_DIGIT(c) ((0x30 <= (c)) && ((c) <= 0x39)) | |
| /** | |
| * Macro to check the following production in the XML spec: | |
| * | |
| * [13] PubidChar ::= #x20 | #xD | #xA | [a-zA-Z0-9] | | |
| * [-'()+,./:=?;!*#@$_%] | |
| * @param c an UNICODE value (int) | |
| */ | |
| #define IS_PUBIDCHAR(c) xmlIsPubidCharQ(c) | |
| /** | |
| * Same as IS_PUBIDCHAR but for single-byte value | |
| * | |
| * @param c an xmlChar value (normally unsigned char) | |
| */ | |
| #define IS_PUBIDCHAR_CH(c) xmlIsPubidChar_ch(c) | |
| /* | |
| * Global variables used for predefined strings. | |
| */ | |
| /** @cond ignore */ | |
| XMLPUBVAR const xmlChar xmlStringText[]; | |
| XMLPUBVAR const xmlChar xmlStringTextNoenc[]; | |
| XML_DEPRECATED | |
| XMLPUBVAR const xmlChar xmlStringComment[]; | |
| /** @endcond */ | |
| XML_DEPRECATED | |
| XMLPUBFUN int xmlIsLetter (int c); | |
| /* | |
| * Parser context. | |
| */ | |
| XMLPUBFUN xmlParserCtxt * | |
| xmlCreateFileParserCtxt (const char *filename); | |
| XMLPUBFUN xmlParserCtxt * | |
| xmlCreateURLParserCtxt (const char *filename, | |
| int options); | |
| XMLPUBFUN xmlParserCtxt * | |
| xmlCreateMemoryParserCtxt(const char *buffer, | |
| int size); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlParserCtxt * | |
| xmlCreateEntityParserCtxt(const xmlChar *URL, | |
| const xmlChar *ID, | |
| const xmlChar *base); | |
| XMLPUBFUN void | |
| xmlCtxtErrMemory (xmlParserCtxt *ctxt); | |
| XMLPUBFUN int | |
| xmlSwitchEncoding (xmlParserCtxt *ctxt, | |
| xmlCharEncoding enc); | |
| XMLPUBFUN int | |
| xmlSwitchEncodingName (xmlParserCtxt *ctxt, | |
| const char *encoding); | |
| XMLPUBFUN int | |
| xmlSwitchToEncoding (xmlParserCtxt *ctxt, | |
| xmlCharEncodingHandler *handler); | |
| XML_DEPRECATED | |
| XMLPUBFUN int | |
| xmlSwitchInputEncoding (xmlParserCtxt *ctxt, | |
| xmlParserInput *input, | |
| xmlCharEncodingHandler *handler); | |
| /* | |
| * Input Streams. | |
| */ | |
| XMLPUBFUN xmlParserInput * | |
| xmlNewStringInputStream (xmlParserCtxt *ctxt, | |
| const xmlChar *buffer); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlParserInput * | |
| xmlNewEntityInputStream (xmlParserCtxt *ctxt, | |
| xmlEntity *entity); | |
| XMLPUBFUN int | |
| xmlCtxtPushInput (xmlParserCtxt *ctxt, | |
| xmlParserInput *input); | |
| XMLPUBFUN xmlParserInput * | |
| xmlCtxtPopInput (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN int | |
| xmlPushInput (xmlParserCtxt *ctxt, | |
| xmlParserInput *input); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlChar | |
| xmlPopInput (xmlParserCtxt *ctxt); | |
| XMLPUBFUN void | |
| xmlFreeInputStream (xmlParserInput *input); | |
| XMLPUBFUN xmlParserInput * | |
| xmlNewInputFromFile (xmlParserCtxt *ctxt, | |
| const char *filename); | |
| XMLPUBFUN xmlParserInput * | |
| xmlNewInputStream (xmlParserCtxt *ctxt); | |
| /* | |
| * Namespaces. | |
| */ | |
| XMLPUBFUN xmlChar * | |
| xmlSplitQName (xmlParserCtxt *ctxt, | |
| const xmlChar *name, | |
| xmlChar **prefix); | |
| /* | |
| * Generic production rules. | |
| */ | |
| XML_DEPRECATED | |
| XMLPUBFUN const xmlChar * | |
| xmlParseName (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlChar * | |
| xmlParseNmtoken (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlChar * | |
| xmlParseEntityValue (xmlParserCtxt *ctxt, | |
| xmlChar **orig); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlChar * | |
| xmlParseAttValue (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlChar * | |
| xmlParseSystemLiteral (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlChar * | |
| xmlParsePubidLiteral (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN void | |
| xmlParseCharData (xmlParserCtxt *ctxt, | |
| int cdata); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlChar * | |
| xmlParseExternalID (xmlParserCtxt *ctxt, | |
| xmlChar **publicId, | |
| int strict); | |
| XML_DEPRECATED | |
| XMLPUBFUN void | |
| xmlParseComment (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN const xmlChar * | |
| xmlParsePITarget (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN void | |
| xmlParsePI (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN void | |
| xmlParseNotationDecl (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN void | |
| xmlParseEntityDecl (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN int | |
| xmlParseDefaultDecl (xmlParserCtxt *ctxt, | |
| xmlChar **value); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlEnumeration * | |
| xmlParseNotationType (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlEnumeration * | |
| xmlParseEnumerationType (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN int | |
| xmlParseEnumeratedType (xmlParserCtxt *ctxt, | |
| xmlEnumeration **tree); | |
| XML_DEPRECATED | |
| XMLPUBFUN int | |
| xmlParseAttributeType (xmlParserCtxt *ctxt, | |
| xmlEnumeration **tree); | |
| XML_DEPRECATED | |
| XMLPUBFUN void | |
| xmlParseAttributeListDecl(xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlElementContent * | |
| xmlParseElementMixedContentDecl | |
| (xmlParserCtxt *ctxt, | |
| int inputchk); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlElementContent * | |
| xmlParseElementChildrenContentDecl | |
| (xmlParserCtxt *ctxt, | |
| int inputchk); | |
| XML_DEPRECATED | |
| XMLPUBFUN int | |
| xmlParseElementContentDecl(xmlParserCtxt *ctxt, | |
| const xmlChar *name, | |
| xmlElementContent **result); | |
| XML_DEPRECATED | |
| XMLPUBFUN int | |
| xmlParseElementDecl (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN void | |
| xmlParseMarkupDecl (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN int | |
| xmlParseCharRef (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlEntity * | |
| xmlParseEntityRef (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN void | |
| xmlParseReference (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN void | |
| xmlParsePEReference (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN void | |
| xmlParseDocTypeDecl (xmlParserCtxt *ctxt); | |
| #ifdef LIBXML_SAX1_ENABLED | |
| XML_DEPRECATED | |
| XMLPUBFUN const xmlChar * | |
| xmlParseAttribute (xmlParserCtxt *ctxt, | |
| xmlChar **value); | |
| XML_DEPRECATED | |
| XMLPUBFUN const xmlChar * | |
| xmlParseStartTag (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN void | |
| xmlParseEndTag (xmlParserCtxt *ctxt); | |
| #endif /* LIBXML_SAX1_ENABLED */ | |
| XML_DEPRECATED | |
| XMLPUBFUN void | |
| xmlParseCDSect (xmlParserCtxt *ctxt); | |
| XMLPUBFUN void | |
| xmlParseContent (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN void | |
| xmlParseElement (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlChar * | |
| xmlParseVersionNum (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlChar * | |
| xmlParseVersionInfo (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlChar * | |
| xmlParseEncName (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN const xmlChar * | |
| xmlParseEncodingDecl (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN int | |
| xmlParseSDDecl (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN void | |
| xmlParseXMLDecl (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN void | |
| xmlParseTextDecl (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN void | |
| xmlParseMisc (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN void | |
| xmlParseExternalSubset (xmlParserCtxt *ctxt, | |
| const xmlChar *publicId, | |
| const xmlChar *systemId); | |
| /** @cond ignore */ | |
| #define XML_SUBSTITUTE_NONE 0 | |
| #define XML_SUBSTITUTE_REF 1 | |
| #define XML_SUBSTITUTE_PEREF 2 | |
| #define XML_SUBSTITUTE_BOTH 3 | |
| /** @endcond */ | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlChar * | |
| xmlStringDecodeEntities (xmlParserCtxt *ctxt, | |
| const xmlChar *str, | |
| int what, | |
| xmlChar end, | |
| xmlChar end2, | |
| xmlChar end3); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlChar * | |
| xmlStringLenDecodeEntities (xmlParserCtxt *ctxt, | |
| const xmlChar *str, | |
| int len, | |
| int what, | |
| xmlChar end, | |
| xmlChar end2, | |
| xmlChar end3); | |
| /* | |
| * other commodities shared between parser.c and parserInternals. | |
| */ | |
| XML_DEPRECATED | |
| XMLPUBFUN int xmlSkipBlankChars (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN int xmlStringCurrentChar (xmlParserCtxt *ctxt, | |
| const xmlChar *cur, | |
| int *len); | |
| XML_DEPRECATED | |
| XMLPUBFUN void xmlParserHandlePEReference(xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN int xmlCheckLanguageID (const xmlChar *lang); | |
| /* | |
| * Really core function shared with HTML parser. | |
| */ | |
| XML_DEPRECATED | |
| XMLPUBFUN int xmlCurrentChar (xmlParserCtxt *ctxt, | |
| int *len); | |
| XML_DEPRECATED | |
| XMLPUBFUN int xmlCopyCharMultiByte (xmlChar *out, | |
| int val); | |
| XML_DEPRECATED | |
| XMLPUBFUN int xmlCopyChar (int len, | |
| xmlChar *out, | |
| int val); | |
| XML_DEPRECATED | |
| XMLPUBFUN void xmlNextChar (xmlParserCtxt *ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN void xmlParserInputShrink (xmlParserInput *in); | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| #endif /* __XML_PARSER_INTERNALS_H__ */ |