Annotation of embedaddon/libxml2/include/libxml/parserInternals.h, revision 1.1.1.2

1.1       misho       1: /*
1.1.1.2 ! misho       2:  * Summary: internals routines and limits exported by the parser.
1.1       misho       3:  * Description: this module exports a number of internal parsing routines
                      4:  *              they are not really all intended for applications but
                      5:  *              can prove useful doing low level processing.
                      6:  *
                      7:  * Copy: See Copyright for the status of this software.
                      8:  *
                      9:  * Author: Daniel Veillard
                     10:  */
                     11: 
                     12: #ifndef __XML_PARSER_INTERNALS_H__
                     13: #define __XML_PARSER_INTERNALS_H__
                     14: 
                     15: #include <libxml/xmlversion.h>
                     16: #include <libxml/parser.h>
                     17: #include <libxml/HTMLparser.h>
                     18: #include <libxml/chvalid.h>
                     19: 
                     20: #ifdef __cplusplus
                     21: extern "C" {
                     22: #endif
                     23: 
                     24: /**
                     25:  * xmlParserMaxDepth:
                     26:  *
                     27:  * arbitrary depth limit for the XML documents that we allow to
                     28:  * process. This is not a limitation of the parser but a safety
                     29:  * boundary feature, use XML_PARSE_HUGE option to override it.
                     30:  */
                     31: XMLPUBVAR unsigned int xmlParserMaxDepth;
                     32: 
                     33: /**
                     34:  * XML_MAX_TEXT_LENGTH:
                     35:  *
                     36:  * Maximum size allowed for a single text node when building a tree.
                     37:  * This is not a limitation of the parser but a safety boundary feature,
                     38:  * use XML_PARSE_HUGE option to override it.
1.1.1.2 ! misho      39:  * Introduced in 2.9.0
1.1       misho      40:  */
                     41: #define XML_MAX_TEXT_LENGTH 10000000
                     42: 
                     43: /**
1.1.1.2 ! misho      44:  * XML_MAX_NAME_LENGTH:
        !            45:  *
        !            46:  * Maximum size allowed for a markup identitier
        !            47:  * This is not a limitation of the parser but a safety boundary feature,
        !            48:  * use XML_PARSE_HUGE option to override it.
        !            49:  * Note that with the use of parsing dictionaries overriding the limit
        !            50:  * may result in more runtime memory usage in face of "unfriendly' content
        !            51:  * Introduced in 2.9.0
        !            52:  */
        !            53: #define XML_MAX_NAME_LENGTH 50000
        !            54: 
        !            55: /**
        !            56:  * XML_MAX_DICTIONARY_LIMIT:
        !            57:  *
        !            58:  * Maximum size allowed by the parser for a dictionary by default
        !            59:  * This is not a limitation of the parser but a safety boundary feature,
        !            60:  * use XML_PARSE_HUGE option to override it.
        !            61:  * Introduced in 2.9.0
        !            62:  */
        !            63: #define XML_MAX_DICTIONARY_LIMIT 10000000
        !            64: 
        !            65: /**
        !            66:  * XML_MAX_LOOKUP_LIMIT:
        !            67:  *
        !            68:  * Maximum size allowed by the parser for ahead lookup
        !            69:  * This is an upper boundary enforced by the parser to avoid bad
        !            70:  * behaviour on "unfriendly' content
        !            71:  * Introduced in 2.9.0
        !            72:  */
        !            73: #define XML_MAX_LOOKUP_LIMIT 10000000
        !            74: 
        !            75: /**
1.1       misho      76:  * XML_MAX_NAMELEN:
                     77:  *
                     78:  * Identifiers can be longer, but this will be more costly
                     79:  * at runtime.
                     80:  */
                     81: #define XML_MAX_NAMELEN 100
                     82: 
                     83: /**
                     84:  * INPUT_CHUNK:
                     85:  *
                     86:  * The parser tries to always have that amount of input ready.
                     87:  * One of the point is providing context when reporting errors.
                     88:  */
                     89: #define INPUT_CHUNK    250
                     90: 
                     91: /************************************************************************
                     92:  *                                                                     *
1.1.1.2 ! misho      93:  * UNICODE version of the macros.                                      *
1.1       misho      94:  *                                                                     *
                     95:  ************************************************************************/
                     96: /**
                     97:  * IS_BYTE_CHAR:
                     98:  * @c:  an byte value (int)
                     99:  *
                    100:  * Macro to check the following production in the XML spec:
                    101:  *
                    102:  * [2] Char ::= #x9 | #xA | #xD | [#x20...]
                    103:  * any byte character in the accepted range
                    104:  */
                    105: #define IS_BYTE_CHAR(c)         xmlIsChar_ch(c)
                    106: 
                    107: /**
                    108:  * IS_CHAR:
                    109:  * @c:  an UNICODE value (int)
                    110:  *
                    111:  * Macro to check the following production in the XML spec:
                    112:  *
                    113:  * [2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD]
                    114:  *                  | [#x10000-#x10FFFF]
                    115:  * any Unicode character, excluding the surrogate blocks, FFFE, and FFFF.
                    116:  */
                    117: #define IS_CHAR(c)   xmlIsCharQ(c)
                    118: 
                    119: /**
                    120:  * IS_CHAR_CH:
                    121:  * @c: an xmlChar (usually an unsigned char)
                    122:  *
                    123:  * Behaves like IS_CHAR on single-byte value
                    124:  */
                    125: #define IS_CHAR_CH(c)  xmlIsChar_ch(c)
                    126: 
                    127: /**
                    128:  * IS_BLANK:
                    129:  * @c:  an UNICODE value (int)
                    130:  *
                    131:  * Macro to check the following production in the XML spec:
                    132:  *
                    133:  * [3] S ::= (#x20 | #x9 | #xD | #xA)+
                    134:  */
                    135: #define IS_BLANK(c)  xmlIsBlankQ(c)
                    136: 
                    137: /**
                    138:  * IS_BLANK_CH:
                    139:  * @c:  an xmlChar value (normally unsigned char)
                    140:  *
                    141:  * Behaviour same as IS_BLANK
                    142:  */
                    143: #define IS_BLANK_CH(c)  xmlIsBlank_ch(c)
                    144: 
                    145: /**
                    146:  * IS_BASECHAR:
                    147:  * @c:  an UNICODE value (int)
                    148:  *
                    149:  * Macro to check the following production in the XML spec:
                    150:  *
                    151:  * [85] BaseChar ::= ... long list see REC ...
                    152:  */
                    153: #define IS_BASECHAR(c) xmlIsBaseCharQ(c)
                    154: 
                    155: /**
                    156:  * IS_DIGIT:
                    157:  * @c:  an UNICODE value (int)
                    158:  *
                    159:  * Macro to check the following production in the XML spec:
                    160:  *
                    161:  * [88] Digit ::= ... long list see REC ...
                    162:  */
                    163: #define IS_DIGIT(c) xmlIsDigitQ(c)
                    164: 
                    165: /**
                    166:  * IS_DIGIT_CH:
                    167:  * @c:  an xmlChar value (usually an unsigned char)
                    168:  *
                    169:  * Behaves like IS_DIGIT but with a single byte argument
                    170:  */
                    171: #define IS_DIGIT_CH(c)  xmlIsDigit_ch(c)
                    172: 
                    173: /**
                    174:  * IS_COMBINING:
                    175:  * @c:  an UNICODE value (int)
                    176:  *
                    177:  * Macro to check the following production in the XML spec:
                    178:  *
                    179:  * [87] CombiningChar ::= ... long list see REC ...
                    180:  */
                    181: #define IS_COMBINING(c) xmlIsCombiningQ(c)
                    182: 
                    183: /**
                    184:  * IS_COMBINING_CH:
                    185:  * @c:  an xmlChar (usually an unsigned char)
                    186:  *
                    187:  * Always false (all combining chars > 0xff)
                    188:  */
1.1.1.2 ! misho     189: #define IS_COMBINING_CH(c) 0
1.1       misho     190: 
                    191: /**
                    192:  * IS_EXTENDER:
                    193:  * @c:  an UNICODE value (int)
                    194:  *
                    195:  * Macro to check the following production in the XML spec:
                    196:  *
                    197:  *
                    198:  * [89] Extender ::= #x00B7 | #x02D0 | #x02D1 | #x0387 | #x0640 |
                    199:  *                   #x0E46 | #x0EC6 | #x3005 | [#x3031-#x3035] |
                    200:  *                   [#x309D-#x309E] | [#x30FC-#x30FE]
                    201:  */
                    202: #define IS_EXTENDER(c) xmlIsExtenderQ(c)
                    203: 
                    204: /**
                    205:  * IS_EXTENDER_CH:
                    206:  * @c:  an xmlChar value (usually an unsigned char)
                    207:  *
                    208:  * Behaves like IS_EXTENDER but with a single-byte argument
                    209:  */
                    210: #define IS_EXTENDER_CH(c)  xmlIsExtender_ch(c)
                    211: 
                    212: /**
                    213:  * IS_IDEOGRAPHIC:
                    214:  * @c:  an UNICODE value (int)
                    215:  *
                    216:  * Macro to check the following production in the XML spec:
                    217:  *
                    218:  *
                    219:  * [86] Ideographic ::= [#x4E00-#x9FA5] | #x3007 | [#x3021-#x3029]
                    220:  */
                    221: #define IS_IDEOGRAPHIC(c) xmlIsIdeographicQ(c)
                    222: 
                    223: /**
                    224:  * IS_LETTER:
                    225:  * @c:  an UNICODE value (int)
                    226:  *
                    227:  * Macro to check the following production in the XML spec:
                    228:  *
                    229:  *
1.1.1.2 ! misho     230:  * [84] Letter ::= BaseChar | Ideographic
1.1       misho     231:  */
                    232: #define IS_LETTER(c) (IS_BASECHAR(c) || IS_IDEOGRAPHIC(c))
                    233: 
                    234: /**
                    235:  * IS_LETTER_CH:
                    236:  * @c:  an xmlChar value (normally unsigned char)
                    237:  *
                    238:  * Macro behaves like IS_LETTER, but only check base chars
                    239:  *
                    240:  */
                    241: #define IS_LETTER_CH(c) xmlIsBaseChar_ch(c)
                    242: 
                    243: /**
                    244:  * IS_ASCII_LETTER:
                    245:  * @c: an xmlChar value
                    246:  *
                    247:  * Macro to check [a-zA-Z]
                    248:  *
                    249:  */
                    250: #define IS_ASCII_LETTER(c)     (((0x41 <= (c)) && ((c) <= 0x5a)) || \
                    251:                                 ((0x61 <= (c)) && ((c) <= 0x7a)))
                    252: 
                    253: /**
                    254:  * IS_ASCII_DIGIT:
                    255:  * @c: an xmlChar value
                    256:  *
                    257:  * Macro to check [0-9]
                    258:  *
                    259:  */
                    260: #define IS_ASCII_DIGIT(c)      ((0x30 <= (c)) && ((c) <= 0x39))
                    261: 
                    262: /**
                    263:  * IS_PUBIDCHAR:
                    264:  * @c:  an UNICODE value (int)
                    265:  *
                    266:  * Macro to check the following production in the XML spec:
                    267:  *
                    268:  *
                    269:  * [13] PubidChar ::= #x20 | #xD | #xA | [a-zA-Z0-9] | [-'()+,./:=?;!*#@$_%]
                    270:  */
                    271: #define IS_PUBIDCHAR(c)        xmlIsPubidCharQ(c)
                    272: 
                    273: /**
                    274:  * IS_PUBIDCHAR_CH:
                    275:  * @c:  an xmlChar value (normally unsigned char)
                    276:  *
                    277:  * Same as IS_PUBIDCHAR but for single-byte value
                    278:  */
                    279: #define IS_PUBIDCHAR_CH(c) xmlIsPubidChar_ch(c)
                    280: 
                    281: /**
                    282:  * SKIP_EOL:
                    283:  * @p:  and UTF8 string pointer
                    284:  *
                    285:  * Skips the end of line chars.
                    286:  */
