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