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