1.1.1.2 ! misho     287: #define SKIP_EOL(p)                                                    \
1.1       misho     288:     if (*(p) == 0x13) { p++ ; if (*(p) == 0x10) p++; }                 \
                    289:     if (*(p) == 0x10) { p++ ; if (*(p) == 0x13) p++; }
                    290: 
                    291: /**
                    292:  * MOVETO_ENDTAG:
                    293:  * @p:  and UTF8 string pointer
                    294:  *
                    295:  * Skips to the next '>' char.
                    296:  */
                    297: #define MOVETO_ENDTAG(p)                                               \
                    298:     while ((*p) && (*(p) != '>')) (p)++
                    299: 
                    300: /**
                    301:  * MOVETO_STARTTAG:
                    302:  * @p:  and UTF8 string pointer
                    303:  *
                    304:  * Skips to the next '<' char.
                    305:  */
                    306: #define MOVETO_STARTTAG(p)                                             \
                    307:     while ((*p) && (*(p) != '<')) (p)++
                    308: 
                    309: /**
                    310:  * Global variables used for predefined strings.
                    311:  */
                    312: XMLPUBVAR const xmlChar xmlStringText[];
                    313: XMLPUBVAR const xmlChar xmlStringTextNoenc[];
                    314: XMLPUBVAR const xmlChar xmlStringComment[];
                    315: 
                    316: /*
                    317:  * Function to finish the work of the macros where needed.
                    318:  */
                    319: XMLPUBFUN int XMLCALL                   xmlIsLetter     (int c);
                    320: 
                    321: /**
                    322:  * Parser context.
                    323:  */
