35#pragma convert("ISO8859-1")
42#define XML_DIR_SEP '\\'
44#define XML_DIR_SEP '/'
66#ifdef LIBXML_CATALOG_ENABLED
69#ifdef LIBXML_SCHEMAS_ENABLED
105#define XML_MAX_HUGE_LENGTH 1000000000
107#define XML_PARSER_BIG_ENTITY 1000
108#define XML_PARSER_LOT_ENTITY 5000
116#define XML_PARSER_NON_LINEAR 10
146 unsigned long oldnbent = ctxt->
nbentities, diff;
192 if (replacement != 0) {
209 }
else if (
size != 0) {
228 }
else if (ent !=
NULL) {
275#define XML_PARSER_BIG_BUFFER_SIZE 300
276#define XML_PARSER_BUFFER_SIZE 100
277#define SAX_COMPAT_MODE BAD_CAST "SAX compatibility mode document"
288#define XML_PARSER_CHUNK_SIZE 100
314#ifdef LIBXML_LEGACY_ENABLED
354 (
const char *) localname,
NULL,
NULL, 0, 0,
355 "Attribute %s redefined\n", localname);
359 (
const char *)
prefix, (
const char *) localname,
360 NULL, 0, 0,
"Attribute %s:%s redefined\n",
prefix,
387 errmsg =
"CharRef: invalid hexadecimal value";
390 errmsg =
"CharRef: invalid decimal value";
393 errmsg =
"CharRef: invalid value";
396 errmsg =
"internal error";
399 errmsg =
"PEReference at end of document";
402 errmsg =
"PEReference in prolog";
405 errmsg =
"PEReference in epilog";
408 errmsg =
"PEReference: no name";
411 errmsg =
"PEReference: expecting ';'";
414 errmsg =
"Detected an entity reference loop";
417 errmsg =
"EntityValue: \" or ' expected";
420 errmsg =
"PEReferences forbidden in internal subset";
423 errmsg =
"EntityValue: \" or ' expected";
426 errmsg =
"AttValue: \" or ' expected";
429 errmsg =
"Unescaped '<' not allowed in attributes values";
432 errmsg =
"SystemLiteral \" or ' expected";
435 errmsg =
"Unfinished System or Public ID \" or ' expected";
438 errmsg =
"Sequence ']]>' not allowed in content";
441 errmsg =
"SYSTEM or PUBLIC, the URI is missing";
444 errmsg =
"PUBLIC, the Public Identifier is missing";
447 errmsg =
"Comment must not contain '--' (double-hyphen)";
450 errmsg =
"xmlParsePI : no target name";
453 errmsg =
"Invalid PI name";
456 errmsg =
"NOTATION: Name expected here";
459 errmsg =
"'>' required to close NOTATION declaration";
462 errmsg =
"Entity value required";
465 errmsg =
"Fragment not allowed";
468 errmsg =
"'(' required to start ATTLIST enumeration";
471 errmsg =
"NmToken expected in ATTLIST enumeration";
474 errmsg =
"')' required to finish ATTLIST enumeration";
477 errmsg =
"MixedContentDecl : '|' or ')*' expected";
480 errmsg =
"MixedContentDecl : '#PCDATA' expected";
483 errmsg =
"ContentDecl : Name or '(' expected";
486 errmsg =
"ContentDecl : ',' '|' or ')' expected";
490 "PEReference: forbidden within markup decl in internal subset";
496 errmsg =
"XML conditional section '[' expected";
499 errmsg =
"Content error in the external subset";
503 "conditional section INCLUDE or IGNORE keyword expected";
506 errmsg =
"XML conditional section not closed";
509 errmsg =
"Text declaration '<?xml' required";
512 errmsg =
"parsing XML declaration: '?>' expected";
515 errmsg =
"external parsed entities cannot be standalone";
518 errmsg =
"EntityRef: expecting ';'";
521 errmsg =
"DOCTYPE improperly terminated";
524 errmsg =
"EndTag: '</' not found";
530 errmsg =
"String not closed expecting \" or '";
533 errmsg =
"String not started expecting ' or \"";
536 errmsg =
"Invalid XML encoding name";
539 errmsg =
"standalone accepts only 'yes' or 'no'";
542 errmsg =
"Document is empty";
545 errmsg =
"Extra content at the end of the document";
548 errmsg =
"chunk is not well balanced";
551 errmsg =
"extra content at the end of well balanced chunk";
554 errmsg =
"Malformed declaration expecting version";
565 errmsg =
"Unregistered error message";
597 if ((ctxt !=
NULL) && (ctxt->disableSAX != 0) &&
605 ctxt->wellFormed = 0;
606 if (ctxt->recovery == 0)
607 ctxt->disableSAX = 1;
627 if ((ctxt !=
NULL) && (ctxt->disableSAX != 0) &&
630 if ((ctxt !=
NULL) && (ctxt->sax !=
NULL) &&
632 schannel = ctxt->sax->serror;
634 __xmlRaiseError(schannel,
635 (ctxt->sax) ? ctxt->sax->warning :
NULL,
639 (
const char *) str1, (
const char *) str2,
NULL, 0, 0,
640 msg, (
const char *) str1, (
const char *) str2);
642 __xmlRaiseError(schannel,
NULL,
NULL,
645 (
const char *) str1, (
const char *) str2,
NULL, 0, 0,
646 msg, (
const char *) str1, (
const char *) str2);
665 if ((ctxt !=
NULL) && (ctxt->disableSAX != 0) &&
671 schannel = ctxt->sax->serror;
674 __xmlRaiseError(schannel,
675 ctxt->vctxt.error, ctxt->vctxt.userData,
678 (
const char *) str2,
NULL, 0, 0,
679 msg, (
const char *) str1, (
const char *) str2);
682 __xmlRaiseError(schannel,
NULL,
NULL,
685 (
const char *) str2,
NULL, 0, 0,
686 msg, (
const char *) str1, (
const char *) str2);
703 if ((ctxt !=
NULL) && (ctxt->disableSAX != 0) &&
712 ctxt->wellFormed = 0;
713 if (ctxt->recovery == 0)
714 ctxt->disableSAX = 1;
734 if ((ctxt !=
NULL) && (ctxt->disableSAX != 0) &&
741 NULL, 0, (
const char *) str1, (
const char *) str2,
744 ctxt->wellFormed = 0;
745 if (ctxt->recovery == 0)
746 ctxt->disableSAX = 1;
763 if ((ctxt !=
NULL) && (ctxt->disableSAX != 0) &&
773 ctxt->wellFormed = 0;
774 if (ctxt->recovery == 0)
775 ctxt->disableSAX = 1;
792 if ((ctxt !=
NULL) && (ctxt->disableSAX != 0) &&
819 if ((ctxt !=
NULL) && (ctxt->disableSAX != 0) &&
826 (
const char *) info2, (
const char *) info3, 0, 0,
msg,
827 info1, info2, info3);
829 ctxt->nsWellFormed = 0;
848 if ((ctxt !=
NULL) && (ctxt->disableSAX != 0) &&
853 (
const char *) info2, (
const char *) info3, 0, 0,
msg,
854 info1, info2, info3);
878#ifdef LIBXML_THREAD_ENABLED
884#ifdef LIBXML_TREE_ENABLED
890#ifdef LIBXML_OUTPUT_ENABLED
896#ifdef LIBXML_PUSH_ENABLED
902#ifdef LIBXML_READER_ENABLED
908#ifdef LIBXML_PATTERN_ENABLED
914#ifdef LIBXML_WRITER_ENABLED
920#ifdef LIBXML_SAX1_ENABLED
926#ifdef LIBXML_FTP_ENABLED
932#ifdef LIBXML_HTTP_ENABLED
938#ifdef LIBXML_VALID_ENABLED
944#ifdef LIBXML_HTML_ENABLED
950#ifdef LIBXML_LEGACY_ENABLED
956#ifdef LIBXML_C14N_ENABLED
962#ifdef LIBXML_CATALOG_ENABLED
968#ifdef LIBXML_XPATH_ENABLED
974#ifdef LIBXML_XPTR_ENABLED
980#ifdef LIBXML_XINCLUDE_ENABLED
986#ifdef LIBXML_ICONV_ENABLED
992#ifdef LIBXML_ISO8859X_ENABLED
998#ifdef LIBXML_UNICODE_ENABLED
1004#ifdef LIBXML_REGEXP_ENABLED
1010#ifdef LIBXML_AUTOMATA_ENABLED
1016#ifdef LIBXML_EXPR_ENABLED
1022#ifdef LIBXML_SCHEMAS_ENABLED
1028#ifdef LIBXML_SCHEMATRON_ENABLED
1034#ifdef LIBXML_MODULES_ENABLED
1040#ifdef LIBXML_DEBUG_ENABLED
1046#ifdef DEBUG_MEMORY_LOCATION
1052#ifdef LIBXML_DEBUG_RUNTIME
1058#ifdef LIBXML_ZLIB_ENABLED
1064#ifdef LIBXML_LZMA_ENABLED
1070#ifdef LIBXML_ICU_ENABLED
1100 if (ctxt ==
NULL)
return;
1102#ifdef LIBXML_SAX1_ENABLED
1104 ((
sax->startElementNs !=
NULL) ||
1105 (
sax->endElementNs !=
NULL) ||
1126#if __STDC_VERSION__ >= 199901L
1157 while (*
src == 0x20)
src++;
1160 while (*
src == 0x20)
src++;
1188 int remove_head = 0;
1189 int need_realloc = 0;
1199 while (*
cur == 0x20) {
1206 if ((*
cur == 0x20) || (*
cur == 0)) {
1224 }
else if (remove_head) {
1225 *
len -= remove_head;
1284 (4 * 5) *
sizeof(
const xmlChar *));
1480 if (((
cur[0] ==
'i') && (
cur[1] ==
'-')) ||
1481 ((
cur[0] ==
'I') && (
cur[1] ==
'-')) ||
1482 ((
cur[0] ==
'x') && (
cur[1] ==
'-')) ||
1483 ((
cur[0] ==
'X') && (
cur[1] ==
'-'))) {
1490 while (((
cur[0] >=
'A') && (
cur[0] <=
'Z')) ||
1491 ((
cur[0] >=
'a') && (
cur[0] <=
'z')))
1493 return(
cur[0] == 0);
1496 while (((nxt[0] >=
'A') && (nxt[0] <=
'Z')) ||
1497 ((nxt[0] >=
'a') && (nxt[0] <=
'z')))
1499 if (nxt -
cur >= 4) {
1503 if ((nxt -
cur > 8) || (nxt[0] != 0))
1518 if ((nxt[0] >=
'0') && (nxt[0] <=
'9'))
1521 while (((nxt[0] >=
'A') && (nxt[0] <=
'Z')) ||
1522 ((nxt[0] >=
'a') && (nxt[0] <=
'z')))
1528 if ((nxt -
cur >= 5) && (nxt -
cur <= 8))
1541 if ((nxt[0] >=
'0') && (nxt[0] <=
'9'))
1544 while (((nxt[0] >=
'A') && (nxt[0] <=
'Z')) ||
1545 ((nxt[0] >=
'a') && (nxt[0] <=
'z')))
1549 if ((nxt -
cur >= 5) && (nxt -
cur <= 8))
1563 if ((nxt[0] >=
'0') && (nxt[0] <=
'9'))
1566 while (((nxt[0] >=
'A') && (nxt[0] <=
'Z')) ||
1567 ((nxt[0] >=
'a') && (nxt[0] <=
'z')))
1570 if ((nxt -
cur >= 5) && (nxt -
cur <= 8))
1584 while (((nxt[0] >=
'A') && (nxt[0] <=
'Z')) ||
1585 ((nxt[0] >=
'a') && (nxt[0] <=
'z')))
1588 if ((nxt -
cur < 5) || (nxt -
cur > 8))
1601 if (((nxt[1] >=
'0') && (nxt[1] <=
'9')) &&
1602 ((nxt[2] >=
'0') && (nxt[2] <=
'9'))) {
1635 for (
i = ctxt->
nsNr - 2;
i >= 0;
i -= 2) {
1638 if (ctxt->
nsTab[
i + 1] == URL)
1669 return (ctxt->
nsNr);
1690 if (ctxt->
nsNr <= 0)
1693 for (
i = 0;
i <
nr;
i++) {
1713 attallocs = (
int *)
xmlMalloc((maxatts / 5) *
sizeof(
int));
1714 if (attallocs ==
NULL)
goto mem_error;
1718 maxatts = (
nr + 5) * 2;
1720 maxatts *
sizeof(
const xmlChar *));
1724 (maxatts / 5) *
sizeof(
int));
1725 if (attallocs ==
NULL)
goto mem_error;
1803 if (ctxt ==
NULL)
return(0);
1820 "Excessive depth in document: %d use XML_PARSE_HUGE option\n",
1913#ifdef LIBXML_PUSH_ENABLED
1952 if (ctxt ==
NULL)
return (-1);
2018 if (ctxt->
spaceNr <= 0)
return(0);
2064#define RAW (*ctxt->input->cur)
2065#define CUR (*ctxt->input->cur)
2066#define NXT(val) ctxt->input->cur[(val)]
2067#define CUR_PTR ctxt->input->cur
2068#define BASE_PTR ctxt->input->base
2070#define CMP4( s, c1, c2, c3, c4 ) \
2071 ( ((unsigned char *) s)[ 0 ] == c1 && ((unsigned char *) s)[ 1 ] == c2 && \
2072 ((unsigned char *) s)[ 2 ] == c3 && ((unsigned char *) s)[ 3 ] == c4 )
2073#define CMP5( s, c1, c2, c3, c4, c5 ) \
2074 ( CMP4( s, c1, c2, c3, c4 ) && ((unsigned char *) s)[ 4 ] == c5 )
2075#define CMP6( s, c1, c2, c3, c4, c5, c6 ) \
2076 ( CMP5( s, c1, c2, c3, c4, c5 ) && ((unsigned char *) s)[ 5 ] == c6 )
2077#define CMP7( s, c1, c2, c3, c4, c5, c6, c7 ) \
2078 ( CMP6( s, c1, c2, c3, c4, c5, c6 ) && ((unsigned char *) s)[ 6 ] == c7 )
2079#define CMP8( s, c1, c2, c3, c4, c5, c6, c7, c8 ) \
2080 ( CMP7( s, c1, c2, c3, c4, c5, c6, c7 ) && ((unsigned char *) s)[ 7 ] == c8 )
2081#define CMP9( s, c1, c2, c3, c4, c5, c6, c7, c8, c9 ) \
2082 ( CMP8( s, c1, c2, c3, c4, c5, c6, c7, c8 ) && \
2083 ((unsigned char *) s)[ 8 ] == c9 )
2084#define CMP10( s, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10 ) \
2085 ( CMP9( s, c1, c2, c3, c4, c5, c6, c7, c8, c9 ) && \
2086 ((unsigned char *) s)[ 9 ] == c10 )
2088#define SKIP(val) do { \
2089 ctxt->input->cur += (val),ctxt->input->col+=(val); \
2090 if (*ctxt->input->cur == 0) \
2091 xmlParserInputGrow(ctxt->input, INPUT_CHUNK); \
2094#define SKIPL(val) do { \
2096 for(skipl=0; skipl<val; skipl++) { \
2097 if (*(ctxt->input->cur) == '\n') { \
2098 ctxt->input->line++; ctxt->input->col = 1; \
2099 } else ctxt->input->col++; \
2100 ctxt->input->cur++; \
2102 if (*ctxt->input->cur == 0) \
2103 xmlParserInputGrow(ctxt->input, INPUT_CHUNK); \
2106#define SHRINK if ((ctxt->progressive == 0) && \
2107 (ctxt->input->cur - ctxt->input->base > 2 * INPUT_CHUNK) && \
2108 (ctxt->input->end - ctxt->input->cur < 2 * INPUT_CHUNK)) \
2117#define GROW if ((ctxt->progressive == 0) && \
2118 (ctxt->input->end - ctxt->input->cur < INPUT_CHUNK)) \
2145#define SKIP_BLANKS xmlSkipBlankChars(ctxt)
2147#define NEXT xmlNextChar(ctxt)
2150 ctxt->input->col++; \
2151 ctxt->input->cur++; \
2152 if (*ctxt->input->cur == 0) \
2153 xmlParserInputGrow(ctxt->input, INPUT_CHUNK); \
2156#define NEXTL(l) do { \
2157 if (*(ctxt->input->cur) == '\n') { \
2158 ctxt->input->line++; ctxt->input->col = 1; \
2159 } else ctxt->input->col++; \
2160 ctxt->input->cur += l; \
2163#define CUR_CHAR(l) xmlCurrentChar(ctxt, &l)
2164#define CUR_SCHAR(s, l) xmlStringCurrentChar(ctxt, s, &l)
2166#define COPY_BUF(l,b,i,v) \
2167 if (l == 1) b[i++] = (xmlChar) v; \
2168 else i += xmlCopyCharMultiByte(&b[i],v)
2170#define CUR_CONSUMED \
2171 (ctxt->input->consumed + (ctxt->input->cur - ctxt->input->base))
2220 }
else if (
CUR ==
'%') {
2227 }
else if (
CUR == 0) {
2266 if ((ctxt ==
NULL) || (ctxt->
inputNr <= 1))
return(0);
2269 "Popping input %d\n", ctxt->
inputNr);
2273 "Unfinished entity outside the DTD");
2300 "Pushing input %d : %.30s\n", ctxt->
inputNr+1,
input->cur);
2339 if ((
RAW ==
'&') && (
NXT(1) ==
'#') &&
2343 while (
RAW !=
';') {
2350 if ((
RAW >=
'0') && (
RAW <=
'9'))
2352 else if ((
RAW >=
'a') && (
RAW <=
'f') && (
count < 20))
2354 else if ((
RAW >=
'A') && (
RAW <=
'F') && (
count < 20))
2372 }
else if ((
RAW ==
'&') && (
NXT(1) ==
'#')) {
2375 while (
RAW !=
';') {
2382 if ((
RAW >=
'0') && (
RAW <=
'9'))
2409 if (
val >= 0x110000) {
2411 "xmlParseCharRef: character reference out of bounds\n",
2417 "xmlParseCharRef: invalid xmlChar value %d\n",
2450 if ((
cur ==
'&') && (
ptr[1] ==
'#') && (
ptr[2] ==
'x')) {
2453 while (
cur !=
';') {
2454 if ((
cur >=
'0') && (
cur <=
'9'))
2456 else if ((
cur >=
'a') && (
cur <=
'f'))
2458 else if ((
cur >=
'A') && (
cur <=
'F'))
2473 }
else if ((
cur ==
'&') && (
ptr[1] ==
'#')){
2476 while (
cur !=
';') {
2477 if ((
cur >=
'0') && (
cur <=
'9'))
2503 if (
val >= 0x110000) {
2505 "xmlParseStringCharRef: character reference out of bounds\n",
2511 "xmlParseStringCharRef: invalid xmlChar value %d\n",
2613#define growBuffer(buffer, n) { \
2615 size_t new_size = buffer##_size * 2 + n; \
2616 if (new_size < buffer##_size) goto mem_error; \
2617 tmp = (xmlChar *) xmlRealloc(buffer, new_size); \
2618 if (tmp == NULL) goto mem_error; \
2620 buffer##_size = new_size; \
2659 if (((ctxt->
depth > 40) &&
2661 (ctxt->
depth > 1024)) {
2681 while ((
c != 0) && (
c !=
end) &&
2682 (
c != end2) && (
c != end3) &&
2686 if ((
c ==
'&') && (
str[1] ==
'#')) {
2697 "String decoding Entity Reference: %.30s\n",
2703 if ((ent !=
NULL) &&
2712 "predefined entity has no content\n");
2736 }
else if (ent !=
NULL) {
2751 "String decoding PE Reference: %.30s\n",
str);
2770 "not validating will not read content for PE entity %s\n",
2873 if (ctxt->
sax->ignorableWhitespace == ctxt->
sax->characters)
2880 (*(ctxt->
space) == -2))
2886 if (blank_chars == 0) {
2897 if (
ret == 0)
return(1);
2898 if (
ret == 1)
return(0);
2904 if ((
RAW !=
'<') && (
RAW != 0xD))
return(0);
2906 (
RAW ==
'<') && (
NXT(1) ==
'/'))
return(0);
2909 if (lastChild ==
NULL) {
2960#ifndef XML_XML_NAMESPACE
2962 if ((
cur[0] ==
'x') && (
cur[1] ==
'm') &&
2963 (
cur[2] ==
'l') && (
cur[3] ==
':'))
2972 while ((
c != 0) && (
c !=
':') && (
len <
max)) {
2989 while ((
c != 0) && (
c !=
':')) {
3009 if ((
c ==
':') && (*
cur == 0)) {
3037 if (!(((
c >= 0x61) && (
c <= 0x7A)) ||
3038 ((
c >= 0x41) && (
c <= 0x5A)) ||
3039 (
c ==
'_') || (
c ==
':'))) {
3045 "Name %s is not XML Namespace compliant\n",
3051 while ((
c != 0) && (
len <
max)) {
3111static unsigned long nbParseName = 0;
3112static unsigned long nbParseNmToken = 0;
3113static unsigned long nbParseNCName = 0;
3114static unsigned long nbParseNCNameComplex = 0;
3115static unsigned long nbParseNameComplex = 0;
3116static unsigned long nbParseStringName = 0;
3136 if ((
c !=
' ') && (
c !=
'>') && (
c !=
'/') &&
3137 (((
c >=
'a') && (
c <=
'z')) ||
3138 ((
c >=
'A') && (
c <=
'Z')) ||
3139 (
c ==
'_') || (
c ==
':') ||
3140 ((
c >= 0xC0) && (
c <= 0xD6)) ||
3141 ((
c >= 0xD8) && (
c <= 0xF6)) ||
3142 ((
c >= 0xF8) && (
c <= 0x2FF)) ||
3143 ((
c >= 0x370) && (
c <= 0x37D)) ||
3144 ((
c >= 0x37F) && (
c <= 0x1FFF)) ||
3145 ((
c >= 0x200C) && (
c <= 0x200D)) ||
3146 ((
c >= 0x2070) && (
c <= 0x218F)) ||
3147 ((
c >= 0x2C00) && (
c <= 0x2FEF)) ||
3148 ((
c >= 0x3001) && (
c <= 0xD7FF)) ||
3149 ((
c >= 0xF900) && (
c <= 0xFDCF)) ||
3150 ((
c >= 0xFDF0) && (
c <= 0xFFFD)) ||
3151 ((
c >= 0x10000) && (
c <= 0xEFFFF))))
3167 if ((
c !=
' ') && (
c !=
'>') && (
c !=
'/') &&
3168 (((
c >=
'a') && (
c <=
'z')) ||
3169 ((
c >=
'A') && (
c <=
'Z')) ||
3170 ((
c >=
'0') && (
c <=
'9')) ||
3171 (
c ==
'_') || (
c ==
':') ||
3172 (
c ==
'-') || (
c ==
'.') || (
c == 0xB7) ||
3173 ((
c >= 0xC0) && (
c <= 0xD6)) ||
3174 ((
c >= 0xD8) && (
c <= 0xF6)) ||
3175 ((
c >= 0xF8) && (
c <= 0x2FF)) ||
3176 ((
c >= 0x300) && (
c <= 0x36F)) ||
3177 ((
c >= 0x370) && (
c <= 0x37D)) ||
3178 ((
c >= 0x37F) && (
c <= 0x1FFF)) ||
3179 ((
c >= 0x200C) && (
c <= 0x200D)) ||
3180 ((
c >= 0x203F) && (
c <= 0x2040)) ||
3181 ((
c >= 0x2070) && (
c <= 0x218F)) ||
3182 ((
c >= 0x2C00) && (
c <= 0x2FEF)) ||
3183 ((
c >= 0x3001) && (
c <= 0xD7FF)) ||
3184 ((
c >= 0xF900) && (
c <= 0xFDCF)) ||
3185 ((
c >= 0xFDF0) && (
c <= 0xFFFD)) ||
3186 ((
c >= 0x10000) && (
c <= 0xEFFFF))))
3190 (
c ==
'.') || (
c ==
'-') ||
3191 (
c ==
'_') || (
c ==
':') ||
3212 nbParseNameComplex++;
3227 if ((
c ==
' ') || (
c ==
'>') || (
c ==
'/') ||
3228 (!(((
c >=
'a') && (
c <=
'z')) ||
3229 ((
c >=
'A') && (
c <=
'Z')) ||
3230 (
c ==
'_') || (
c ==
':') ||
3231 ((
c >= 0xC0) && (
c <= 0xD6)) ||
3232 ((
c >= 0xD8) && (
c <= 0xF6)) ||
3233 ((
c >= 0xF8) && (
c <= 0x2FF)) ||
3234 ((
c >= 0x370) && (
c <= 0x37D)) ||
3235 ((
c >= 0x37F) && (
c <= 0x1FFF)) ||
3236 ((
c >= 0x200C) && (
c <= 0x200D)) ||
3237 ((
c >= 0x2070) && (
c <= 0x218F)) ||
3238 ((
c >= 0x2C00) && (
c <= 0x2FEF)) ||
3239 ((
c >= 0x3001) && (
c <= 0xD7FF)) ||
3240 ((
c >= 0xF900) && (
c <= 0xFDCF)) ||
3241 ((
c >= 0xFDF0) && (
c <= 0xFFFD)) ||
3242 ((
c >= 0x10000) && (
c <= 0xEFFFF))))) {
3248 while ((
c !=
' ') && (
c !=
'>') && (
c !=
'/') &&
3249 (((
c >=
'a') && (
c <=
'z')) ||
3250 ((
c >=
'A') && (
c <=
'Z')) ||
3251 ((
c >=
'0') && (
c <=
'9')) ||
3252 (
c ==
'_') || (
c ==
':') ||
3253 (
c ==
'-') || (
c ==
'.') || (
c == 0xB7) ||
3254 ((
c >= 0xC0) && (
c <= 0xD6)) ||
3255 ((
c >= 0xD8) && (
c <= 0xF6)) ||
3256 ((
c >= 0xF8) && (
c <= 0x2FF)) ||
3257 ((
c >= 0x300) && (
c <= 0x36F)) ||
3258 ((
c >= 0x370) && (
c <= 0x37D)) ||
3259 ((
c >= 0x37F) && (
c <= 0x1FFF)) ||
3260 ((
c >= 0x200C) && (
c <= 0x200D)) ||
3261 ((
c >= 0x203F) && (
c <= 0x2040)) ||
3262 ((
c >= 0x2070) && (
c <= 0x218F)) ||
3263 ((
c >= 0x2C00) && (
c <= 0x2FEF)) ||
3264 ((
c >= 0x3001) && (
c <= 0xD7FF)) ||
3265 ((
c >= 0xF900) && (
c <= 0xFDCF)) ||
3266 ((
c >= 0xFDF0) && (
c <= 0xFFFD)) ||
3267 ((
c >= 0x10000) && (
c <= 0xEFFFF))
3281 if ((
c ==
' ') || (
c ==
'>') || (
c ==
'/') ||
3290 while ((
c !=
' ') && (
c !=
'>') && (
c !=
'/') &&
3292 (
c ==
'.') || (
c ==
'-') ||
3293 (
c ==
'_') || (
c ==
':') ||
3319 "unexpected change of input buffer");
3362 if (((*
in >= 0x61) && (*
in <= 0x7A)) ||
3363 ((*
in >= 0x41) && (*
in <= 0x5A)) ||
3364 (*
in ==
'_') || (*
in ==
':')) {
3366 while (((*
in >= 0x61) && (*
in <= 0x7A)) ||
3367 ((*
in >= 0x41) && (*
in <= 0x5A)) ||
3368 ((*
in >= 0x30) && (*
in <= 0x39)) ||
3369 (*
in ==
'_') || (*
in ==
'-') ||
3370 (*
in ==
':') || (*
in ==
'.'))
3372 if ((*
in > 0) && (*
in < 0x80)) {
3398 size_t startPosition = 0;
3401 nbParseNCNameComplex++;
3410 if ((
c ==
' ') || (
c ==
'>') || (
c ==
'/') ||
3415 while ((
c !=
' ') && (
c !=
'>') && (
c !=
'/') &&
3482 if ((((*
in >= 0x61) && (*
in <= 0x7A)) ||
3483 ((*
in >= 0x41) && (*
in <= 0x5A)) ||
3484 (*
in ==
'_')) && (
in <
e)) {
3486 while ((((*
in >= 0x61) && (*
in <= 0x7A)) ||
3487 ((*
in >= 0x41) && (*
in <= 0x5A)) ||
3488 ((*
in >= 0x30) && (*
in <= 0x39)) ||
3489 (*
in ==
'_') || (*
in ==
'-') ||
3490 (*
in ==
'.')) && (
in <
e))
3494 if ((*
in > 0) && (*
in < 0x80)) {
3535 while (*
in != 0 && *
in == *
cmp) {
3583 nbParseStringName++;
3780 if (
RAW ==
'"') stop =
'"';
3781 else if (
RAW ==
'\'') stop =
'\'';
3837 "entity value too long\n");
3857 if ((*
cur ==
'%') || ((*
cur ==
'&') && (
cur[1] !=
'#'))) {
3868 if ((nameOk == 0) || (*
cur !=
';')) {
3870 "EntityValue: '%c' forbidden except for entities references\n",
3874 if ((tmp ==
'%') && (ctxt->
inSubset == 1) &&
3926 size_t buf_size = 0;
3930 int c,
l, in_space = 0;
3934 if (
NXT(0) ==
'"') {
3938 }
else if (
NXT(0) ==
'\'') {
3952 if (
buf ==
NULL)
goto mem_error;
3963 if (
NXT(1) ==
'#') {
3968 if (
len + 10 > buf_size) {
3977 if (
len + 10 > buf_size) {
3986 }
else if (
val != 0) {
3987 if (
len + 10 > buf_size) {
3997 if ((ent !=
NULL) &&
3999 if (
len + 10 > buf_size) {
4012 }
else if ((ent !=
NULL) &&
4029 if (
len + 10 > buf_size) {
4037 if (
len + 10 > buf_size) {
4043 }
else if (ent !=
NULL) {
4053 unsigned long oldnbent = ctxt->
nbentities, diff;
4078 while (
len +
i + 10 > buf_size) {
4087 if ((
c == 0x20) || (
c == 0xD) || (
c == 0xA) || (
c == 0x9)) {
4091 while (
len + 10 > buf_size) {
4100 if (
len + 10 > buf_size) {
4110 "AttValue length too long\n");
4126 "invalid character in attribute value\n");
4129 "AttValue: ' expected\n");
4215 }
else if (
RAW ==
'\'') {
4307 }
else if (
RAW ==
'\'') {
4374 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4375 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4376 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4377 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4378 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x00, 0x27,
4379 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
4380 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
4381 0x38, 0x39, 0x3A, 0x3B, 0x00, 0x3D, 0x3E, 0x3F,
4382 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
4383 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
4384 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
4385 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x00, 0x5E, 0x5F,
4386 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
4387 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
4388 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
4389 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
4390 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4391 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4392 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4393 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4394 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4395 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4396 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4397 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4398 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4399 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4400 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4401 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4402 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4403 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4404 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4405 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
4447 }
while (*
in == 0xA);
4448 goto get_more_space;
4457 (ctxt->
sax->ignorableWhitespace !=
4458 ctxt->
sax->characters)) {
4460 if (ctxt->
sax->ignorableWhitespace !=
NULL)
4464 if (ctxt->
sax->characters !=
NULL)
4467 if (*ctxt->
space == -1)
4470 }
else if ((ctxt->
sax !=
NULL) &&
4471 (ctxt->
sax->characters !=
NULL)) {
4490 }
while (*
in == 0xA);
4494 if ((
in[1] ==
']') && (
in[2] ==
'>')) {
4506 (ctxt->
sax->ignorableWhitespace !=
4507 ctxt->
sax->characters) &&
4513 if (ctxt->
sax->ignorableWhitespace !=
NULL)
4517 if (ctxt->
sax->characters !=
NULL)
4520 if (*ctxt->
space == -1)
4525 }
else if (ctxt->
sax !=
NULL) {
4526 if (ctxt->
sax->characters !=
NULL)
4558 }
while (((*
in >= 0x20) && (*
in <= 0x7F)) || (*
in == 0x09) || (*
in == 0x0a));
4585 while ((
cur !=
'<') &&
4588 if ((
cur ==
']') && (
NXT(1) ==
']') &&
4607 if (ctxt->
sax->ignorableWhitespace !=
NULL)
4611 if (ctxt->
sax->characters !=
NULL)
4613 if ((ctxt->
sax->characters !=
4614 ctxt->
sax->ignorableWhitespace) &&
4615 (*ctxt->
space == -1))
4640 if (ctxt->
sax->ignorableWhitespace !=
NULL)
4643 if (ctxt->
sax->characters !=
NULL)
4645 if ((ctxt->
sax->characters != ctxt->
sax->ignorableWhitespace) &&
4646 (*ctxt->
space == -1))
4654 "PCDATA invalid Char value %d\n",
4689 if (
CMP6(
CUR_PTR,
'S',
'Y',
'S',
'T',
'E',
'M')) {
4693 "Space required after 'SYSTEM'\n");
4699 }
else if (
CMP6(
CUR_PTR,
'P',
'U',
'B',
'L',
'I',
'C')) {
4703 "Space required after 'PUBLIC'\n");
4706 if (*publicID ==
NULL) {
4715 "Space required after the Public Identifier\n");
4725 if ((
CUR !=
'\'') && (
CUR !=
'"'))
return(
NULL);
4775 goto not_terminated;
4778 "xmlParseComment: invalid xmlChar value %d\n",
4786 goto not_terminated;
4789 "xmlParseComment: invalid xmlChar value %d\n",
4797 goto not_terminated;
4800 (
r !=
'-') || (
q !=
'-'))) {
4801 if ((
r ==
'-') && (
q ==
'-')) {
4810 if (new_buf ==
NULL) {
4844 "Comment too big found",
NULL);
4852 "Comment not terminated \n<!--%.50s\n",
buf);
4855 "xmlParseComment: invalid xmlChar value %d\n",
4858 if (inputid != ctxt->
input->
id) {
4860 "Comment doesn't start and stop in the same"
4872 "Comment not terminated\n",
NULL);
4904 if ((
RAW !=
'<') || (
NXT(1) !=
'!') ||
4905 (
NXT(2) !=
'-') || (
NXT(3) !=
'-'))
return;
4923 }
while (*
in == 0xA);
4927 while (((*
in >
'-') && (*
in <= 0x7F)) ||
4928 ((*
in >= 0x20) && (*
in <
'-')) ||
4938 }
while (*
in == 0xA);
4947 (ctxt->
sax->comment !=
NULL)) {
4949 if ((*
in ==
'-') && (
in[1] ==
'-'))
4960 }
else if (
len + nbchar + 1 >=
size) {
4965 if (new_buf ==
NULL) {
4980 "Comment too big found",
NULL);
5009 if (ctxt->
input->
id != inputid) {
5011 "comment doesn't start and stop in the"
5030 "Double hyphen within comment: "
5035 "Double hyphen within comment\n",
NULL);
5047 }
while (((*
in >= 0x20) && (*
in <= 0x7F)) || (*
in == 0x09) || (*
in == 0x0a));
5071 ((
name[0] ==
'x') || (
name[0] ==
'X')) &&
5072 ((
name[1] ==
'm') || (
name[1] ==
'M')) &&
5073 ((
name[2] ==
'l') || (
name[2] ==
'L'))) {
5075 if ((
name[0] ==
'x') && (
name[1] ==
'm') &&
5076 (
name[2] ==
'l') && (
name[3] == 0)) {
5078 "XML declaration allowed only at the start of the document\n");
5080 }
else if (
name[3] == 0) {
5090 "xmlParsePITarget: invalid name prefix 'xml'\n",
5095 "colons are forbidden from PI names '%s'\n",
name,
NULL,
NULL);
5100#ifdef LIBXML_CATALOG_ENABLED
5138 while ((*tmp != 0) && (*tmp !=
marker)) tmp++;
5155 "Catalog PI syntax error: %s\n",
5186 if ((
RAW ==
'<') && (
NXT(1) ==
'?')) {
5187 int inputid = ctxt->
input->
id;
5202 if ((
RAW ==
'?') && (
NXT(1) ==
'>')) {
5203 if (inputid != ctxt->
input->
id) {
5205 "PI declaration doesn't start and stop in"
5206 " the same entity\n");
5214 (ctxt->
sax->processingInstruction !=
NULL))
5229 "ParsePI: PI %s space expected\n",
target);
5233 ((
cur !=
'?') || (
NXT(1) !=
'>'))) {
5267 "PI %s too big found",
target);
5276 "ParsePI: PI %s never end ...\n",
target);
5278 if (inputid != ctxt->
input->
id) {
5280 "PI declaration doesn't start and stop in"
5281 " the same entity\n");
5285#ifdef LIBXML_CATALOG_ENABLED
5289 xmlCatalogAllow allow = xmlCatalogGetDefaults();
5290 if ((allow == XML_CATA_ALLOW_DOCUMENT) ||
5291 (allow == XML_CATA_ALLOW_ALL))
5292 xmlParseCatalogPI(ctxt,
buf);
5301 (ctxt->
sax->processingInstruction !=
NULL))
5336 if (
CMP10(
CUR_PTR,
'<',
'!',
'N',
'O',
'T',
'A',
'T',
'I',
'O',
'N')) {
5337 int inputid = ctxt->
input->
id;
5342 "Space required after '<!NOTATION'\n");
5353 "colons are forbidden from notation names '%s'\n",
5358 "Space required after the NOTATION name'\n");
5369 if (inputid != ctxt->
input->
id) {
5371 "Notation declaration doesn't start and stop"
5372 " in the same entity\n");
5376 (ctxt->
sax->notationDecl !=
NULL))
5414 int isParameter = 0;
5418 if (
CMP8(
CUR_PTR,
'<',
'!',
'E',
'N',
'T',
'I',
'T',
'Y')) {
5419 int inputid = ctxt->
input->
id;
5424 "Space required after '<!ENTITY'\n");
5431 "Space required after '%%'\n");
5439 "xmlParseEntityDecl: no name\n");
5444 "colons are forbidden from entities names '%s'\n",
5449 "Space required after the entity name\n");
5457 if ((
RAW ==
'"') || (
RAW ==
'\'')) {
5468 if ((URI ==
NULL) && (literal ==
NULL)) {
5477 "Invalid URI: %s\n", URI);
5493 (ctxt->
sax->entityDecl !=
NULL))
5496 literal, URI,
NULL);
5503 if ((
RAW ==
'"') || (
RAW ==
'\'')) {
5532 if ((URI ==
NULL) && (literal ==
NULL)) {
5541 "Invalid URI: %s\n", URI);
5560 "Space required before 'NDATA'\n");
5566 "Space required after 'NDATA'\n");
5570 (ctxt->
sax->unparsedEntityDecl !=
NULL))
5572 literal, URI, ndata);
5578 literal, URI,
NULL);
5600 literal, URI,
NULL);
5610 "xmlParseEntityDecl: entity %s not terminated\n",
name);
5613 if (inputid != ctxt->
input->
id) {
5615 "Entity declaration doesn't start and stop in"
5616 " the same entity\n");
5628 (ctxt->
sax->getParameterEntity !=
NULL))
5632 (ctxt->
sax->getEntity !=
NULL))
5687 if (
CMP9(
CUR_PTR,
'#',
'R',
'E',
'Q',
'U',
'I',
'R',
'E',
'D')) {
5691 if (
CMP8(
CUR_PTR,
'#',
'I',
'M',
'P',
'L',
'I',
'E',
'D')) {
5696 if (
CMP6(
CUR_PTR,
'#',
'F',
'I',
'X',
'E',
'D')) {
5701 "Space required after '#FIXED'\n");
5708 "Attribute default value declaration error\n");
5747 "Name expected in NOTATION declaration\n");
5752 while (tmp !=
NULL) {
5755 "standalone: attribute notation value token %s duplicated\n",
5776 }
while (
RAW ==
'|');
5820 while (tmp !=
NULL) {
5823 "standalone: attribute enumeration value token %s duplicated\n",
5846 }
while (
RAW ==
'|');
5872 if (
CMP8(
CUR_PTR,
'N',
'O',
'T',
'A',
'T',
'I',
'O',
'N')) {
5876 "Space required after 'NOTATION'\n");
5939 }
else if (
CMP6(
CUR_PTR,
'I',
'D',
'R',
'E',
'F',
'S')) {
5942 }
else if (
CMP5(
CUR_PTR,
'I',
'D',
'R',
'E',
'F')) {
5945 }
else if ((
RAW ==
'I') && (
NXT(1) ==
'D')) {
5948 }
else if (
CMP6(
CUR_PTR,
'E',
'N',
'T',
'I',
'T',
'Y')) {
5951 }
else if (
CMP8(
CUR_PTR,
'E',
'N',
'T',
'I',
'T',
'I',
'E',
'S')) {
5954 }
else if (
CMP8(
CUR_PTR,
'N',
'M',
'T',
'O',
'K',
'E',
'N',
'S')) {
5957 }
else if (
CMP7(
CUR_PTR,
'N',
'M',
'T',
'O',
'K',
'E',
'N')) {
5981 if (
CMP9(
CUR_PTR,
'<',
'!',
'A',
'T',
'T',
'L',
'I',
'S',
'T')) {
5982 int inputid = ctxt->
input->
id;
5987 "Space required after '<!ATTLIST'\n");
5990 if (elemName ==
NULL) {
5992 "ATTLIST: no name for Element\n");
6005 if (attrName ==
NULL) {
6007 "ATTLIST: no name for Attribute\n");
6013 "Space required after the attribute name\n");
6025 "Space required after the attribute type\n");
6033 if (defaultValue !=
NULL)
6046 "Space required after the attribute default value\n");
6047 if (defaultValue !=
NULL)
6055 (ctxt->
sax->attributeDecl !=
NULL))
6056 ctxt->
sax->attributeDecl(ctxt->
userData, elemName, attrName,
6061 if ((ctxt->
sax2) && (defaultValue !=
NULL) &&
6069 if (defaultValue !=
NULL)
6074 if (inputid != ctxt->
input->
id) {
6076 "Attribute list declaration doesn't start and"
6077 " stop in the same entity\n");
6109 if (
CMP7(
CUR_PTR,
'#',
'P',
'C',
'D',
'A',
'T',
'A')) {
6114 if (ctxt->
input->
id != inputchk) {
6116 "Element content declaration doesn't start and"
6117 " stop in the same entity\n");
6129 if ((
RAW ==
'(') || (
RAW ==
'|')) {
6163 "xmlParseElementMixedContentDecl : Name expected\n");
6170 if ((
RAW ==
')') && (
NXT(1) ==
'*')) {
6179 if (ctxt->
input->
id != inputchk) {
6181 "Element content declaration doesn't start and"
6182 " stop in the same entity\n");
6239"xmlParseElementChildrenContentDecl : depth %d too deep, use XML_PARSE_HUGE\n",
6246 int inputid = ctxt->
input->
id;
6272 }
else if (
RAW ==
'*') {
6275 }
else if (
RAW ==
'+') {
6297 "xmlParseElementChildrenContentDecl : '%c' expected\n",
6329 }
else if (
RAW ==
'|') {
6337 "xmlParseElementChildrenContentDecl : '%c' expected\n",
6382 int inputid = ctxt->
input->
id;
6411 }
else if (
RAW ==
'*') {
6414 }
else if (
RAW ==
'+') {
6429 if (ctxt->
input->
id != inputchk) {
6431 "Element content declaration doesn't start and stop in"
6432 " the same entity\n");
6444 }
else if (
RAW ==
'*') {
6465 }
else if (
RAW ==
'+') {
6557 int inputid = ctxt->
input->
id;
6564 "xmlParseElementContentDecl : %s '(' expected\n",
name);
6572 if (
CMP7(
CUR_PTR,
'#',
'P',
'C',
'D',
'A',
'T',
'A')) {
6604 if (
CMP9(
CUR_PTR,
'<',
'!',
'E',
'L',
'E',
'M',
'E',
'N',
'T')) {
6605 int inputid = ctxt->
input->
id;
6610 "Space required after 'ELEMENT'\n");
6616 "xmlParseElementDecl: no name for Element\n");
6621 "Space required after the element name\n");
6629 }
else if ((
RAW ==
'A') && (
NXT(1) ==
'N') &&
6636 }
else if (
RAW ==
'(') {
6645 "PEReference: forbidden within markup decl in internal subset\n");
6648 "xmlParseElementDecl: 'EMPTY', 'ANY' or '(' expected\n");
6661 if (inputid != ctxt->
input->
id) {
6663 "Element declaration doesn't start and stop in"
6664 " the same entity\n");
6669 (ctxt->
sax->elementDecl !=
NULL)) {
6704 int *inputIds =
NULL;
6705 size_t inputIdsSize = 0;
6709 if ((
RAW ==
'<') && (
NXT(1) ==
'!') && (
NXT(2) ==
'[')) {
6715 if (
CMP7(
CUR_PTR,
'I',
'N',
'C',
'L',
'U',
'D',
'E')) {
6725 "All markup of the conditional section is"
6726 " not in the same entity\n");
6730 if (inputIdsSize <=
depth) {
6733 inputIdsSize = (inputIdsSize == 0 ? 4 : inputIdsSize * 2);
6735 inputIdsSize *
sizeof(
int));
6744 }
else if (
CMP6(
CUR_PTR,
'I',
'G',
'N',
'O',
'R',
'E')) {
6747 size_t ignoreDepth = 0;
6758 "All markup of the conditional section is"
6759 " not in the same entity\n");
6773 if ((
RAW ==
'<') && (
NXT(1) ==
'!') && (
NXT(2) ==
'[')) {
6777 if (ignoreDepth == 0) {
6781 }
else if ((
RAW ==
']') && (
NXT(1) ==
']') &&
6783 if (ignoreDepth == 0)
6801 "All markup of the conditional section is"
6802 " not in the same entity\n");
6810 }
else if ((
depth > 0) &&
6811 (
RAW ==
']') && (
NXT(1) ==
']') && (
NXT(2) ==
'>')) {
6815 "All markup of the conditional section is not"
6816 " in the same entity\n");
6869 if (
NXT(1) ==
'!') {
6874 else if (
NXT(3) ==
'N')
6890 }
else if (
NXT(1) ==
'?') {
6936 "Space needed after '<?xml'\n");
6948 "Space needed here\n");
6966 "Missing encoding in text declaration\n");
6970 if ((
RAW ==
'?') && (
NXT(1) ==
'>')) {
6972 }
else if (
RAW ==
'>') {
7041 while (((
RAW ==
'<') && (
NXT(1) ==
'?')) ||
7042 ((
RAW ==
'<') && (
NXT(1) ==
'!')) ||
7048 if ((
RAW ==
'<') && (
NXT(1) ==
'!') && (
NXT(2) ==
'[')) {
7092 if (
NXT(1) ==
'#') {
7106 if (
value <= 0xFF) {
7113 if ((
hex ==
'x') || (
hex ==
'X'))
7138 if (ent ==
NULL)
return;
7171 unsigned long oldnbent = ctxt->
nbentities, diff;
7205 "invalid entity type found\n",
NULL);
7262#ifdef LIBXML_LEGACY_ENABLED
7264 xmlAddEntityReference(ent,
list,
NULL);
7274 "Entity '%s' failed to parse\n", ent->
name);
7287 }
else if (ent->
checked != 1) {
7303 if (was_checked != 0) {
7320 }
else if (ent->
etype ==
7330 "invalid entity type found\n",
NULL);
7404 if (firstChild ==
NULL){
7424#ifdef LIBXML_LEGACY_ENABLED
7426 xmlAddEntityReference(ent, firstChild, nw);
7457 if (firstChild ==
NULL){
7467 if (ent->
owner == 0)
7469#ifdef LIBXML_LEGACY_ENABLED
7471 xmlAddEntityReference(ent, firstChild, nw);
7487 ent->
last->name = nbktext;
7545 "xmlParseEntityRef: no name\n");
7573 if (ctxt->
sax->getEntity !=
NULL)
7611 "Entity '%s' not defined\n",
name);
7614 "Entity '%s' not defined\n",
name);
7617 (ctxt->
sax->reference !=
NULL)) {
7632 "Entity reference to unparsed entity %s\n",
name);
7643 "Attribute references external entity '%s'\n",
name);
7657 "'<' in entity '%s' is not allowed in attributes values\n",
name);
7665 switch (ent->
etype) {
7669 "Attempt to reference the parameter entity '%s'\n",
7735 "xmlParseStringEntityRef: no name\n");
7770 if (ctxt->
sax->getEntity !=
NULL)
7809 "Entity '%s' not defined\n",
name);
7812 "Entity '%s' not defined\n",
7826 "Entity reference to unparsed entity %s\n",
name);
7837 "Attribute references external entity '%s'\n",
name);
7850 "'<' in entity '%s' is not allowed in attributes values\n",
7858 switch (ent->
etype) {
7862 "Attempt to reference the parameter entity '%s'\n",
7928 "PEReference: %s\n",
name);
7945 (ctxt->
sax->getParameterEntity !=
NULL))
7962 "PEReference: %%%s; not found\n",
7974 "PEReference: %%%s; not found\n",
7978 "PEReference: %%%s; not found\n",
7990 "Internal: %%%s; is not a parameter entity\n",
8071 "xmlLoadEntityContent parameter error");
8077 "Reading %s entity content input\n",
entity->
name);
8082 "xmlLoadEntityContent parameter error");
8090 "xmlLoadEntityContent input error");
8135 "xmlLoadEntityContent: invalid char value %d\n",
8194 "xmlParseStringPEReference: no name\n");
8216 (ctxt->
sax->getParameterEntity !=
NULL))
8235 "PEReference: %%%s; not found\n",
name);
8245 "PEReference: %%%s; not found\n",
8257 "%%%s; is not a parameter entity\n",
8300 "xmlParseDocTypeDecl : no DOCTYPE name !\n");
8311 if ((URI !=
NULL) || (ExternalID !=
NULL)) {
8322 if ((ctxt->
sax !=
NULL) && (ctxt->
sax->internalSubset !=
NULL) &&
8359 int baseInputNr = ctxt->
inputNr;
8367 while (((
RAW !=
']') || (ctxt->
inputNr > baseInputNr)) &&
8381 (
RAW ==
'<') && (
NXT(1) ==
'!') && (
NXT(2) ==
'[')) {
8387 "xmlParseInternalSubset: error detected in Markup declaration\n");
8388 if (ctxt->
inputNr > baseInputNr)
8410#ifdef LIBXML_SAX1_ENABLED
8454 "error parsing attribute name\n");
8469 "Specification mandates value for attribute %s\n",
name);
8481 "Malformed value for xml:lang : %s\n",
8496"Invalid value \"%s\" for xml:space : \"default\" or \"preserve\" expected\n",
8549 "xmlParseStartTag: invalid element name\n");
8561 while (((
RAW !=
'>') &&
8562 ((
RAW !=
'/') || (
NXT(1) !=
'>')) &&
8567 attname = xmlParseAttribute(ctxt, &attvalue);
8568 if ((attname !=
NULL) && (attvalue !=
NULL)) {
8574 for (
i = 0;
i < nbatts;
i += 2) {
8590 if (attvalue !=
NULL)
8596 }
else if (nbatts + 4 > maxatts) {
8601 maxatts *
sizeof(
const xmlChar *));
8604 if (attvalue !=
NULL)
8612 atts[nbatts++] = attname;
8613 atts[nbatts++] = attvalue;
8617 if (attvalue !=
NULL)
8624 if ((
RAW ==
'>') || (((
RAW ==
'/') && (
NXT(1) ==
'>'))))
8628 "attributes construct error\n");
8631 (attname ==
NULL) && (attvalue ==
NULL)) {
8633 "xmlParseStartTag: problem parsing attributes\n");
8653 for (
i = 1;
i < nbatts;
i+=2)
8680 if ((
RAW !=
'<') || (
NXT(1) !=
'/')) {
8682 "xmlParseEndTag: '</' not found\n");
8708 "Opening and ending tag mismatch: %s line %d and %s\n",
8739 xmlParseEndTag1(ctxt, 0);
8764 for (
i = ctxt->
nsNr - 2;
i >= 0;
i-=2)
8768 return(ctxt->
nsTab[
i + 1]);
8799 "Failed to parse QName '%s'\n",
l,
NULL,
NULL);
8816 "Failed to parse QName '%s:'\n",
p,
NULL,
NULL);
8835 "Failed to parse QName '%s:%s:'\n",
p,
l,
NULL);
8886 while (*
in != 0 && *
in == *
cmp) {
8890 if ((*
cmp == 0) && (*
in ==
':')) {
8893 while (*
in != 0 && *
in == *
cmp) {
8947#define GROW_PARSE_ATT_VALUE_INTERNAL(ctxt, in, start, end) \
8948 const xmlChar *oldbase = ctxt->input->base;\
8950 if (ctxt->instate == XML_PARSER_EOF)\
8952 if (oldbase != ctxt->input->base) {\
8953 ptrdiff_t delta = ctxt->input->base - oldbase;\
8954 start = start + delta;\
8957 end = ctxt->input->end;
8975 if (*
in !=
'"' && *
in !=
'\'') {
8998 ((*
in == 0x20) || (*
in == 0x9) ||
8999 (*
in == 0xA) || (*
in == 0xD))) {
9011 "AttValue length too long\n");
9017 (*
in <= 0x7f) && (*
in !=
'&') && (*
in !=
'<')) {
9019 if ((*
in++ == 0x20) && (*
in == 0x20))
break;
9024 "AttValue length too long\n");
9035 ((*
in == 0x20) || (*
in == 0x9) ||
9036 (*
in == 0xA) || (*
in == 0xD))) {
9057 "AttValue length too long\n");
9064 "AttValue length too long\n");
9067 if (*
in !=
limit)
goto need_complex;
9070 (*
in <= 0x7f) && (*
in !=
'&') && (*
in !=
'<')) {
9077 "AttValue length too long\n");
9085 "AttValue length too long\n");
9088 if (*
in !=
limit)
goto need_complex;
9139 "error parsing attribute name\n");
9174 if ((val2 !=
NULL) && (val2 !=
val)) {
9183 "Specification mandates value for attribute %s\n",
9198 "Malformed value for xml:lang : %s\n",
9199 internal_val,
NULL);
9214 "Invalid value \"%s\" for xml:space : \"default\" or \"preserve\" expected\n",
9215 internal_val,
NULL);
9257 const xmlChar **URI,
int *tlen) {
9266 int nratts, nbatts, nbdef, inputid;
9267 int i,
j, nbNs, attval;
9269 int nsNr = ctxt->
nsNr;
9293 if (localname ==
NULL) {
9295 "StartTag: invalid element name\n");
9308 while (((
RAW !=
'>') &&
9309 ((
RAW !=
'/') || (
NXT(1) !=
'>')) &&
9316 &aprefix, &attvalue, &
len, &
alloc);
9317 if ((attname ==
NULL) || (attvalue ==
NULL))
9336 "xmlns: '%s' is not a valid URI\n",
9341 "xmlns: URI %s is not absolute\n",
9347 if (attname != ctxt->
str_xml) {
9349 "xml namespace URI cannot be the default namespace\n",
9356 BAD_CAST "http://www.w3.org/2000/xmlns/"))) {
9358 "reuse of the xmlns namespace name is forbidden\n",
9366 for (
j = 1;
j <= nbNs;
j++)
9374 }
else if (aprefix == ctxt->
str_xmlns) {
9378 if (attname == ctxt->
str_xml) {
9381 "xml namespace prefix mapped to wrong URI\n",
9390 if (attname != ctxt->
str_xml) {
9392 "xml namespace URI mapped to wrong prefix\n",
9399 "redefinition of the xmlns prefix is forbidden\n",
9405 BAD_CAST "http://www.w3.org/2000/xmlns/"))) {
9407 "reuse of the xmlns namespace name is forbidden\n",
9411 if ((URL ==
NULL) || (URL[0] == 0)) {
9413 "xmlns:%s: Empty XML namespace is not allowed\n",
9420 "xmlns:%s: '%s' is not a valid URI\n",
9421 attname, URL,
NULL);
9425 "xmlns:%s: URI %s is not absolute\n",
9426 attname, URL,
NULL);
9435 for (
j = 1;
j <= nbNs;
j++)
9436 if (ctxt->
nsTab[ctxt->
nsNr - 2 *
j] == attname)
9441 if (
nsPush(ctxt, attname, URL) > 0) nbNs++;
9447 if ((
atts ==
NULL) || (nbatts + 5 > maxatts)) {
9455 atts[nbatts++] = attname;
9456 atts[nbatts++] = aprefix;
9467 atts[nbatts++] = attvalue;
9469 atts[nbatts++] = attvalue;
9473 if (
alloc != 0) attval = 1;
9478 if ((attvalue !=
NULL) && (
alloc != 0)) {
9486 if ((
RAW ==
'>') || (((
RAW ==
'/') && (
NXT(1) ==
'>'))))
9490 "attributes construct error\n");
9494 (attname ==
NULL) && (attvalue ==
NULL)) {
9496 "xmlParseStartTag: problem parsing attributes\n");
9502 if (ctxt->
input->
id != inputid) {
9504 "Unexpected change of input\n");
9510 for (
i = 0,
j = 0;
j < nratts;
i += 5,
j++) {
9542 for (
j = 1;
j <= nbNs;
j++)
9545 if (
j <= nbNs)
continue;
9548 if (nsname !=
defaults->values[5 *
i + 2]) {
9553 }
else if (aprefix == ctxt->
str_xmlns) {
9557 for (
j = 1;
j <= nbNs;
j++)
9558 if (ctxt->
nsTab[ctxt->
nsNr - 2 *
j] == attname)
9560 if (
j <= nbNs)
continue;
9563 if (nsname !=
defaults->values[2]) {
9564 if (
nsPush(ctxt, attname,
9572 for (
j = 0;
j < nbatts;
j+=5) {
9573 if ((attname ==
atts[
j]) && (aprefix ==
atts[
j+1]))
9576 if (
j < nbatts)
continue;
9578 if ((
atts ==
NULL) || (nbatts + 5 > maxatts)) {
9586 atts[nbatts++] = attname;
9587 atts[nbatts++] = aprefix;
9588 if (aprefix ==
NULL)
9597 "standalone: attribute %s on %s defaulted from external subset\n",
9598 attname, localname);
9609 for (
i = 0;
i < nbatts;
i += 5) {
9615 if (nsname ==
NULL) {
9617 "Namespace prefix %s for %s on %s is not defined\n",
9620 atts[
i + 2] = nsname;
9629 for (
j = 0;
j <
i;
j += 5) {
9635 if ((nsname !=
NULL) && (
atts[
j + 2] == nsname)) {
9637 "Namespaced Attribute %s in '%s' redefined\n",
9648 "Namespace prefix %s on %s is not defined\n",
9657 if ((ctxt->
sax !=
NULL) && (ctxt->
sax->startElementNs !=
NULL) &&
9661 nsname, nbNs, &ctxt->
nsTab[ctxt->
nsNr - 2 * nbNs],
9662 nbatts / 5, nbdef,
atts);
9665 nsname, 0,
NULL, nbatts / 5, nbdef,
atts);
9673 for (
i = 3,
j = 0;
j < nratts;
i += 5,
j++)
9701 if ((
RAW !=
'<') || (
NXT(1) !=
'/')) {
9733 "Opening and ending tag mismatch: %s line %d and %s\n",
9778 if (
CMP9(
CUR_PTR,
'<',
'!',
'[',
'C',
'D',
'A',
'T',
'A',
'[')) {
9805 ((
r !=
']') || (
s !=
']') || (
cur !=
'>'))) {
9837 "CData section too big found\n");
9846 "CData section not finished\n%.50s\n",
buf);
9856 if (ctxt->
sax->cdataBlock !=
NULL)
9858 else if (ctxt->
sax->characters !=
NULL)
9874 int nameNr = ctxt->
nameNr;
9877 while ((
RAW != 0) &&
9886 if ((*
cur ==
'<') && (
cur[1] ==
'?')) {
9894 else if (
CMP9(
CUR_PTR,
'<',
'!',
'[',
'C',
'D',
'A',
'T',
'A',
'[')) {
9901 else if ((*
cur ==
'<') && (
NXT(1) ==
'!') &&
9902 (
NXT(2) ==
'-') && (
NXT(3) ==
'-')) {
9910 else if (*
cur ==
'<') {
9911 if (
NXT(1) ==
'/') {
9912 if (ctxt->
nameNr <= nameNr)
9925 else if (*
cur ==
'&') {
9941 "detected an error in element content\n");
9959 int nameNr = ctxt->
nameNr;
9967 "Premature end of data in tag %s line %d\n",
9999 "Premature end of data in tag %s line %d\n",
10020 int line, tlen = 0;
10022 int nsNr = ctxt->
nsNr;
10027 "Excessive depth in document: %d use XML_PARSE_HUGE option\n",
10042 else if (*ctxt->
space == -2)
10048#ifdef LIBXML_SAX1_ENABLED
10052#ifdef LIBXML_SAX1_ENABLED
10054 name = xmlParseStartTag(ctxt);
10065#ifdef LIBXML_VALID_ENABLED
10079 if ((
RAW ==
'/') && (
NXT(1) ==
'>')) {
10085#ifdef LIBXML_SAX1_ENABLED
10094 if (nsNr != ctxt->
nsNr)
10109 "Couldn't find end of Start Tag %s line %d\n",
10118 if (nsNr != ctxt->
nsNr)
10158#ifdef LIBXML_SAX1_ENABLED
10160 xmlParseEndTag1(ctxt, 0);
10200 if (!((
cur >=
'0') && (
cur <=
'9'))) {
10214 while ((
cur >=
'0') && (
cur <=
'9')) {
10252 if (
CMP7(
CUR_PTR,
'v',
'e',
'r',
's',
'i',
'o',
'n')) {
10268 }
else if (
RAW ==
'\''){
10300 if (((
cur >=
'a') && (
cur <=
'z')) ||
10301 ((
cur >=
'A') && (
cur <=
'Z'))) {
10311 while (((
cur >=
'a') && (
cur <=
'z')) ||
10312 ((
cur >=
'A') && (
cur <=
'Z')) ||
10313 ((
cur >=
'0') && (
cur <=
'9')) ||
10314 (
cur ==
'.') || (
cur ==
'_') ||
10362 if (
CMP8(
CUR_PTR,
'e',
'n',
'c',
'o',
'd',
'i',
'n',
'g')) {
10380 }
else if (
RAW ==
'\''){
10418 "Document labelled UTF-16 but has UTF-8 content\n");
10450 "Unsupported encoding %s\n",
encoding);
10491 int standalone = -2;
10494 if (
CMP10(
CUR_PTR,
's',
't',
'a',
'n',
'd',
'a',
'l',
'o',
'n',
'e')) {
10499 return(standalone);
10505 if ((
RAW ==
'n') && (
NXT(1) ==
'o')) {
10508 }
else if ((
RAW ==
'y') && (
NXT(1) ==
'e') &&
10519 }
else if (
RAW ==
'"'){
10521 if ((
RAW ==
'n') && (
NXT(1) ==
'o')) {
10524 }
else if ((
RAW ==
'y') && (
NXT(1) ==
'e') &&
10539 return(standalone);
10569 "Blank needed after '<?xml'\n");
10586 "Unsupported version '%s'\n",
10591 "Unsupported version '%s'\n",
10595 "Unsupported version '%s'\n",
10609 if ((
RAW ==
'?') && (
NXT(1) ==
'>')) {
10628 if ((
RAW ==
'?') && (
NXT(1) ==
'>')) {
10644 if ((
RAW ==
'?') && (
NXT(1) ==
'>')) {
10646 }
else if (
RAW ==
'>') {
10671 if ((
RAW ==
'<') && (
NXT(1) ==
'?')) {
10716 if ((ctxt->
sax) && (ctxt->
sax->setDocumentLocator))
10790 if (
CMP9(
CUR_PTR,
'<',
'!',
'D',
'O',
'C',
'T',
'Y',
'P',
'E')) {
10805 if ((ctxt->
sax !=
NULL) && (ctxt->
sax->externalSubset !=
NULL) &&
10825 "Start tag expected, '<' not found\n");
10846 if ((ctxt->
sax) && (ctxt->
sax->endDocument !=
NULL))
10903 if ((ctxt->
sax) && (ctxt->
sax->setDocumentLocator))
10964 if ((
RAW ==
'<') && (
NXT(1) ==
'/')) {
10966 }
else if (
RAW != 0) {
10973 if ((ctxt->
sax) && (ctxt->
sax->endDocument !=
NULL))
10980#ifdef LIBXML_PUSH_ENABLED
11011 if (
in ==
NULL)
return(-1);
11013 if (
base < 0)
return(-1);
11024 if (third)
len -= 2;
11030 (
buf[
base + 2] != third))
continue;
11031 }
else if (
next != 0) {
11038 "PP: lookup '%c' found at %d\n",
11040 else if (third == 0)
11042 "PP: lookup '%c%c' found at %d\n",
11046 "PP: lookup '%c%c%c' found at %d\n",
11049 return(
base - (
in->cur -
in->base));
11056 "PP: lookup '%c' failed\n",
first);
11057 else if (third == 0)
11059 "PP: lookup '%c%c' failed\n",
first,
next);
11062 "PP: lookup '%c%c%c' failed\n",
first,
next, third);
11080 if ((ctxt ==
NULL) || (lastlt ==
NULL) || (lastgt ==
NULL)) {
11082 "Internal error: xmlParseGetLasts\n");
11088 while ((tmp >= ctxt->
input->
base) && (*tmp !=
'<')) tmp--;
11089 if (tmp < ctxt->
input->base) {
11095 while ((tmp < ctxt->
input->end) && (*tmp !=
'>')) {
11096 if (*tmp ==
'\'') {
11098 while ((tmp < ctxt->
input->end) && (*tmp !=
'\'')) tmp++;
11099 if (tmp < ctxt->
input->end) tmp++;
11100 }
else if (*tmp ==
'"') {
11102 while ((tmp < ctxt->
input->end) && (*tmp !=
'"')) tmp++;
11103 if (tmp < ctxt->
input->end) tmp++;
11107 if (tmp < ctxt->
input->end)
11112 while ((tmp >= ctxt->
input->
base) && (*tmp !=
'>')) tmp--;
11141 if ((utf ==
NULL) || (
len <= 0))
11144 for (ix = 0; ix <
len;) {
11146 if ((
c & 0x80) == 0x00) {
11149 else if ((
c == 0xA) || (
c == 0xD) || (
c == 0x9))
11153 }
else if ((
c & 0xe0) == 0xc0) {
11155 if ((utf[ix+1] & 0xc0 ) != 0x80)
11157 codepoint = (utf[ix] & 0x1f) << 6;
11158 codepoint |= utf[ix+1] & 0x3f;
11162 }
else if ((
c & 0xf0) == 0xe0) {
11164 if (((utf[ix+1] & 0xc0) != 0x80) ||
11165 ((utf[ix+2] & 0xc0) != 0x80))
11167 codepoint = (utf[ix] & 0xf) << 12;
11168 codepoint |= (utf[ix+1] & 0x3f) << 6;
11169 codepoint |= utf[ix+2] & 0x3f;
11173 }
else if ((
c & 0xf8) == 0xf0) {
11175 if (((utf[ix+1] & 0xc0) != 0x80) ||
11176 ((utf[ix+2] & 0xc0) != 0x80) ||
11177 ((utf[ix+3] & 0xc0) != 0x80))
11179 codepoint = (utf[ix] & 0x7) << 18;
11180 codepoint |= (utf[ix+1] & 0x3f) << 12;
11181 codepoint |= (utf[ix+2] & 0x3f) << 6;
11182 codepoint |= utf[ix+3] & 0x3f;
11206 const xmlChar *lastlt, *lastgt;
11215 "PP: try EOF\n");
break;
11218 "PP: try START\n");
break;
11221 "PP: try MISC\n");
break;
11224 "PP: try COMMENT\n");
break;
11227 "PP: try PROLOG\n");
break;
11230 "PP: try START_TAG\n");
break;
11233 "PP: try CONTENT\n");
break;
11236 "PP: try CDATA_SECTION\n");
break;
11239 "PP: try END_TAG\n");
break;
11242 "PP: try ENTITY_DECL\n");
break;
11245 "PP: try ENTITY_VALUE\n");
break;
11248 "PP: try ATTRIBUTE_VALUE\n");
break;
11251 "PP: try DTD\n");
break;
11254 "PP: try EPILOG\n");
break;
11257 "PP: try PI\n");
break;
11260 "PP: try IGNORE\n");
break;
11269 xmlParseGetLasts(ctxt, &lastlt, &lastgt);
11341 if ((ctxt->
sax) && (ctxt->
sax->setDocumentLocator))
11348 "PP: entering EOF\n");
11350 if ((ctxt->
sax) && (ctxt->
sax->endDocument !=
NULL))
11354 if ((
cur ==
'<') && (
next ==
'?')) {
11358 (xmlParseLookupSequence(ctxt,
'?',
'>', 0) < 0))
11360 if ((ctxt->
sax) && (ctxt->
sax->setDocumentLocator))
11363 if ((ctxt->
input->
cur[2] ==
'x') &&
11370 "PP: Parsing XML Decl\n");
11385 if ((ctxt->
sax) && (ctxt->
sax->startDocument) &&
11391 "PP: entering MISC\n");
11395 if ((ctxt->
sax) && (ctxt->
sax->startDocument) &&
11401 "PP: entering MISC\n");
11405 if ((ctxt->
sax) && (ctxt->
sax->setDocumentLocator))
11413 if ((ctxt->
sax) && (ctxt->
sax->startDocument) &&
11419 "PP: entering MISC\n");
11428 int nsNr = ctxt->
nsNr;
11436 if ((ctxt->
sax) && (ctxt->
sax->endDocument !=
NULL))
11445 }
else if (xmlParseLookupSequence(ctxt,
'>', 0, 0) < 0) {
11451 else if (*ctxt->
space == -2)
11455#ifdef LIBXML_SAX1_ENABLED
11459#ifdef LIBXML_SAX1_ENABLED
11461 name = xmlParseStartTag(ctxt);
11468 if ((ctxt->
sax) && (ctxt->
sax->endDocument !=
NULL))
11472#ifdef LIBXML_VALID_ENABLED
11486 if ((
RAW ==
'/') && (
NXT(1) ==
'>')) {
11491 (ctxt->
sax->endElementNs !=
NULL) &&
11495 if (ctxt->
nsNr - nsNr > 0)
11497#ifdef LIBXML_SAX1_ENABLED
11500 (ctxt->
sax->endElement !=
NULL) &&
11508 if (ctxt->
nameNr == 0) {
11520 "Couldn't find end of Start Tag %s\n",
11533 unsigned long cons;
11541 if ((
cur ==
'<') && (
next ==
'/')) {
11544 }
else if ((
cur ==
'<') && (
next ==
'?')) {
11546 (xmlParseLookupSequence(ctxt,
'?',
'>', 0) < 0)) {
11553 }
else if ((
cur ==
'<') && (
next !=
'!')) {
11556 }
else if ((
cur ==
'<') && (
next ==
'!') &&
11564 term = xmlParseLookupSequence(ctxt,
'-',
'-',
'>');
11573 }
else if ((
cur ==
'<') && (ctxt->
input->
cur[1] ==
'!') &&
11584 }
else if ((
cur ==
'<') && (
next ==
'!') &&
11587 }
else if (
cur ==
'&') {
11589 (xmlParseLookupSequence(ctxt,
';', 0, 0) < 0))
11609 if ((lastlt ==
NULL) ||
11612 }
else if (xmlParseLookupSequence(ctxt,
11623 "detected an error in element content\n");
11637 }
else if (xmlParseLookupSequence(ctxt,
'>', 0, 0) < 0) {
11645#ifdef LIBXML_SAX1_ENABLED
11647 xmlParseEndTag1(ctxt, 0);
11651 }
else if (ctxt->
nameNr == 0) {
11664 base = xmlParseLookupSequence(ctxt,
']',
']',
'>');
11669 tmp = xmlCheckCdataPush(ctxt->
input->
cur,
11674 goto encoding_error;
11677 if (ctxt->
sax->cdataBlock !=
NULL)
11680 else if (ctxt->
sax->characters !=
NULL)
11694 if ((tmp < 0) || (tmp !=
base)) {
11697 goto encoding_error;
11700 (ctxt->
sax->cdataBlock !=
NULL) &&
11714 if (ctxt->
sax->cdataBlock !=
NULL)
11717 else if (ctxt->
sax->characters !=
NULL)
11728 "PP: entering CONTENT\n");
11745 if ((
cur ==
'<') && (
next ==
'?')) {
11747 (xmlParseLookupSequence(ctxt,
'?',
'>', 0) < 0)) {
11753 "PP: Parsing PI\n");
11761 }
else if ((
cur ==
'<') && (
next ==
'!') &&
11765 (xmlParseLookupSequence(ctxt,
'-',
'-',
'>') < 0)) {
11771 "PP: Parsing Comment\n");
11779 }
else if ((
cur ==
'<') && (
next ==
'!') &&
11788 (xmlParseLookupSequence(ctxt,
'>', 0, 0) < 0)) {
11794 "PP: Parsing internal subset\n");
11806 "PP: entering DTD\n");
11814 (ctxt->
sax->externalSubset !=
NULL))
11823 "PP: entering PROLOG\n");
11826 }
else if ((
cur ==
'<') && (
next ==
'!') &&
11832 xmlParseGetLasts(ctxt, &lastlt, &lastgt);
11835 "PP: entering START_TAG\n");
11850 if ((
cur ==
'<') && (
next ==
'?')) {
11852 (xmlParseLookupSequence(ctxt,
'?',
'>', 0) < 0)) {
11858 "PP: Parsing PI\n");
11865 }
else if ((
cur ==
'<') && (
next ==
'!') &&
11868 (xmlParseLookupSequence(ctxt,
'-',
'-',
'>') < 0)) {
11874 "PP: Parsing Comment\n");
11881 }
else if ((
cur ==
'<') && (
next ==
'!') &&
11888 xmlParseGetLasts(ctxt, &lastlt, &lastgt);
11891 "PP: entering START_TAG\n");
11906 if ((
cur ==
'<') && (
next ==
'?')) {
11908 (xmlParseLookupSequence(ctxt,
'?',
'>', 0) < 0)) {
11914 "PP: Parsing PI\n");
11921 }
else if ((
cur ==
'<') && (
next ==
'!') &&
11924 (xmlParseLookupSequence(ctxt,
'-',
'-',
'>') < 0)) {
11930 "PP: Parsing Comment\n");
11937 }
else if ((
cur ==
'<') && (
next ==
'!') &&
11945 "PP: entering EOF\n");
11947 if ((ctxt->
sax) && (ctxt->
sax->endDocument !=
NULL))
11969 if (
base < 0)
return(0);
11983 if (((
unsigned int)
base + 4 < use) &&
12018 if ((
unsigned int)
base +1 >= use)
12025 for (
i = 1; (
unsigned int)
base +
i < use;
i++) {
12030 goto found_end_int_subset;
12036 goto not_end_of_int_subset;
12045not_end_of_int_subset:
12058 "PP: lookup of int subset end filed\n");
12062found_end_int_subset:
12069 (ctxt->
sax->externalSubset !=
NULL))
12080 "PP: entering PROLOG\n");
12086 "PP: internal error, state == COMMENT\n");
12090 "PP: entering CONTENT\n");
12095 "PP: internal error, state == IGNORE");
12099 "PP: entering DTD\n");
12104 "PP: internal error, state == PI\n");
12108 "PP: entering CONTENT\n");
12113 "PP: internal error, state == ENTITY_DECL\n");
12117 "PP: entering DTD\n");
12122 "PP: internal error, state == ENTITY_VALUE\n");
12126 "PP: entering DTD\n");
12131 "PP: internal error, state == ATTRIBUTE_VALUE\n");
12135 "PP: entering START_TAG\n");
12140 "PP: internal error, state == SYSTEM_LITERAL\n");
12144 "PP: entering START_TAG\n");
12149 "PP: internal error, state == PUBLIC_LITERAL\n");
12153 "PP: entering START_TAG\n");
12171 "Input is not proper UTF-8, indicate encoding !\n%s",
12242 size_t old_avail = 0;
12248 return(ctxt->
errNo);
12275 unsigned int len = 45;
12296 if ((
unsigned int)
size >
len) {
12328 "xmlParseChunk: encoder error\n");
12336 xmlParseTryOrFinish(ctxt, 0);
12347 (old_avail == 0) || (
avail == 0) ||
12348 (xmlParseCheckTransition(ctxt,
12349 (
const char *)&ctxt->
input->
base[old_avail],
12350 avail - old_avail)))
12354 return(ctxt->
errNo);
12364 return(ctxt->
errNo);
12372 if ((end_in_lf == 1) && (ctxt->
input !=
NULL) &&
12406 if ((ctxt->
sax) && (ctxt->
sax->endDocument !=
NULL))
12460 if (ctxt ==
NULL) {
12467#ifdef LIBXML_SAX1_ENABLED
12483 if (user_data !=
NULL)
12493 if (inputStream ==
NULL) {
12616 if (ioclose !=
NULL)
12622 if (ctxt ==
NULL) {
12627#ifdef LIBXML_SAX1_ENABLED
12643 if (user_data !=
NULL)
12648 if (inputStream ==
NULL) {
12657#ifdef LIBXML_VALID_ENABLED
12688 if (ctxt ==
NULL) {
12712 if (pinput ==
NULL) {
12778 tmp =
ret->children;
12779 while (tmp !=
NULL) {
12816 if ((ExternalID ==
NULL) && (SystemID ==
NULL))
return(
NULL);
12819 if (ctxt ==
NULL) {
12840 if ((SystemID !=
NULL) && (systemIdCanonic ==
NULL)) {
12855 if (systemIdCanonic !=
NULL)
12866 if (systemIdCanonic !=
NULL)
12876 input->filename = (
char *) systemIdCanonic;
12898 ExternalID, SystemID);
12909 tmp =
ret->children;
12910 while (tmp !=
NULL) {
12939xmlParseDTD(
const xmlChar *ExternalID,
const xmlChar *SystemID) {
12940 return(xmlSAXParseDTD(
NULL, ExternalID, SystemID));
12978 if (
ctx->userData ==
ctx)
12981 userData =
ctx->userData;
12983 userData,
ctx->depth + 1,
13017 if (((
depth > 40) &&
13035 oldsax = ctxt->
sax;
13037 if (user_data !=
NULL)
13042 if (newDoc ==
NULL) {
13059 if (newRoot ==
NULL) {
13061 ctxt->
sax = oldsax;
13071 ctxt->
myDoc = newDoc;
13074 newRoot->
doc = doc;
13105 "Version mismatch between document and entity\n");
13111 if (oldctxt !=
NULL) {
13119 ctxt->
vctxt.warning = oldctxt->
vctxt.warning;
13120 ctxt->
vctxt.userData = oldctxt->
vctxt.userData;
13149 if ((
RAW ==
'<') && (
NXT(1) ==
'/')) {
13151 }
else if (
RAW != 0) {
13159 if (ctxt->
errNo == 0)
13186 if (oldctxt !=
NULL)
13203 ctxt->
sax = oldsax;
13204 if (oldctxt !=
NULL) {
13225#ifdef LIBXML_SAX1_ENABLED
13276 return xmlParseBalancedChunkMemoryRecover( doc,
sax, user_data,
13277 depth,
string, lst, 0 );
13318 (oldctxt->
depth > 1024)) {
13325 if (
string ==
NULL)
13332 if (user_data !=
NULL)
13345 for (
i = 0;
i < oldctxt->
nsNr;
i += 2) {
13350 oldsax = ctxt->
sax;
13351 ctxt->
sax = oldctxt->
sax;
13359 if (newDoc ==
NULL) {
13360 ctxt->
sax = oldsax;
13368 ctxt->
myDoc = newDoc;
13375 if (newRoot ==
NULL) {
13376 ctxt->
sax = oldsax;
13379 if (newDoc !=
NULL) {
13404 if ((
RAW ==
'<') && (
NXT(1) ==
'/')) {
13406 }
else if (
RAW != 0) {
13414 if (ctxt->
errNo == 0)
13432#ifdef LIBXML_VALID_ENABLED
13436 oldctxt->
valid &= xmlValidateElement(&oldctxt->
vctxt,
13455 if (oldctxt !=
NULL)
13464 ctxt->
sax = oldsax;
13469 if (newDoc !=
NULL) {
13511 switch (
node->type) {
13545#ifdef LIBXML_HTML_ENABLED
13547 ctxt = htmlCreateMemoryParserCtxt((
char *)
data,
datalen);
13552 options |= HTML_PARSE_NOIMPLIED;
13581 if (hdlr !=
NULL) {
13596 if (fake ==
NULL) {
13610 const xmlChar *iprefix, *ihref;
13622 nsPush(ctxt, iprefix, ihref);
13638#ifdef LIBXML_HTML_ENABLED
13640 __htmlParseContent(ctxt);
13646 if ((
RAW ==
'<') && (
NXT(1) ==
'/')) {
13648 }
else if (
RAW != 0) {
13657 if (ctxt->
errNo == 0)
13704#ifdef LIBXML_SAX1_ENABLED
13748 if (
string ==
NULL)
13754 if (ctxt ==
NULL)
return(-1);
13757 oldsax = ctxt->
sax;
13759 if (user_data !=
NULL)
13763 if (newDoc ==
NULL) {
13785 if (newRoot ==
NULL) {
13787 ctxt->
sax = oldsax;
13798 ctxt->
myDoc = newDoc;
13800 ctxt->
myDoc = newDoc;
13817 if ( doc !=
NULL ){
13826 if ((
RAW ==
'<') && (
NXT(1) ==
'/')) {
13828 }
else if (
RAW != 0) {
13836 if (ctxt->
errNo == 0)
13844 if ((lst !=
NULL) && ((
ret == 0) || (recover == 1))) {
13862 ctxt->
sax = oldsax;
13895 if (ctxt ==
NULL) {
13935xmlParseEntity(
const char *
filename) {
13962 if (ctxt ==
NULL) {
13966 if (pctx !=
NULL) {
13984 if (inputStream ==
NULL) {
13997 if (inputStream ==
NULL) {
14058 if (ctxt ==
NULL) {
14068 if (inputStream ==
NULL) {
14098#ifdef LIBXML_SAX1_ENABLED
14127 if (ctxt ==
NULL) {
14151 ret->compression = 9;
14202 return(xmlSAXParseDoc(
NULL,
cur, 1));
14217xmlParseFile(
const char *
filename) {
14234xmlRecoverFile(
const char *
filename) {
14292 if (ctxt ==
NULL)
return -1;
14298 if (user_data !=
NULL)
14306 if (ctxt->
errNo != 0)
14375#ifdef LIBXML_SAX1_ENABLED
14502 if (ctxt ==
NULL)
return -1;
14508 if (user_data !=
NULL)
14516 if (ctxt->
errNo != 0)
14551#ifdef LIBXML_SAX1_ENABLED
14578 oldsax = ctxt->
sax;
14592 ctxt->
sax = oldsax;
14609 return(xmlSAXParseDoc(
NULL,
cur, 0));
14613#ifdef LIBXML_LEGACY_ENABLED
14621static xmlEntityReferenceFunc xmlEntityRefFunc =
NULL;
14635 if (xmlEntityRefFunc !=
NULL) {
14636 (*xmlEntityRefFunc) (ent, firstNode, lastNode);
14648xmlSetEntityReferenceFunc(xmlEntityReferenceFunc
func)
14650 xmlEntityRefFunc =
func;
14660#ifdef LIBXML_XPATH_ENABLED
14680#if defined(_WIN32) && (!defined(LIBXML_STATIC) || defined(LIBXML_STATIC_FOR_DLL))
14685#ifdef LIBXML_THREAD_ENABLED
14699#ifdef LIBXML_OUTPUT_ENABLED
14700 xmlRegisterDefaultOutputCallbacks();
14702#ifdef LIBXML_HTML_ENABLED
14703 htmlInitAutoClose();
14704 htmlDefaultSAXHandlerInit();
14706#ifdef LIBXML_XPATH_ENABLED
14710#ifdef LIBXML_THREAD_ENABLED
14744#ifdef LIBXML_CATALOG_ENABLED
14745 xmlCatalogCleanup();
14749#ifdef LIBXML_OUTPUT_ENABLED
14750 xmlCleanupOutputCallbacks();
14752#ifdef LIBXML_SCHEMAS_ENABLED
14753 xmlSchemaCleanupTypes();
14754 xmlRelaxNGCleanupTypes();
14762#if defined(HAVE_ATTRIBUTE_DESTRUCTOR) && !defined(LIBXML_STATIC) && \
14765ATTRIBUTE_DESTRUCTOR
14766xmlDestructor(
void) {
14789#define DICT_FREE(str) \
14790 if ((str) && ((!dict) || \
14791 (xmlDictOwns(dict, (const xmlChar *)(str)) == 0))) \
14792 xmlFree((char *)(str));
14861 ctxt->
vctxt.userData = ctxt;
14886#ifdef LIBXML_CATALOG_ENABLED
14888 xmlCatalogFreeLocal(ctxt->
catalogs);
14924 if (ctxt ==
NULL) {
14938 if (inputStream ==
NULL) {
14974 if (hdlr !=
NULL) {
15062 ctxt->
sax->fatalError =
NULL;
15065#ifdef LIBXML_SAX1_ENABLED
15067 ctxt->
sax->startElement = xmlSAX2StartElement;
15068 ctxt->
sax->endElement = xmlSAX2EndElement;
15069 ctxt->
sax->startElementNs =
NULL;
15070 ctxt->
sax->endElementNs =
NULL;
15071 ctxt->
sax->initialized = 1;
15084 ctxt->
sax->cdataBlock =
NULL;
15293 if (ctxt ==
NULL) {
15328 if (ioread ==
NULL)
15335 if (ioclose !=
NULL)
15340 if (ctxt ==
NULL) {
15523 if (ioread ==
NULL)
15534 if (ioclose !=
NULL)
XMLPUBFUN void XMLCALL xmlSAX2IgnorableWhitespace(void *ctx, const xmlChar *ch, int len)
XML_DEPRECATED XMLPUBFUN void XMLCALL xmlDefaultSAXHandlerInit(void)
XMLPUBFUN void XMLCALL xmlSAX2EntityDecl(void *ctx, const xmlChar *name, int type, const xmlChar *publicId, const xmlChar *systemId, xmlChar *content)
XMLPUBFUN xmlEntityPtr XMLCALL xmlSAX2GetEntity(void *ctx, const xmlChar *name)
ACPI_SIZE strlen(const char *String)
int strncmp(const char *String1, const char *String2, ACPI_SIZE Count)
pair cons(caddr_t car, pair cdr)
static void normalize(float vec[3])
_In_ uint16_t _Out_ ULONG * atts
int xmlBufIsEmpty(const xmlBufPtr buf)
int xmlBufResetInput(xmlBufPtr buf, xmlParserInputPtr input)
size_t xmlBufGetInputBase(xmlBufPtr buf, xmlParserInputPtr input)
int xmlBufSetInputBaseCur(xmlBufPtr buf, xmlParserInputPtr input, size_t base, size_t cur)
EXPORT int errmsg(char *msg, va_alist)
static const WCHAR quote[]
static const WCHAR version[]
UINT(* handler)(MSIPACKAGE *)
int __cdecl atexit(void(__cdecl *function)(void))
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
__kernel_ptrdiff_t ptrdiff_t
int xmlCharEncInput(xmlParserInputBufferPtr input, int flush)
XMLPUBFUN xmlCharEncodingHandlerPtr XMLCALL xmlFindCharEncodingHandler(const char *name)
XML_DEPRECATED XMLPUBFUN void XMLCALL xmlInitCharEncodingHandlers(void)
XML_DEPRECATED XMLPUBFUN void XMLCALL xmlCleanupCharEncodingHandlers(void)
XMLPUBFUN xmlCharEncoding XMLCALL xmlDetectCharEncoding(const unsigned char *in, int len)
@ XML_EXTERNAL_GENERAL_PARSED_ENTITY
@ XML_INTERNAL_PREDEFINED_ENTITY
@ XML_EXTERNAL_GENERAL_UNPARSED_ENTITY
@ XML_INTERNAL_GENERAL_ENTITY
@ XML_INTERNAL_PARAMETER_ENTITY
@ XML_EXTERNAL_PARAMETER_ENTITY
XMLPUBFUN xmlEntityPtr XMLCALL xmlGetPredefinedEntity(const xmlChar *name)
GLint GLint GLsizei GLsizei GLsizei depth
GLuint GLuint GLsizei count
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLdouble GLdouble GLdouble r
GLdouble GLdouble GLdouble GLdouble q
GLenum GLuint GLenum GLsizei const GLchar * buf
GLboolean GLenum GLenum GLvoid * values
GLenum GLenum GLenum input
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
_Check_return_opt_ _CRTIMP int __cdecl fprintf(_Inout_ FILE *_File, _In_z_ _Printf_format_string_ const char *_Format,...)
int const JOCTET unsigned int datalen
void MSVCRT() terminate()
int xmlInputReadCallbackNop(void *context, char *buffer, int len)
void void __xmlGlobalInitMutexLock(void)
void __xmlGlobalInitMutexUnlock(void)
#define memcpy(s1, s2, n)
#define memmove(s1, s2, n)
struct task_struct * current
static const ASMPROP_RES defaults[ASM_NAME_MAX_PARAMS]
#define cmp(status, error)
static UINT PSTR DWORD size
INTERNETFEATURELIST feature
void __xmlErrEncoding(xmlParserCtxtPtr ctxt, xmlParserErrors xmlerr, const char *msg, const xmlChar *str1, const xmlChar *str2)
void xmlErrMemory(xmlParserCtxtPtr ctxt, const char *extra)
#define XML_MAX_TEXT_LENGTH
#define XML_SUBSTITUTE_PEREF
#define XML_SUBSTITUTE_REF
#define XML_MAX_NAME_LENGTH
XMLPUBFUN xmlParserInputPtr XMLCALL xmlNewInputStream(xmlParserCtxtPtr ctxt)
#define IS_PUBIDCHAR_CH(c)
XMLPUBFUN int XMLCALL xmlSwitchEncoding(xmlParserCtxtPtr ctxt, xmlCharEncoding enc)
#define XML_MAX_LOOKUP_LIMIT
XMLPUBFUN xmlParserInputPtr XMLCALL xmlNewEntityInputStream(xmlParserCtxtPtr ctxt, xmlEntityPtr entity)
XMLPUBFUN int XMLCALL xmlSwitchToEncoding(xmlParserCtxtPtr ctxt, xmlCharEncodingHandlerPtr handler)
XMLPUBFUN void XMLCALL xmlParserInputShrink(xmlParserInputPtr in)
XMLPUBFUN int XMLCALL xmlCopyChar(int len, xmlChar *out, int val)
XMLPUBFUN void XMLCALL xmlFreeInputStream(xmlParserInputPtr input)
static unsigned __int64 next
XML_DEPRECATED XMLPUBFUN int XMLCALL xmlInitializeDict(void)
XMLPUBFUN const xmlChar *XMLCALL xmlDictLookup(xmlDictPtr dict, const xmlChar *name, int len)
XML_DEPRECATED XMLPUBFUN void XMLCALL xmlDictCleanup(void)
XMLPUBFUN int XMLCALL xmlDictOwns(xmlDictPtr dict, const xmlChar *str)
XMLPUBFUN size_t XMLCALL xmlDictSetLimit(xmlDictPtr dict, size_t limit)
XMLPUBFUN void XMLCALL xmlDictFree(xmlDictPtr dict)
XMLPUBFUN int XMLCALL xmlDictReference(xmlDictPtr dict)
XMLPUBVAR xmlMallocFunc xmlMallocAtomic
XML_DEPRECATED XMLPUBFUN void XMLCALL xmlInitGlobals(void)
XMLPUBVAR int xmlParserDebugEntities
XMLPUBVAR xmlMallocFunc xmlMalloc
XML_DEPRECATED XMLPUBFUN void XMLCALL xmlCleanupGlobals(void)
XMLPUBVAR xmlFreeFunc xmlFree
XMLPUBVAR void * xmlGenericErrorContext
XMLPUBVAR xmlReallocFunc xmlRealloc
XMLPUBVAR xmlSAXLocator xmlDefaultSAXLocator
XMLPUBVAR xmlSAXHandlerV1 xmlDefaultSAXHandler
XMLPUBVAR xmlGenericErrorFunc xmlGenericError
XMLPUBFUN int XMLCALL xmlHashUpdateEntry2(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, void *userdata, xmlHashDeallocator f)
XMLPUBFUN int XMLCALL xmlHashAddEntry2(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, void *userdata)
XMLPUBFUN void XMLCALL xmlHashFree(xmlHashTablePtr table, xmlHashDeallocator f)
XMLPUBFUN int XMLCALL xmlHashRemoveEntry2(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, xmlHashDeallocator f)
XMLPUBFUN xmlHashTablePtr XMLCALL xmlHashCreateDict(int size, xmlDictPtr dict)
XMLPUBFUN void XMLCALL xmlHashScanFull(xmlHashTablePtr table, xmlHashScannerFull f, void *data)
XMLPUBFUN int XMLCALL xmlHashSize(xmlHashTablePtr table)
XMLPUBFUN void *XMLCALL xmlHashQLookup2(xmlHashTablePtr table, const xmlChar *name, const xmlChar *prefix, const xmlChar *name2, const xmlChar *prefix2)
XMLPUBFUN void *XMLCALL xmlHashLookup2(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2)
XMLPUBFUN void XMLCALL xmlHashDefaultDeallocator(void *entry, const xmlChar *name)
@ XML_PARSER_PUBLIC_LITERAL
@ XML_PARSER_SYSTEM_LITERAL
@ XML_PARSER_ATTRIBUTE_VALUE
@ XML_PARSER_ENTITY_VALUE
@ XML_PARSER_CDATA_SECTION
XMLPUBFUN xmlParserInputPtr XMLCALL xmlNewIOInputStream(xmlParserCtxtPtr ctxt, xmlParserInputBufferPtr input, xmlCharEncoding enc)
#define XML_COMPLETE_ATTRS
#define XML_DEFAULT_VERSION
XMLPUBFUN int XMLCALL xmlParserInputGrow(xmlParserInputPtr in, int len)
XMLPUBFUN void XMLCALL xmlFreeParserCtxt(xmlParserCtxtPtr ctxt)
XMLPUBFUN void XMLCALL xmlParserAddNodeInfo(xmlParserCtxtPtr ctxt, const xmlParserNodeInfoPtr info)
XMLPUBFUN void XMLCALL xmlClearParserCtxt(xmlParserCtxtPtr ctxt)
XMLPUBFUN xmlParserInputPtr XMLCALL xmlLoadExternalEntity(const char *URL, const char *ID, xmlParserCtxtPtr ctxt)
XMLPUBFUN void XMLCALL xmlInitNodeInfoSeq(xmlParserNodeInfoSeqPtr seq)
XMLPUBFUN xmlParserCtxtPtr XMLCALL xmlNewParserCtxt(void)
XMLPUBFUN xmlNodePtr XMLCALL xmlAddChild(xmlNodePtr parent, xmlNodePtr cur)
XMLPUBFUN void XMLCALL xmlBufferFree(xmlBufferPtr buf)
XMLPUBFUN xmlDtdPtr XMLCALL xmlNewDtd(xmlDocPtr doc, const xmlChar *name, const xmlChar *ExternalID, const xmlChar *SystemID)
XMLPUBFUN xmlDtdPtr XMLCALL xmlCreateIntSubset(xmlDocPtr doc, const xmlChar *name, const xmlChar *ExternalID, const xmlChar *SystemID)
@ XML_ATTRIBUTE_ENUMERATION
XMLPUBFUN xmlNodePtr XMLCALL xmlGetLastChild(const xmlNode *parent)
XMLPUBFUN void XMLCALL xmlFreeDoc(xmlDocPtr cur)
XMLPUBFUN int XMLCALL xmlBufferAdd(xmlBufferPtr buf, const xmlChar *str, int len)
XMLPUBFUN xmlNodePtr XMLCALL xmlNewDocNode(xmlDocPtr doc, xmlNsPtr ns, const xmlChar *name, const xmlChar *content)
XMLPUBFUN size_t XMLCALL xmlBufUse(const xmlBufPtr buf)
XMLPUBFUN int XMLCALL xmlNodeIsText(const xmlNode *node)
XMLPUBFUN xmlChar *XMLCALL xmlBuildQName(const xmlChar *ncname, const xmlChar *prefix, xmlChar *memory, int len)
XMLPUBFUN xmlDocPtr XMLCALL xmlNewDoc(const xmlChar *version)
xmlSAXHandler * xmlSAXHandlerPtr
@ XML_ELEMENT_CONTENT_OPT
@ XML_ELEMENT_CONTENT_ONCE
@ XML_ELEMENT_CONTENT_PLUS
@ XML_ELEMENT_CONTENT_MULT
XMLPUBFUN void XMLCALL xmlUnlinkNode(xmlNodePtr cur)
XMLPUBFUN xmlBufferPtr XMLCALL xmlBufferCreate(void)
XMLPUBFUN xmlNsPtr XMLCALL xmlSearchNsByHref(xmlDocPtr doc, xmlNodePtr node, const xmlChar *href)
XMLPUBFUN void XMLCALL xmlSetTreeDoc(xmlNodePtr tree, xmlDocPtr doc)
@ XML_BUFFER_ALLOC_DOUBLEIT
xmlParserCtxt * xmlParserCtxtPtr
#define XML_XML_NAMESPACE
XMLPUBFUN xmlNodePtr XMLCALL xmlNewDocComment(xmlDocPtr doc, const xmlChar *content)
XMLPUBFUN void XMLCALL xmlFreeNodeList(xmlNodePtr cur)
@ XML_ELEMENT_TYPE_ELEMENT
XMLPUBFUN void XMLCALL xmlFreeNode(xmlNodePtr cur)
XMLPUBFUN const xmlChar *XMLCALL xmlSplitQName3(const xmlChar *name, int *len)
XMLPUBFUN xmlNodePtr XMLCALL xmlAddChildList(xmlNodePtr parent, xmlNodePtr cur)
@ XML_ELEMENT_CONTENT_PCDATA
@ XML_ELEMENT_CONTENT_ELEMENT
@ XML_ELEMENT_CONTENT_SEQ
XMLPUBFUN void XMLCALL xmlBufferSetAllocationScheme(xmlBufferPtr buf, xmlBufferAllocationScheme scheme)
XMLPUBFUN xmlChar *XMLCALL xmlBufContent(const xmlBuf *buf)
XMLPUBFUN xmlNodePtr XMLCALL xmlDocCopyNode(xmlNodePtr node, xmlDocPtr doc, int recursive)
static void xmlParseCommentComplex(xmlParserCtxtPtr ctxt, xmlChar *buf, size_t len, size_t size)
#define CMP10(s, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10)
void xmlStopParser(xmlParserCtxtPtr ctxt)
xmlChar * xmlParseNmtoken(xmlParserCtxtPtr ctxt)
static const char *const xmlW3CPIs[]
xmlChar * xmlParseVersionNum(xmlParserCtxtPtr ctxt)
int xmlParseDefaultDecl(xmlParserCtxtPtr ctxt, xmlChar **value)
int xmlHasFeature(xmlFeature feature)
static void xmlSHRINK(xmlParserCtxtPtr ctxt)
static xmlChar * xmlParseAttValueInternal(xmlParserCtxtPtr ctxt, int *len, int *alloc, int normalize)
static xmlChar * xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize)
xmlDocPtr xmlCtxtReadMemory(xmlParserCtxtPtr ctxt, const char *buffer, int size, const char *URL, const char *encoding, int options)
void xmlParseElement(xmlParserCtxtPtr ctxt)
xmlChar * xmlParseAttValue(xmlParserCtxtPtr ctxt)
xmlParserErrors xmlParseInNodeContext(xmlNodePtr node, const char *data, int datalen, int options, xmlNodePtr *lst)
static void xmlAddDefAttrs(xmlParserCtxtPtr ctxt, const xmlChar *fullname, const xmlChar *fullattr, const xmlChar *value)
static const xmlChar * xmlParseStartTag2(xmlParserCtxtPtr ctxt, const xmlChar **pref, const xmlChar **URI, int *tlen)
static xmlParserErrors xmlParseExternalEntityPrivate(xmlDocPtr doc, xmlParserCtxtPtr oldctxt, xmlSAXHandlerPtr sax, void *user_data, int depth, const xmlChar *URL, const xmlChar *ID, xmlNodePtr *list)
xmlChar * xmlParseExternalID(xmlParserCtxtPtr ctxt, xmlChar **publicID, int strict)
xmlParserInputPtr inputPop(xmlParserCtxtPtr ctxt)
xmlDocPtr xmlCtxtReadDoc(xmlParserCtxtPtr ctxt, const xmlChar *cur, const char *URL, const char *encoding, int options)
int xmlSkipBlankChars(xmlParserCtxtPtr ctxt)
int nodePush(xmlParserCtxtPtr ctxt, xmlNodePtr value)
static const xmlChar * xmlParseNCName(xmlParserCtxtPtr ctxt)
static int nsPush(xmlParserCtxtPtr ctxt, const xmlChar *prefix, const xmlChar *URL)
static int xmlCtxtGrowAttrs(xmlParserCtxtPtr ctxt, int nr)
static const xmlChar * xmlParseAttribute2(xmlParserCtxtPtr ctxt, const xmlChar *pref, const xmlChar *elem, const xmlChar **prefix, xmlChar **value, int *len, int *alloc)
static int areBlanks(xmlParserCtxtPtr ctxt, const xmlChar *str, int len, int blank_chars)
xmlEnumerationPtr xmlParseNotationType(xmlParserCtxtPtr ctxt)
xmlDocPtr xmlReadMemory(const char *buffer, int size, const char *URL, const char *encoding, int options)
static void xmlParseEndTag2(xmlParserCtxtPtr ctxt, const xmlStartTag *tag)
#define GROW_PARSE_ATT_VALUE_INTERNAL(ctxt, in, start, end)
xmlDocPtr xmlReadFd(int fd, const char *URL, const char *encoding, int options)
static int xmlParserEntityCheck(xmlParserCtxtPtr ctxt, size_t size, xmlEntityPtr ent, size_t replacement)
static xmlElementContentPtr xmlParseElementChildrenContentDeclPriv(xmlParserCtxtPtr ctxt, int inputchk, int depth)
static xmlChar * xmlParseStringName(xmlParserCtxtPtr ctxt, const xmlChar **str)
static xmlChar * xmlAttrNormalizeSpace(const xmlChar *src, xmlChar *dst)
static xmlParserErrors xmlParseBalancedChunkMemoryInternal(xmlParserCtxtPtr oldctxt, const xmlChar *string, void *user_data, xmlNodePtr *lst)
static void xmlParseConditionalSections(xmlParserCtxtPtr ctxt)
static int spacePop(xmlParserCtxtPtr ctxt)
static const xmlChar * xmlParseNCNameComplex(xmlParserCtxtPtr ctxt)
static const xmlChar * xmlParseNameAndCompare(xmlParserCtxtPtr ctxt, xmlChar const *other)
void xmlParseTextDecl(xmlParserCtxtPtr ctxt)
int xmlCtxtResetPush(xmlParserCtxtPtr ctxt, const char *chunk, int size, const char *filename, const char *encoding)
#define CMP4(s, c1, c2, c3, c4)
int xmlParseCtxtExternalEntity(xmlParserCtxtPtr ctx, const xmlChar *URL, const xmlChar *ID, xmlNodePtr *lst)
static void xmlFatalErr(xmlParserCtxtPtr ctxt, xmlParserErrors error, const char *info)
static int xmlParserInitialized
void xmlParseDocTypeDecl(xmlParserCtxtPtr ctxt)
static int xmlParseElementStart(xmlParserCtxtPtr ctxt)
xmlDocPtr xmlReadIO(xmlInputReadCallback ioread, xmlInputCloseCallback ioclose, void *ioctx, const char *URL, const char *encoding, int options)
xmlDocPtr xmlReadDoc(const xmlChar *cur, const char *URL, const char *encoding, int options)
#define CMP7(s, c1, c2, c3, c4, c5, c6, c7)
int inputPush(xmlParserCtxtPtr ctxt, xmlParserInputPtr value)
static void xmlParseElementEnd(xmlParserCtxtPtr ctxt)
unsigned int xmlParserMaxDepth
static void xmlParseInternalSubset(xmlParserCtxtPtr ctxt)
xmlParserCtxtPtr xmlCreateEntityParserCtxt(const xmlChar *URL, const xmlChar *ID, const xmlChar *base)
xmlChar * xmlParseEncName(xmlParserCtxtPtr ctxt)
#define XML_PARSER_BIG_BUFFER_SIZE
xmlChar xmlPopInput(xmlParserCtxtPtr ctxt)
xmlDocPtr xmlCtxtReadIO(xmlParserCtxtPtr ctxt, xmlInputReadCallback ioread, xmlInputCloseCallback ioclose, void *ioctx, const char *URL, const char *encoding, int options)
static void xmlParseCharDataComplex(xmlParserCtxtPtr ctxt, int cdata)
int xmlParseEnumeratedType(xmlParserCtxtPtr ctxt, xmlEnumerationPtr *tree)
xmlChar * xmlParseVersionInfo(xmlParserCtxtPtr ctxt)
const xmlChar * xmlParseName(xmlParserCtxtPtr ctxt)
static int xmlIsNameStartChar(xmlParserCtxtPtr ctxt, int c)
void xmlParserHandlePEReference(xmlParserCtxtPtr ctxt)
#define growBuffer(buffer, n)
int xmlParseExtParsedEnt(xmlParserCtxtPtr ctxt)
#define XML_PARSER_CHUNK_SIZE
#define XML_PARSER_BUFFER_SIZE
xmlDocPtr xmlCtxtReadFile(xmlParserCtxtPtr ctxt, const char *filename, const char *encoding, int options)
void xmlParseContent(xmlParserCtxtPtr ctxt)
#define CMP5(s, c1, c2, c3, c4, c5)
static const xmlChar * xmlGetNamespace(xmlParserCtxtPtr ctxt, const xmlChar *prefix)
int xmlPushInput(xmlParserCtxtPtr ctxt, xmlParserInputPtr input)
void xmlParseMisc(xmlParserCtxtPtr ctxt)
xmlElementContentPtr xmlParseElementMixedContentDecl(xmlParserCtxtPtr ctxt, int inputchk)
#define CMP8(s, c1, c2, c3, c4, c5, c6, c7, c8)
void xmlCleanupParser(void)
xmlParserCtxtPtr xmlCreateURLParserCtxt(const char *filename, int options)
static void xmlCleanSpecialAttr(xmlParserCtxtPtr ctxt)
int xmlCtxtUseOptions(xmlParserCtxtPtr ctxt, int options)
int xmlParseAttributeType(xmlParserCtxtPtr ctxt, xmlEnumerationPtr *tree)
xmlChar * xmlStringDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int what, xmlChar end, xmlChar end2, xmlChar end3)
xmlChar * xmlParseEntityValue(xmlParserCtxtPtr ctxt, xmlChar **orig)
void xmlParsePI(xmlParserCtxtPtr ctxt)
#define CMP6(s, c1, c2, c3, c4, c5, c6)
static const xmlChar * xmlParseQNameAndCompare(xmlParserCtxtPtr ctxt, xmlChar const *name, xmlChar const *prefix)
static int nsPop(xmlParserCtxtPtr ctxt, int nr)
void xmlParseCDSect(xmlParserCtxtPtr ctxt)
int xmlParseElementContentDecl(xmlParserCtxtPtr ctxt, const xmlChar *name, xmlElementContentPtr *result)
static int xmlParseStringCharRef(xmlParserCtxtPtr ctxt, const xmlChar **str)
static const xmlChar * xmlParseQName(xmlParserCtxtPtr ctxt, const xmlChar **prefix)
static void xmlCleanSpecialAttrCallback(void *payload, void *data, const xmlChar *fullname, const xmlChar *fullattr, const xmlChar *unused ATTRIBUTE_UNUSED)
static void xmlGROW(xmlParserCtxtPtr ctxt)
int xmlParseElementDecl(xmlParserCtxtPtr ctxt)
static xmlParserCtxtPtr xmlCreateEntityParserCtxtInternal(const xmlChar *URL, const xmlChar *ID, const xmlChar *base, xmlParserCtxtPtr pctx)
void xmlParseMarkupDecl(xmlParserCtxtPtr ctxt)
xmlChar * xmlParsePubidLiteral(xmlParserCtxtPtr ctxt)
xmlParserCtxtPtr xmlCreateMemoryParserCtxt(const char *buffer, int size)
static int nameNsPush(xmlParserCtxtPtr ctxt, const xmlChar *value, const xmlChar *prefix, const xmlChar *URI, int line, int nsNr)
void xmlParseEntityDecl(xmlParserCtxtPtr ctxt)
xmlEntityPtr xmlParseEntityRef(xmlParserCtxtPtr ctxt)
#define CMP9(s, c1, c2, c3, c4, c5, c6, c7, c8, c9)
static void xmlParseContentInternal(xmlParserCtxtPtr ctxt)
static void xmlDetectSAX2(xmlParserCtxtPtr ctxt)
#define COPY_BUF(l, b, i, v)
xmlParserCtxtPtr xmlCreateDocParserCtxt(const xmlChar *cur)
xmlDocPtr xmlCtxtReadFd(xmlParserCtxtPtr ctxt, int fd, const char *URL, const char *encoding, int options)
void xmlParseReference(xmlParserCtxtPtr ctxt)
static int spacePush(xmlParserCtxtPtr ctxt, int val)
static void xmlErrAttributeDup(xmlParserCtxtPtr ctxt, const xmlChar *prefix, const xmlChar *localname)
void xmlParsePEReference(xmlParserCtxtPtr ctxt)
static xmlDocPtr xmlDoRead(xmlParserCtxtPtr ctxt, const char *URL, const char *encoding, int options, int reuse)
static int xmlLoadEntityContent(xmlParserCtxtPtr ctxt, xmlEntityPtr entity)
void xmlParseComment(xmlParserCtxtPtr ctxt)
#define XML_PARSER_NON_LINEAR
xmlEnumerationPtr xmlParseEnumerationType(xmlParserCtxtPtr ctxt)
static xmlEntityPtr xmlParseStringEntityRef(xmlParserCtxtPtr ctxt, const xmlChar **str)
static void xmlAddSpecialAttr(xmlParserCtxtPtr ctxt, const xmlChar *fullname, const xmlChar *fullattr, int type)
static const unsigned char test_char_data[256]
xmlChar * xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len, int what, xmlChar end, xmlChar end2, xmlChar end3)
xmlParserCtxtPtr xmlCreateIOParserCtxt(xmlSAXHandlerPtr sax, void *user_data, xmlInputReadCallback ioread, xmlInputCloseCallback ioclose, void *ioctx, xmlCharEncoding enc)
xmlElementContentPtr xmlParseElementChildrenContentDecl(xmlParserCtxtPtr ctxt, int inputchk)
xmlDocPtr xmlReadFile(const char *filename, const char *encoding, int options)
static void xmlHaltParser(xmlParserCtxtPtr ctxt)
static int xmlCtxtUseOptionsInternal(xmlParserCtxtPtr ctxt, int options, const char *encoding)
static const xmlChar * xmlParseNameComplex(xmlParserCtxtPtr ctxt)
int xmlCheckLanguageID(const xmlChar *lang)
int xmlParseSDDecl(xmlParserCtxtPtr ctxt)
static int xmlIsNameChar(xmlParserCtxtPtr ctxt, int c)
void XMLCDECL xmlGenericErrorDefaultFunc(void *ctx, const char *msg,...)
#define XML_MAX_HUGE_LENGTH
xmlNodePtr nodePop(xmlParserCtxtPtr ctxt)
int xmlParseDocument(xmlParserCtxtPtr ctxt)
xmlParserCtxtPtr xmlCreateFileParserCtxt(const char *filename)
void xmlParseNotationDecl(xmlParserCtxtPtr ctxt)
static const xmlChar * xmlAttrNormalizeSpace2(xmlParserCtxtPtr ctxt, xmlChar *src, int *len)
xmlChar * xmlParseSystemLiteral(xmlParserCtxtPtr ctxt)
void xmlParseExternalSubset(xmlParserCtxtPtr ctxt, const xmlChar *ExternalID, const xmlChar *SystemID)
int namePush(xmlParserCtxtPtr ctxt, const xmlChar *value)
int xmlParseCharRef(xmlParserCtxtPtr ctxt)
xmlChar * xmlSplitQName(xmlParserCtxtPtr ctxt, const xmlChar *name, xmlChar **prefix)
xmlDefAttrs * xmlDefAttrsPtr
void xmlCtxtReset(xmlParserCtxtPtr ctxt)
static xmlEntityPtr xmlParseStringPEReference(xmlParserCtxtPtr ctxt, const xmlChar **str)
void xmlParseAttributeListDecl(xmlParserCtxtPtr ctxt)
const xmlChar * xmlParseEncodingDecl(xmlParserCtxtPtr ctxt)
const xmlChar * xmlParsePITarget(xmlParserCtxtPtr ctxt)
const xmlChar * namePop(xmlParserCtxtPtr ctxt)
#define XML_PARSER_BIG_ENTITY
void xmlParseCharData(xmlParserCtxtPtr ctxt, int cdata)
void xmlParseXMLDecl(xmlParserCtxtPtr ctxt)
wchar_t const *const size_t const buffer_size
struct _xmlDtd * intSubset
struct _xmlNode * children
struct _xmlDtd * extSubset
const xmlChar * ExternalID
struct _xmlNode * children
struct _xmlNode * children
const xmlChar * intSubName
struct _xmlSAXHandler * sax
xmlParserNodeInfoSeq node_seq
const xmlChar * str_xml_ns
xmlParserInputState instate
const xmlChar * str_xmlns
xmlHashTablePtr attsSpecial
unsigned long sizeentities
unsigned long sizeentcopy
xmlParserInputPtr * inputTab
xmlHashTablePtr attsDefault
xmlParserNodeInfo * buffer
const struct _xmlNode * node
Character const *const prefix
XML_DEPRECATED XMLPUBFUN void XMLCALL xmlCleanupThreads(void)
XML_DEPRECATED XMLPUBFUN void XMLCALL xmlInitThreads(void)
XMLPUBFUN xmlURIPtr XMLCALL xmlParseURI(const char *str)
XMLPUBFUN xmlChar *XMLCALL xmlCanonicPath(const xmlChar *path)
XMLPUBFUN void XMLCALL xmlFreeURI(xmlURIPtr uri)
XMLPUBFUN xmlChar *XMLCALL xmlBuildURI(const xmlChar *URI, const xmlChar *base)
XMLPUBFUN xmlEnumerationPtr XMLCALL xmlCreateEnumeration(const xmlChar *name)
XMLPUBFUN xmlElementContentPtr XMLCALL xmlNewDocElementContent(xmlDocPtr doc, const xmlChar *name, xmlElementContentType type)
XMLPUBFUN int XMLCALL xmlIsMixedElement(xmlDocPtr doc, const xmlChar *name)
XMLPUBFUN void XMLCALL xmlFreeDocElementContent(xmlDocPtr doc, xmlElementContentPtr cur)
XMLPUBFUN void XMLCALL xmlFreeEnumeration(xmlEnumerationPtr cur)
static const WCHAR lang[]
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
XMLPUBFUN char *XMLCALL xmlParserGetDirectory(const char *filename)
XMLPUBFUN void XMLCALL xmlFreeParserInputBuffer(xmlParserInputBufferPtr in)
XMLPUBFUN xmlParserInputBufferPtr XMLCALL xmlAllocParserInputBuffer(xmlCharEncoding enc)
XMLPUBFUN xmlParserInputBufferPtr XMLCALL xmlParserInputBufferCreateFd(int fd, xmlCharEncoding enc)
int(XMLCALL * xmlInputReadCallback)(void *context, char *buffer, int len)
XMLPUBFUN void XMLCALL xmlCleanupInputCallbacks(void)
XMLPUBFUN void XMLCALL xmlRegisterDefaultInputCallbacks(void)
XMLPUBFUN xmlParserInputBufferPtr XMLCALL xmlParserInputBufferCreateIO(xmlInputReadCallback ioread, xmlInputCloseCallback ioclose, void *ioctx, xmlCharEncoding enc)
int(XMLCALL * xmlInputCloseCallback)(void *context)
XMLPUBFUN int XMLCALL xmlParserInputBufferPush(xmlParserInputBufferPtr in, int len, const char *buf)
XMLPUBFUN xmlParserInputBufferPtr XMLCALL xmlParserInputBufferCreateMem(const char *mem, int size, xmlCharEncoding enc)
XMLPUBFUN void XMLCDECL XMLPUBFUN void XMLCDECL XMLPUBFUN void XMLCDECL XMLPUBFUN void XMLCDECL xmlParserValidityWarning(void *ctx, const char *msg,...) LIBXML_ATTR_FORMAT(2
XMLPUBFUN void XMLCDECL XMLPUBFUN void XMLCDECL XMLPUBFUN void XMLCDECL xmlParserValidityError(void *ctx, const char *msg,...) LIBXML_ATTR_FORMAT(2
XMLPUBFUN void XMLCALL initGenericErrorDefaultFunc(xmlGenericErrorFunc *handler)
XMLPUBFUN void XMLCALL xmlResetError(xmlErrorPtr err)
XMLPUBFUN int XMLCALL xmlCopyError(xmlErrorPtr from, xmlErrorPtr to)
void(XMLCDECL *) typedef void(XMLCALL * xmlStructuredErrorFunc)(void *userData, xmlErrorPtr error)
@ XML_ERR_ATTRIBUTE_NOT_FINISHED
@ XML_ERR_NOT_WELL_BALANCED
@ XML_ERR_ENTITY_NOT_FINISHED
@ XML_ERR_VERSION_MISMATCH
@ XML_ERR_ENTITYREF_SEMICOL_MISSING
@ XML_ERR_PEREF_IN_PROLOG
@ XML_ERR_LT_IN_ATTRIBUTE
@ XML_WAR_UNKNOWN_VERSION
@ XML_ERR_CDATA_NOT_FINISHED
@ XML_ERR_ENTITY_PE_INTERNAL
@ XML_ERR_ATTLIST_NOT_STARTED
@ XML_ERR_LITERAL_NOT_FINISHED
@ XML_ERR_XMLDECL_NOT_FINISHED
@ XML_ERR_ENTITY_BOUNDARY
@ XML_ERR_ELEMCONTENT_NOT_STARTED
@ XML_ERR_LTSLASH_REQUIRED
@ XML_ERR_MIXED_NOT_STARTED
@ XML_DTD_STANDALONE_DEFAULTED
@ XML_ERR_PEREF_IN_EPILOG
@ XML_NS_ERR_UNDEFINED_NAMESPACE
@ XML_ERR_DOCTYPE_NOT_FINISHED
@ XML_WAR_UNDECLARED_ENTITY
@ XML_ERR_CONDSEC_INVALID
@ XML_ERR_PI_NOT_FINISHED
@ XML_ERR_EXT_ENTITY_STANDALONE
@ XML_ERR_RESERVED_XML_NAME
@ XML_ERR_ATTRIBUTE_REDEFINED
@ XML_ERR_TAG_NOT_FINISHED
@ XML_ERR_HYPHEN_IN_COMMENT
@ XML_ERR_MISPLACED_CDATA_END
@ XML_NS_ERR_XML_NAMESPACE
@ XML_ERR_CONDSEC_INVALID_KEYWORD
@ XML_ERR_ENTITY_IS_PARAMETER
@ XML_ERR_TAG_NAME_MISMATCH
@ XML_NS_ERR_ATTRIBUTE_REDEFINED
@ XML_ERR_INVALID_ENCODING
@ XML_ERR_INVALID_CHARREF
@ XML_ERR_NMTOKEN_REQUIRED
@ XML_ERR_PEREF_IN_INT_SUBSET
@ XML_ERR_ENTITY_IS_EXTERNAL
@ XML_ERR_UNKNOWN_VERSION
@ XML_ERR_ELEMCONTENT_NOT_FINISHED
@ XML_ERR_PCDATA_REQUIRED
@ XML_ERR_NOTATION_NOT_STARTED
@ XML_ERR_STRING_NOT_CLOSED
@ XML_ERR_ATTRIBUTE_NOT_STARTED
@ XML_ERR_ENTITY_CHAR_ERROR
@ XML_ERR_UNDECLARED_ENTITY
@ XML_ERR_CONDSEC_NOT_FINISHED
@ XML_ERR_INVALID_DEC_CHARREF
@ XML_ERR_LITERAL_NOT_STARTED
@ XML_ERR_COMMENT_NOT_FINISHED
@ XML_ERR_ATTRIBUTE_WITHOUT_VALUE
@ XML_ERR_STRING_NOT_STARTED
@ XML_WAR_NS_URI_RELATIVE
@ XML_ERR_INVALID_HEX_CHARREF
@ XML_ERR_SEPARATOR_REQUIRED
@ XML_ERR_ENTITY_PROCESSING
@ XML_ERR_VERSION_MISSING
@ XML_ERR_EXT_SUBSET_NOT_FINISHED
@ XML_ERR_STANDALONE_VALUE
@ XML_ERR_ATTLIST_NOT_FINISHED
@ XML_ERR_XMLDECL_NOT_STARTED
@ XML_ERR_PEREF_SEMICOL_MISSING
@ XML_ERR_NOTATION_NOT_FINISHED
@ XML_ERR_MISSING_ENCODING
@ XML_ERR_UNPARSED_ENTITY
@ XML_ERR_UNSUPPORTED_ENCODING
@ XML_ERR_ENTITY_NOT_STARTED
XML_DEPRECATED XMLPUBFUN void XMLCALL xmlCleanupMemory(void)
XML_DEPRECATED XMLPUBFUN int XMLCALL xmlInitMemory(void)
XMLPUBFUN const xmlChar *XMLCALL xmlStrchr(const xmlChar *str, xmlChar val)
XMLPUBFUN xmlChar *XMLCALL xmlStrndup(const xmlChar *cur, int len)
XMLPUBFUN int XMLCALL xmlStrcasecmp(const xmlChar *str1, const xmlChar *str2)
XMLPUBFUN int XMLCALL xmlStrncmp(const xmlChar *str1, const xmlChar *str2, int len)
XMLPUBFUN xmlChar *XMLCALL xmlStrdup(const xmlChar *cur)
XMLPUBFUN xmlChar *XMLCALL xmlCharStrdup(const char *cur)
XMLPUBFUN const xmlChar *XMLCALL xmlStrcasestr(const xmlChar *str, const xmlChar *val)
XMLPUBFUN int XMLCALL xmlStrEqual(const xmlChar *str1, const xmlChar *str2)
XMLPUBFUN int XMLCALL xmlStrcmp(const xmlChar *str1, const xmlChar *str2)
XMLPUBFUN int XMLCALL xmlStrlen(const xmlChar *str)
#define LIBXML_ATTR_FORMAT(fmt, args)