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