1.1.1.2 ! misho     324: XMLPUBFUN xmlParserCtxtPtr XMLCALL
1.1       misho     325:                        xmlCreateFileParserCtxt (const char *filename);
1.1.1.2 ! misho     326: XMLPUBFUN xmlParserCtxtPtr XMLCALL
1.1       misho     327:                        xmlCreateURLParserCtxt  (const char *filename,
                    328:                                                 int options);
1.1.1.2 ! misho     329: XMLPUBFUN xmlParserCtxtPtr XMLCALL
1.1       misho     330:                        xmlCreateMemoryParserCtxt(const char *buffer,
                    331:                                                 int size);
1.1.1.2 ! misho     332: XMLPUBFUN xmlParserCtxtPtr XMLCALL
1.1       misho     333:                        xmlCreateEntityParserCtxt(const xmlChar *URL,
                    334:                                                 const xmlChar *ID,
                    335:                                                 const xmlChar *base);
1.1.1.2 ! misho     336: XMLPUBFUN int XMLCALL
1.1       misho     337:                        xmlSwitchEncoding       (xmlParserCtxtPtr ctxt,
                    338:                                                 xmlCharEncoding enc);
1.1.1.2 ! misho     339: XMLPUBFUN int XMLCALL
1.1       misho     340:                        xmlSwitchToEncoding     (xmlParserCtxtPtr ctxt,
                    341:                                         xmlCharEncodingHandlerPtr handler);
