00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef __XML_PARSER_INTERNALS_H__
00013 #define __XML_PARSER_INTERNALS_H__
00014
00015 #include <libxml/xmlversion.h>
00016 #include <libxml/parser.h>
00017 #include <libxml/HTMLparser.h>
00018 #include <libxml/chvalid.h>
00019
00020 #ifdef __cplusplus
00021 extern "C" {
00022 #endif
00023
00031 XMLPUBVAR unsigned int xmlParserMaxDepth;
00032
00039 #define XML_MAX_NAMELEN 100
00040
00047 #define INPUT_CHUNK 250
00048
00049
00050
00051
00052
00053
00063 #define IS_BYTE_CHAR(c) xmlIsChar_ch(c)
00064
00075 #define IS_CHAR(c) xmlIsCharQ(c)
00076
00083 #define IS_CHAR_CH(c) xmlIsChar_ch(c)
00084
00093 #define IS_BLANK(c) xmlIsBlankQ(c)
00094
00101 #define IS_BLANK_CH(c) xmlIsBlank_ch(c)
00102
00111 #define IS_BASECHAR(c) xmlIsBaseCharQ(c)
00112
00121 #define IS_DIGIT(c) xmlIsDigitQ(c)
00122
00129 #define IS_DIGIT_CH(c) xmlIsDigit_ch(c)
00130
00139 #define IS_COMBINING(c) xmlIsCombiningQ(c)
00140
00147 #define IS_COMBINING_CH(c) 0
00148
00160 #define IS_EXTENDER(c) xmlIsExtenderQ(c)
00161
00168 #define IS_EXTENDER_CH(c) xmlIsExtender_ch(c)
00169
00179 #define IS_IDEOGRAPHIC(c) xmlIsIdeographicQ(c)
00180
00190 #define IS_LETTER(c) (IS_BASECHAR(c) || IS_IDEOGRAPHIC(c))
00191
00199 #define IS_LETTER_CH(c) xmlIsBaseChar_ch(c)
00200
00208 #define IS_ASCII_LETTER(c) (((0x41 <= (c)) && ((c) <= 0x5a)) || \
00209 ((0x61 <= (c)) && ((c) <= 0x7a)))
00210
00218 #define IS_ASCII_DIGIT(c) ((0x30 <= (c)) && ((c) <= 0x39))
00219
00229 #define IS_PUBIDCHAR(c) xmlIsPubidCharQ(c)
00230
00237 #define IS_PUBIDCHAR_CH(c) xmlIsPubidChar_ch(c)
00238
00245 #define SKIP_EOL(p) \
00246 if (*(p) == 0x13) { p++ ; if (*(p) == 0x10) p++; } \
00247 if (*(p) == 0x10) { p++ ; if (*(p) == 0x13) p++; }
00248
00255 #define MOVETO_ENDTAG(p) \
00256 while ((*p) && (*(p) != '>')) (p)++
00257
00264 #define MOVETO_STARTTAG(p) \
00265 while ((*p) && (*(p) != '<')) (p)++
00266
00270 XMLPUBVAR const xmlChar xmlStringText[];
00271 XMLPUBVAR const xmlChar xmlStringTextNoenc[];
00272 XMLPUBVAR const xmlChar xmlStringComment[];
00273
00274
00275
00276
00277 XMLPUBFUN int XMLCALL xmlIsLetter (int c);
00278
00282 XMLPUBFUN xmlParserCtxtPtr XMLCALL
00283 xmlCreateFileParserCtxt (const char *filename);
00284 XMLPUBFUN xmlParserCtxtPtr XMLCALL
00285 xmlCreateURLParserCtxt (const char *filename,
00286 int options);
00287 XMLPUBFUN xmlParserCtxtPtr XMLCALL
00288 xmlCreateMemoryParserCtxt(const char *buffer,
00289 int size);
00290 XMLPUBFUN xmlParserCtxtPtr XMLCALL
00291 xmlCreateEntityParserCtxt(const xmlChar *URL,
00292 const xmlChar *ID,
00293 const xmlChar *base);
00294 XMLPUBFUN int XMLCALL
00295 xmlSwitchEncoding (xmlParserCtxtPtr ctxt,
00296 xmlCharEncoding enc);
00297 XMLPUBFUN int XMLCALL
00298 xmlSwitchToEncoding (xmlParserCtxtPtr ctxt,
00299 xmlCharEncodingHandlerPtr handler);
00300 XMLPUBFUN int XMLCALL
00301 xmlSwitchInputEncoding (xmlParserCtxtPtr ctxt,
00302 xmlParserInputPtr input,
00303 xmlCharEncodingHandlerPtr handler);
00304
00305 #ifdef IN_LIBXML
00306
00307 XMLPUBFUN void XMLCALL
00308 __xmlErrEncoding (xmlParserCtxtPtr ctxt,
00309 xmlParserErrors xmlerr,
00310 const char *msg,
00311 const xmlChar * str1,
00312 const xmlChar * str2);
00313 #endif
00314
00318 XMLPUBFUN xmlParserInputPtr XMLCALL
00319 xmlNewStringInputStream (xmlParserCtxtPtr ctxt,
00320 const xmlChar *buffer);
00321 XMLPUBFUN xmlParserInputPtr XMLCALL
00322 xmlNewEntityInputStream (xmlParserCtxtPtr ctxt,
00323 xmlEntityPtr entity);
00324 XMLPUBFUN void XMLCALL
00325 xmlPushInput (xmlParserCtxtPtr ctxt,
00326 xmlParserInputPtr input);
00327 XMLPUBFUN xmlChar XMLCALL
00328 xmlPopInput (xmlParserCtxtPtr ctxt);
00329 XMLPUBFUN void XMLCALL
00330 xmlFreeInputStream (xmlParserInputPtr input);
00331 XMLPUBFUN xmlParserInputPtr XMLCALL
00332 xmlNewInputFromFile (xmlParserCtxtPtr ctxt,
00333 const char *filename);
00334 XMLPUBFUN xmlParserInputPtr XMLCALL
00335 xmlNewInputStream (xmlParserCtxtPtr ctxt);
00336
00340 XMLPUBFUN xmlChar * XMLCALL
00341 xmlSplitQName (xmlParserCtxtPtr ctxt,
00342 const xmlChar *name,
00343 xmlChar **prefix);
00344
00348 XMLPUBFUN const xmlChar * XMLCALL
00349 xmlParseName (xmlParserCtxtPtr ctxt);
00350 XMLPUBFUN xmlChar * XMLCALL
00351 xmlParseNmtoken (xmlParserCtxtPtr ctxt);
00352 XMLPUBFUN xmlChar * XMLCALL
00353 xmlParseEntityValue (xmlParserCtxtPtr ctxt,
00354 xmlChar **orig);
00355 XMLPUBFUN xmlChar * XMLCALL
00356 xmlParseAttValue (xmlParserCtxtPtr ctxt);
00357 XMLPUBFUN xmlChar * XMLCALL
00358 xmlParseSystemLiteral (xmlParserCtxtPtr ctxt);
00359 XMLPUBFUN xmlChar * XMLCALL
00360 xmlParsePubidLiteral (xmlParserCtxtPtr ctxt);
00361 XMLPUBFUN void XMLCALL
00362 xmlParseCharData (xmlParserCtxtPtr ctxt,
00363 int cdata);
00364 XMLPUBFUN xmlChar * XMLCALL
00365 xmlParseExternalID (xmlParserCtxtPtr ctxt,
00366 xmlChar **publicID,
00367 int strict);
00368 XMLPUBFUN void XMLCALL
00369 xmlParseComment (xmlParserCtxtPtr ctxt);
00370 XMLPUBFUN const xmlChar * XMLCALL
00371 xmlParsePITarget (xmlParserCtxtPtr ctxt);
00372 XMLPUBFUN void XMLCALL
00373 xmlParsePI (xmlParserCtxtPtr ctxt);
00374 XMLPUBFUN void XMLCALL
00375 xmlParseNotationDecl (xmlParserCtxtPtr ctxt);
00376 XMLPUBFUN void XMLCALL
00377 xmlParseEntityDecl (xmlParserCtxtPtr ctxt);
00378 XMLPUBFUN int XMLCALL
00379 xmlParseDefaultDecl (xmlParserCtxtPtr ctxt,
00380 xmlChar **value);
00381 XMLPUBFUN xmlEnumerationPtr XMLCALL
00382 xmlParseNotationType (xmlParserCtxtPtr ctxt);
00383 XMLPUBFUN xmlEnumerationPtr XMLCALL
00384 xmlParseEnumerationType (xmlParserCtxtPtr ctxt);
00385 XMLPUBFUN int XMLCALL
00386 xmlParseEnumeratedType (xmlParserCtxtPtr ctxt,
00387 xmlEnumerationPtr *tree);
00388 XMLPUBFUN int XMLCALL
00389 xmlParseAttributeType (xmlParserCtxtPtr ctxt,
00390 xmlEnumerationPtr *tree);
00391 XMLPUBFUN void XMLCALL
00392 xmlParseAttributeListDecl(xmlParserCtxtPtr ctxt);
00393 XMLPUBFUN xmlElementContentPtr XMLCALL
00394 xmlParseElementMixedContentDecl
00395 (xmlParserCtxtPtr ctxt,
00396 int inputchk);
00397 XMLPUBFUN xmlElementContentPtr XMLCALL
00398 xmlParseElementChildrenContentDecl
00399 (xmlParserCtxtPtr ctxt,
00400 int inputchk);
00401 XMLPUBFUN int XMLCALL
00402 xmlParseElementContentDecl(xmlParserCtxtPtr ctxt,
00403 const xmlChar *name,
00404 xmlElementContentPtr *result);
00405 XMLPUBFUN int XMLCALL
00406 xmlParseElementDecl (xmlParserCtxtPtr ctxt);
00407 XMLPUBFUN void XMLCALL
00408 xmlParseMarkupDecl (xmlParserCtxtPtr ctxt);
00409 XMLPUBFUN int XMLCALL
00410 xmlParseCharRef (xmlParserCtxtPtr ctxt);
00411 XMLPUBFUN xmlEntityPtr XMLCALL
00412 xmlParseEntityRef (xmlParserCtxtPtr ctxt);
00413 XMLPUBFUN void XMLCALL
00414 xmlParseReference (xmlParserCtxtPtr ctxt);
00415 XMLPUBFUN void XMLCALL
00416 xmlParsePEReference (xmlParserCtxtPtr ctxt);
00417 XMLPUBFUN void XMLCALL
00418 xmlParseDocTypeDecl (xmlParserCtxtPtr ctxt);
00419 #ifdef LIBXML_SAX1_ENABLED
00420 XMLPUBFUN const xmlChar * XMLCALL
00421 xmlParseAttribute (xmlParserCtxtPtr ctxt,
00422 xmlChar **value);
00423 XMLPUBFUN const xmlChar * XMLCALL
00424 xmlParseStartTag (xmlParserCtxtPtr ctxt);
00425 XMLPUBFUN void XMLCALL
00426 xmlParseEndTag (xmlParserCtxtPtr ctxt);
00427 #endif
00428 XMLPUBFUN void XMLCALL
00429 xmlParseCDSect (xmlParserCtxtPtr ctxt);
00430 XMLPUBFUN void XMLCALL
00431 xmlParseContent (xmlParserCtxtPtr ctxt);
00432 XMLPUBFUN void XMLCALL
00433 xmlParseElement (xmlParserCtxtPtr ctxt);
00434 XMLPUBFUN xmlChar * XMLCALL
00435 xmlParseVersionNum (xmlParserCtxtPtr ctxt);
00436 XMLPUBFUN xmlChar * XMLCALL
00437 xmlParseVersionInfo (xmlParserCtxtPtr ctxt);
00438 XMLPUBFUN xmlChar * XMLCALL
00439 xmlParseEncName (xmlParserCtxtPtr ctxt);
00440 XMLPUBFUN const xmlChar * XMLCALL
00441 xmlParseEncodingDecl (xmlParserCtxtPtr ctxt);
00442 XMLPUBFUN int XMLCALL
00443 xmlParseSDDecl (xmlParserCtxtPtr ctxt);
00444 XMLPUBFUN void XMLCALL
00445 xmlParseXMLDecl (xmlParserCtxtPtr ctxt);
00446 XMLPUBFUN void XMLCALL
00447 xmlParseTextDecl (xmlParserCtxtPtr ctxt);
00448 XMLPUBFUN void XMLCALL
00449 xmlParseMisc (xmlParserCtxtPtr ctxt);
00450 XMLPUBFUN void XMLCALL
00451 xmlParseExternalSubset (xmlParserCtxtPtr ctxt,
00452 const xmlChar *ExternalID,
00453 const xmlChar *SystemID);
00459 #define XML_SUBSTITUTE_NONE 0
00460
00465 #define XML_SUBSTITUTE_REF 1
00466
00471 #define XML_SUBSTITUTE_PEREF 2
00472
00477 #define XML_SUBSTITUTE_BOTH 3
00478
00479 XMLPUBFUN xmlChar * XMLCALL
00480 xmlStringDecodeEntities (xmlParserCtxtPtr ctxt,
00481 const xmlChar *str,
00482 int what,
00483 xmlChar end,
00484 xmlChar end2,
00485 xmlChar end3);
00486 XMLPUBFUN xmlChar * XMLCALL
00487 xmlStringLenDecodeEntities (xmlParserCtxtPtr ctxt,
00488 const xmlChar *str,
00489 int len,
00490 int what,
00491 xmlChar end,
00492 xmlChar end2,
00493 xmlChar end3);
00494
00495
00496
00497
00498 XMLPUBFUN int XMLCALL nodePush (xmlParserCtxtPtr ctxt,
00499 xmlNodePtr value);
00500 XMLPUBFUN xmlNodePtr XMLCALL nodePop (xmlParserCtxtPtr ctxt);
00501 XMLPUBFUN int XMLCALL inputPush (xmlParserCtxtPtr ctxt,
00502 xmlParserInputPtr value);
00503 XMLPUBFUN xmlParserInputPtr XMLCALL inputPop (xmlParserCtxtPtr ctxt);
00504 XMLPUBFUN const xmlChar * XMLCALL namePop (xmlParserCtxtPtr ctxt);
00505 XMLPUBFUN int XMLCALL namePush (xmlParserCtxtPtr ctxt,
00506 const xmlChar *value);
00507
00508
00509
00510
00511 XMLPUBFUN int XMLCALL xmlSkipBlankChars (xmlParserCtxtPtr ctxt);
00512 XMLPUBFUN int XMLCALL xmlStringCurrentChar (xmlParserCtxtPtr ctxt,
00513 const xmlChar *cur,
00514 int *len);
00515 XMLPUBFUN void XMLCALL xmlParserHandlePEReference(xmlParserCtxtPtr ctxt);
00516 XMLPUBFUN int XMLCALL xmlCheckLanguageID (const xmlChar *lang);
00517
00518
00519
00520
00521 XMLPUBFUN int XMLCALL xmlCurrentChar (xmlParserCtxtPtr ctxt,
00522 int *len);
00523 XMLPUBFUN int XMLCALL xmlCopyCharMultiByte (xmlChar *out,
00524 int val);
00525 XMLPUBFUN int XMLCALL xmlCopyChar (int len,
00526 xmlChar *out,
00527 int val);
00528 XMLPUBFUN void XMLCALL xmlNextChar (xmlParserCtxtPtr ctxt);
00529 XMLPUBFUN void XMLCALL xmlParserInputShrink (xmlParserInputPtr in);
00530
00531 #ifdef LIBXML_HTML_ENABLED
00532
00533
00534
00535 XMLPUBFUN void XMLCALL htmlInitAutoClose (void);
00536 XMLPUBFUN htmlParserCtxtPtr XMLCALL htmlCreateFileParserCtxt(const char *filename,
00537 const char *encoding);
00538 #endif
00539
00540
00541
00542
00543
00544 #ifdef LIBXML_LEGACY_ENABLED
00545
00554 typedef void (*xmlEntityReferenceFunc) (xmlEntityPtr ent,
00555 xmlNodePtr firstNode,
00556 xmlNodePtr lastNode);
00557
00558 XMLPUBFUN void XMLCALL xmlSetEntityReferenceFunc (xmlEntityReferenceFunc func);
00559
00560 XMLPUBFUN xmlChar * XMLCALL
00561 xmlParseQuotedString (xmlParserCtxtPtr ctxt);
00562 XMLPUBFUN void XMLCALL
00563 xmlParseNamespace (xmlParserCtxtPtr ctxt);
00564 XMLPUBFUN xmlChar * XMLCALL
00565 xmlNamespaceParseNSDef (xmlParserCtxtPtr ctxt);
00566 XMLPUBFUN xmlChar * XMLCALL
00567 xmlScanName (xmlParserCtxtPtr ctxt);
00568 XMLPUBFUN xmlChar * XMLCALL
00569 xmlNamespaceParseNCName (xmlParserCtxtPtr ctxt);
00570 XMLPUBFUN void XMLCALL xmlParserHandleReference(xmlParserCtxtPtr ctxt);
00571 XMLPUBFUN xmlChar * XMLCALL
00572 xmlNamespaceParseQName (xmlParserCtxtPtr ctxt,
00573 xmlChar **prefix);
00577 XMLPUBFUN xmlChar * XMLCALL
00578 xmlDecodeEntities (xmlParserCtxtPtr ctxt,
00579 int len,
00580 int what,
00581 xmlChar end,
00582 xmlChar end2,
00583 xmlChar end3);
00584 XMLPUBFUN void XMLCALL
00585 xmlHandleEntity (xmlParserCtxtPtr ctxt,
00586 xmlEntityPtr entity);
00587
00588 #endif
00589
00590 #ifdef IN_LIBXML
00591
00592
00593
00594 XMLPUBFUN void XMLCALL
00595 xmlErrMemory (xmlParserCtxtPtr ctxt,
00596 const char *extra);
00597 #endif
00598
00599 #ifdef __cplusplus
00600 }
00601 #endif
00602 #endif