1.1.1.2 ! misho     342: XMLPUBFUN int XMLCALL
1.1       misho     343:                        xmlSwitchInputEncoding  (xmlParserCtxtPtr ctxt,
                    344:                                                 xmlParserInputPtr input,
                    345:                                         xmlCharEncodingHandlerPtr handler);
                    346: 
                    347: #ifdef IN_LIBXML
                    348: /* internal error reporting */
                    349: XMLPUBFUN void XMLCALL
                    350:                        __xmlErrEncoding        (xmlParserCtxtPtr ctxt,
                    351:                                                 xmlParserErrors xmlerr,
                    352:                                                 const char *msg,
                    353:                                                 const xmlChar * str1,
                    354:                                                 const xmlChar * str2);
                    355: #endif
                    356: 
                    357: /**
                    358:  * Input Streams.
                    359:  */
1.1.1.2 ! misho     360: XMLPUBFUN xmlParserInputPtr XMLCALL
1.1       misho     361:                        xmlNewStringInputStream (xmlParserCtxtPtr ctxt,
                    362:                                                 const xmlChar *buffer);
1.1.1.2 ! misho     363: XMLPUBFUN xmlParserInputPtr XMLCALL
1.1       misho     364:                        xmlNewEntityInputStream (xmlParserCtxtPtr ctxt,
                    365:                                                 xmlEntityPtr entity);
1.1.1.2 ! misho     366: XMLPUBFUN int XMLCALL
1.1       misho     367:                        xmlPushInput            (xmlParserCtxtPtr ctxt,
                    368:                                                 xmlParserInputPtr input);
1.1.1.2 ! misho     369: XMLPUBFUN xmlChar XMLCALL
1.1       misho     370:                        xmlPopInput             (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     371: XMLPUBFUN void XMLCALL
1.1       misho     372:                        xmlFreeInputStream      (xmlParserInputPtr input);
1.1.1.2 ! misho     373: XMLPUBFUN xmlParserInputPtr XMLCALL
1.1       misho     374:                        xmlNewInputFromFile     (xmlParserCtxtPtr ctxt,
                    375:                                                 const char *filename);
1.1.1.2 ! misho     376: XMLPUBFUN xmlParserInputPtr XMLCALL
1.1       misho     377:                        xmlNewInputStream       (xmlParserCtxtPtr ctxt);
                    378: 
                    379: /**
                    380:  * Namespaces.
                    381:  */
1.1.1.2 ! misho     382: XMLPUBFUN xmlChar * XMLCALL
1.1       misho     383:                        xmlSplitQName           (xmlParserCtxtPtr ctxt,
                    384:                                                 const xmlChar *name,
                    385:                                                 xmlChar **prefix);
                    386: 
                    387: /**
                    388:  * Generic production rules.
                    389:  */
1.1.1.2 ! misho     390: XMLPUBFUN const xmlChar * XMLCALL
1.1       misho     391:                        xmlParseName            (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     392: XMLPUBFUN xmlChar * XMLCALL
1.1       misho     393:                        xmlParseNmtoken         (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     394: XMLPUBFUN xmlChar * XMLCALL
1.1       misho     395:                        xmlParseEntityValue     (xmlParserCtxtPtr ctxt,
                    396:                                                 xmlChar **orig);
1.1.1.2 ! misho     397: XMLPUBFUN xmlChar * XMLCALL
1.1       misho     398:                        xmlParseAttValue        (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     399: XMLPUBFUN xmlChar * XMLCALL
1.1       misho     400:                        xmlParseSystemLiteral   (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     401: XMLPUBFUN xmlChar * XMLCALL
1.1       misho     402:                        xmlParsePubidLiteral    (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     403: XMLPUBFUN void XMLCALL
1.1       misho     404:                        xmlParseCharData        (xmlParserCtxtPtr ctxt,
                    405:                                                 int cdata);
1.1.1.2 ! misho     406: XMLPUBFUN xmlChar * XMLCALL
1.1       misho     407:                        xmlParseExternalID      (xmlParserCtxtPtr ctxt,
                    408:                                                 xmlChar **publicID,
                    409:                                                 int strict);
1.1.1.2 ! misho     410: XMLPUBFUN void XMLCALL
1.1       misho     411:                        xmlParseComment         (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     412: XMLPUBFUN const xmlChar * XMLCALL
1.1       misho     413:                        xmlParsePITarget        (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     414: XMLPUBFUN void XMLCALL
1.1       misho     415:                        xmlParsePI              (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     416: XMLPUBFUN void XMLCALL
1.1       misho     417:                        xmlParseNotationDecl    (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     418: XMLPUBFUN void XMLCALL
1.1       misho     419:                        xmlParseEntityDecl      (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     420: XMLPUBFUN int XMLCALL
1.1       misho     421:                        xmlParseDefaultDecl     (xmlParserCtxtPtr ctxt,
                    422:                                                 xmlChar **value);
1.1.1.2 ! misho     423: XMLPUBFUN xmlEnumerationPtr XMLCALL
1.1       misho     424:                        xmlParseNotationType    (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     425: XMLPUBFUN xmlEnumerationPtr XMLCALL
1.1       misho     426:                        xmlParseEnumerationType (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     427: XMLPUBFUN int XMLCALL
1.1       misho     428:                        xmlParseEnumeratedType  (xmlParserCtxtPtr ctxt,
                    429:                                                 xmlEnumerationPtr *tree);
1.1.1.2 ! misho     430: XMLPUBFUN int XMLCALL
1.1       misho     431:                        xmlParseAttributeType   (xmlParserCtxtPtr ctxt,
                    432:                                                 xmlEnumerationPtr *tree);
1.1.1.2 ! misho     433: XMLPUBFUN void XMLCALL
1.1       misho     434:                        xmlParseAttributeListDecl(xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     435: XMLPUBFUN xmlElementContentPtr XMLCALL
1.1       misho     436:                        xmlParseElementMixedContentDecl
                    437:                                                (xmlParserCtxtPtr ctxt,
                    438:                                                 int inputchk);
1.1.1.2 ! misho     439: XMLPUBFUN xmlElementContentPtr XMLCALL
1.1       misho     440:                        xmlParseElementChildrenContentDecl
                    441:                                                (xmlParserCtxtPtr ctxt,
                    442:                                                 int inputchk);
1.1.1.2 ! misho     443: XMLPUBFUN int XMLCALL
1.1       misho     444:                        xmlParseElementContentDecl(xmlParserCtxtPtr ctxt,
                    445:                                                 const xmlChar *name,
                    446:                                                 xmlElementContentPtr *result);
1.1.1.2 ! misho     447: XMLPUBFUN int XMLCALL
1.1       misho     448:                        xmlParseElementDecl     (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     449: XMLPUBFUN void XMLCALL
1.1       misho     450:                        xmlParseMarkupDecl      (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     451: XMLPUBFUN int XMLCALL
1.1       misho     452:                        xmlParseCharRef         (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     453: XMLPUBFUN xmlEntityPtr XMLCALL
1.1       misho     454:                        xmlParseEntityRef       (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     455: XMLPUBFUN void XMLCALL
1.1       misho     456:                        xmlParseReference       (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     457: XMLPUBFUN void XMLCALL
1.1       misho     458:                        xmlParsePEReference     (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     459: XMLPUBFUN void XMLCALL
1.1       misho     460:                        xmlParseDocTypeDecl     (xmlParserCtxtPtr ctxt);
                    461: #ifdef LIBXML_SAX1_ENABLED
1.1.1.2 ! misho     462: XMLPUBFUN const xmlChar * XMLCALL
1.1       misho     463:                        xmlParseAttribute       (xmlParserCtxtPtr ctxt,
                    464:                                                 xmlChar **value);
1.1.1.2 ! misho     465: XMLPUBFUN const xmlChar * XMLCALL
1.1       misho     466:                        xmlParseStartTag        (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     467: XMLPUBFUN void XMLCALL
1.1       misho     468:                        xmlParseEndTag          (xmlParserCtxtPtr ctxt);
                    469: #endif /* LIBXML_SAX1_ENABLED */
1.1.1.2 ! misho     470: XMLPUBFUN void XMLCALL
1.1       misho     471:                        xmlParseCDSect          (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     472: XMLPUBFUN void XMLCALL
1.1       misho     473:                        xmlParseContent         (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     474: XMLPUBFUN void XMLCALL
1.1       misho     475:                        xmlParseElement         (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     476: XMLPUBFUN xmlChar * XMLCALL
1.1       misho     477:                        xmlParseVersionNum      (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     478: XMLPUBFUN xmlChar * XMLCALL
1.1       misho     479:                        xmlParseVersionInfo     (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     480: XMLPUBFUN xmlChar * XMLCALL
1.1       misho     481:                        xmlParseEncName         (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     482: XMLPUBFUN const xmlChar * XMLCALL
1.1       misho     483:                        xmlParseEncodingDecl    (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     484: XMLPUBFUN int XMLCALL
1.1       misho     485:                        xmlParseSDDecl          (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     486: XMLPUBFUN void XMLCALL
1.1       misho     487:                        xmlParseXMLDecl         (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     488: XMLPUBFUN void XMLCALL
1.1       misho     489:                        xmlParseTextDecl        (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     490: XMLPUBFUN void XMLCALL
1.1       misho     491:                        xmlParseMisc            (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     492: XMLPUBFUN void XMLCALL
1.1       misho     493:                        xmlParseExternalSubset  (xmlParserCtxtPtr ctxt,
                    494:                                                 const xmlChar *ExternalID,
1.1.1.2 ! misho     495:                                                 const xmlChar *SystemID);
1.1       misho     496: /**
                    497:  * XML_SUBSTITUTE_NONE:
                    498:  *
                    499:  * If no entities need to be substituted.
                    500:  */
                    501: #define XML_SUBSTITUTE_NONE    0
                    502: /**
                    503:  * XML_SUBSTITUTE_REF:
                    504:  *
                    505:  * Whether general entities need to be substituted.
                    506:  */
                    507: #define XML_SUBSTITUTE_REF     1
                    508: /**
                    509:  * XML_SUBSTITUTE_PEREF:
                    510:  *
                    511:  * Whether parameter entities need to be substituted.
                    512:  */
                    513: #define XML_SUBSTITUTE_PEREF   2
                    514: /**
                    515:  * XML_SUBSTITUTE_BOTH:
                    516:  *
                    517:  * Both general and parameter entities need to be substituted.
                    518:  */
1.1.1.2 ! misho     519: #define XML_SUBSTITUTE_BOTH    3
1.1       misho     520: 
                    521: XMLPUBFUN xmlChar * XMLCALL
                    522:                xmlStringDecodeEntities         (xmlParserCtxtPtr ctxt,
                    523:                                                 const xmlChar *str,
                    524:                                                 int what,
                    525:                                                 xmlChar end,
                    526:                                                 xmlChar  end2,
                    527:                                                 xmlChar end3);
                    528: XMLPUBFUN xmlChar * XMLCALL
                    529:                xmlStringLenDecodeEntities      (xmlParserCtxtPtr ctxt,
                    530:                                                 const xmlChar *str,
                    531:                                                 int len,
                    532:                                                 int what,
                    533:                                                 xmlChar end,
                    534:                                                 xmlChar  end2,
                    535:                                                 xmlChar end3);
                    536: 
                    537: /*
                    538:  * Generated by MACROS on top of parser.c c.f. PUSH_AND_POP.
                    539:  */
                    540: XMLPUBFUN int XMLCALL                  nodePush                (xmlParserCtxtPtr ctxt,
                    541:                                                 xmlNodePtr value);
                    542: XMLPUBFUN xmlNodePtr XMLCALL           nodePop                 (xmlParserCtxtPtr ctxt);
                    543: XMLPUBFUN int XMLCALL                  inputPush               (xmlParserCtxtPtr ctxt,
                    544:                                                 xmlParserInputPtr value);
                    545: XMLPUBFUN xmlParserInputPtr XMLCALL    inputPop                (xmlParserCtxtPtr ctxt);
                    546: XMLPUBFUN const xmlChar * XMLCALL      namePop                 (xmlParserCtxtPtr ctxt);
                    547: XMLPUBFUN int XMLCALL                  namePush                (xmlParserCtxtPtr ctxt,
                    548:                                                 const xmlChar *value);
                    549: 
                    550: /*
                    551:  * other commodities shared between parser.c and parserInternals.
                    552:  */
                    553: XMLPUBFUN int XMLCALL                  xmlSkipBlankChars       (xmlParserCtxtPtr ctxt);
                    554: XMLPUBFUN int XMLCALL                  xmlStringCurrentChar    (xmlParserCtxtPtr ctxt,
                    555:                                                 const xmlChar *cur,
                    556:                                                 int *len);
                    557: XMLPUBFUN void XMLCALL                 xmlParserHandlePEReference(xmlParserCtxtPtr ctxt);
                    558: XMLPUBFUN int XMLCALL                  xmlCheckLanguageID      (const xmlChar *lang);
                    559: 
                    560: /*
                    561:  * Really core function shared with HTML parser.
                    562:  */
                    563: XMLPUBFUN int XMLCALL                  xmlCurrentChar          (xmlParserCtxtPtr ctxt,
                    564:                                                 int *len);
                    565: XMLPUBFUN int XMLCALL          xmlCopyCharMultiByte    (xmlChar *out,
                    566:                                                 int val);
                    567: XMLPUBFUN int XMLCALL                  xmlCopyChar             (int len,
                    568:                                                 xmlChar *out,
                    569:                                                 int val);
                    570: XMLPUBFUN void XMLCALL                 xmlNextChar             (xmlParserCtxtPtr ctxt);
                    571: XMLPUBFUN void XMLCALL                 xmlParserInputShrink    (xmlParserInputPtr in);
                    572: 
                    573: #ifdef LIBXML_HTML_ENABLED
                    574: /*
                    575:  * Actually comes from the HTML parser but launched from the init stuff.
                    576:  */
                    577: XMLPUBFUN void XMLCALL                 htmlInitAutoClose       (void);
                    578: XMLPUBFUN htmlParserCtxtPtr XMLCALL    htmlCreateFileParserCtxt(const char *filename,
                    579:                                                 const char *encoding);
                    580: #endif
                    581: 
                    582: /*
                    583:  * Specific function to keep track of entities references
                    584:  * and used by the XSLT debugger.
                    585:  */
                    586: #ifdef LIBXML_LEGACY_ENABLED
                    587: /**
                    588:  * xmlEntityReferenceFunc:
                    589:  * @ent: the entity
                    590:  * @firstNode:  the fist node in the chunk
                    591:  * @lastNode:  the last nod in the chunk
                    592:  *
                    593:  * Callback function used when one needs to be able to track back the
                    594:  * provenance of a chunk of nodes inherited from an entity replacement.
                    595:  */
                    596: typedef        void    (*xmlEntityReferenceFunc)       (xmlEntityPtr ent,
                    597:                                                 xmlNodePtr firstNode,
                    598:                                                 xmlNodePtr lastNode);
1.1.1.2 ! misho     599: 
1.1       misho     600: XMLPUBFUN void XMLCALL         xmlSetEntityReferenceFunc       (xmlEntityReferenceFunc func);
                    601: 
1.1.1.2 ! misho     602: XMLPUBFUN xmlChar * XMLCALL
1.1       misho     603:                        xmlParseQuotedString    (xmlParserCtxtPtr ctxt);
                    604: XMLPUBFUN void XMLCALL
                    605:                         xmlParseNamespace       (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     606: XMLPUBFUN xmlChar * XMLCALL
1.1       misho     607:                        xmlNamespaceParseNSDef  (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     608: XMLPUBFUN xmlChar * XMLCALL
1.1       misho     609:                        xmlScanName             (xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     610: XMLPUBFUN xmlChar * XMLCALL
1.1       misho     611:                        xmlNamespaceParseNCName (xmlParserCtxtPtr ctxt);
                    612: XMLPUBFUN void XMLCALL xmlParserHandleReference(xmlParserCtxtPtr ctxt);
1.1.1.2 ! misho     613: XMLPUBFUN xmlChar * XMLCALL
1.1       misho     614:                        xmlNamespaceParseQName  (xmlParserCtxtPtr ctxt,
                    615:                                                 xmlChar **prefix);
                    616: /**
                    617:  * Entities
                    618:  */
                    619: XMLPUBFUN xmlChar * XMLCALL
                    620:                xmlDecodeEntities               (xmlParserCtxtPtr ctxt,
                    621:                                                 int len,
                    622:                                                 int what,
                    623:                                                 xmlChar end,
                    624:                                                 xmlChar  end2,
                    625:                                                 xmlChar end3);
1.1.1.2 ! misho     626: XMLPUBFUN void XMLCALL
1.1       misho     627:                        xmlHandleEntity         (xmlParserCtxtPtr ctxt,
                    628:                                                 xmlEntityPtr entity);
                    629: 
                    630: #endif /* LIBXML_LEGACY_ENABLED */
                    631: 
                    632: #ifdef IN_LIBXML
                    633: /*
                    634:  * internal only
                    635:  */
                    636: XMLPUBFUN void XMLCALL
                    637:        xmlErrMemory            (xmlParserCtxtPtr ctxt,
                    638:                                 const char *extra);
                    639: #endif
                    640: 
                    641: #ifdef __cplusplus
                    642: }
                    643: #endif
                    644: #endif /* __XML_PARSER_INTERNALS_H__ */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>