32 xmlGenericError(xmlGenericErrorContext, \
33 "Unimplemented block at %s:%d\n", \
36#ifdef LIBXML_VALID_ENABLED
62 channel = ctxt->error;
63 data = ctxt->userData;
66 if (ctxt->flags & XML_VCTXT_USE_PCTXT) {
67 long delta = (
char *) ctxt - (
char *) ctxt->userData;
68 if ((delta > 0) && (delta < 250))
76 "Memory allocation failed : %s\n",
extra);
81 "Memory allocation failed\n");
101 channel = ctxt->error;
102 data = ctxt->userData;
105 if (ctxt->flags & XML_VCTXT_USE_PCTXT) {
106 long delta = (
char *) ctxt - (
char *) ctxt->userData;
107 if ((delta > 0) && (delta < 250))
112 __xmlRaiseError(
NULL, channel,
data,
117 __xmlRaiseError(
NULL, channel,
data,
123#if defined(LIBXML_VALID_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
147 channel = ctxt->error;
148 data = ctxt->userData;
151 if (ctxt->flags & XML_VCTXT_USE_PCTXT) {
152 long delta = (
char *) ctxt - (
char *) ctxt->userData;
153 if ((delta > 0) && (delta < 250))
161 (
const char *) str3, 0, 0,
msg, str1, str2, str3);
165#ifdef LIBXML_VALID_ENABLED
189 channel = ctxt->error;
190 data = ctxt->userData;
193 if (ctxt->flags & XML_VCTXT_USE_PCTXT) {
194 long delta = (
char *) ctxt - (
char *) ctxt->userData;
195 if ((delta > 0) && (delta < 250))
229 channel = ctxt->warning;
230 data = ctxt->userData;
233 if (ctxt->flags & XML_VCTXT_USE_PCTXT) {
234 long delta = (
char *) ctxt - (
char *) ctxt->userData;
235 if ((delta > 0) && (delta < 250))
243 (
const char *) str3, 0, 0,
msg, str1, str2, str3);
248#ifdef LIBXML_REGEXP_ENABLED
258typedef struct _xmlValidState {
261 xmlRegExecCtxtPtr exec;
267 if ((ctxt->vstateMax == 0) || (ctxt->vstateTab ==
NULL)) {
268 ctxt->vstateMax = 10;
270 sizeof(ctxt->vstateTab[0]));
271 if (ctxt->vstateTab ==
NULL) {
277 if (ctxt->vstateNr >= ctxt->vstateMax) {
281 2 * ctxt->vstateMax *
sizeof(ctxt->vstateTab[0]));
286 ctxt->vstateMax *= 2;
287 ctxt->vstateTab = tmp;
289 ctxt->vstate = &ctxt->vstateTab[ctxt->vstateNr];
290 ctxt->vstateTab[ctxt->vstateNr].elemDecl = elemDecl;
291 ctxt->vstateTab[ctxt->vstateNr].node =
node;
294 xmlValidBuildContentModel(ctxt, elemDecl);
296 ctxt->vstateTab[ctxt->vstateNr].exec =
299 ctxt->vstateTab[ctxt->vstateNr].exec =
NULL;
302 "Failed to build content model regexp for %s\n",
306 return(ctxt->vstateNr++);
313 if (ctxt->vstateNr < 1)
return(-1);
315 elemDecl = ctxt->vstateTab[ctxt->vstateNr].elemDecl;
316 ctxt->vstateTab[ctxt->vstateNr].elemDecl =
NULL;
317 ctxt->vstateTab[ctxt->vstateNr].node =
NULL;
319 xmlRegFreeExecCtxt(ctxt->vstateTab[ctxt->vstateNr].exec);
321 ctxt->vstateTab[ctxt->vstateNr].exec =
NULL;
322 if (ctxt->vstateNr >= 1)
323 ctxt->vstate = &ctxt->vstateTab[ctxt->vstateNr - 1];
326 return(ctxt->vstateNr);
341#define ROLLBACK_PARENT 1
343typedef struct _xmlValidState {
351#define MAX_RECURSE 25000
352#define MAX_DEPTH ((sizeof(_xmlValidState.occurs)) * 8)
353#define CONT ctxt->vstate->cont
354#define NODE ctxt->vstate->node
355#define DEPTH ctxt->vstate->depth
356#define OCCURS ctxt->vstate->occurs
357#define STATE ctxt->vstate->state
359#define OCCURRENCE (ctxt->vstate->occurs & (1 << DEPTH))
360#define PARENT_OCCURRENCE (ctxt->vstate->occurs & ((1 << DEPTH) - 1))
362#define SET_OCCURRENCE ctxt->vstate->occurs |= (1 << DEPTH)
363#define RESET_OCCURRENCE ctxt->vstate->occurs &= ((1 << DEPTH) - 1)
368 unsigned char state) {
369 int i = ctxt->vstateNr - 1;
374 if (ctxt->vstateTab ==
NULL) {
377 ctxt->vstateMax *
sizeof(ctxt->vstateTab[0]));
378 if (ctxt->vstateTab ==
NULL) {
383 if (ctxt->vstateNr >= ctxt->vstateMax) {
387 2 * ctxt->vstateMax *
sizeof(ctxt->vstateTab[0]));
392 ctxt->vstateMax *= 2;
393 ctxt->vstateTab = tmp;
394 ctxt->vstate = &ctxt->vstateTab[0];
399 if ((
i >= 0) && (ctxt->vstateTab[
i].cont == cont) &&
400 (ctxt->vstateTab[
i].node ==
node) &&
401 (ctxt->vstateTab[
i].depth ==
depth) &&
402 (ctxt->vstateTab[
i].occurs == occurs) &&
403 (ctxt->vstateTab[
i].state ==
state))
404 return(ctxt->vstateNr);
405 ctxt->vstateTab[ctxt->vstateNr].cont = cont;
406 ctxt->vstateTab[ctxt->vstateNr].node =
node;
407 ctxt->vstateTab[ctxt->vstateNr].depth =
depth;
408 ctxt->vstateTab[ctxt->vstateNr].occurs = occurs;
409 ctxt->vstateTab[ctxt->vstateNr].state =
state;
410 return(ctxt->vstateNr++);
415 if (ctxt->vstateNr <= 1)
return(-1);
417 ctxt->vstate = &ctxt->vstateTab[0];
418 ctxt->vstate->cont = ctxt->vstateTab[ctxt->vstateNr].cont;
419 ctxt->vstate->node = ctxt->vstateTab[ctxt->vstateNr].node;
420 ctxt->vstate->depth = ctxt->vstateTab[ctxt->vstateNr].depth;
421 ctxt->vstate->occurs = ctxt->vstateTab[ctxt->vstateNr].occurs;
422 ctxt->vstate->state = ctxt->vstateTab[ctxt->vstateNr].state;
423 return(ctxt->vstateNr);
431 if (ctxt->nodeMax <= 0) {
435 sizeof(ctxt->nodeTab[0]));
436 if (ctxt->nodeTab ==
NULL) {
442 if (ctxt->nodeNr >= ctxt->nodeMax) {
445 ctxt->nodeMax * 2 *
sizeof(ctxt->nodeTab[0]));
453 ctxt->nodeTab[ctxt->nodeNr] =
value;
455 return (ctxt->nodeNr++);
462 if (ctxt->nodeNr <= 0)
465 if (ctxt->nodeNr > 0)
466 ctxt->node = ctxt->nodeTab[ctxt->nodeNr - 1];
469 ret = ctxt->nodeTab[ctxt->nodeNr];
470 ctxt->nodeTab[ctxt->nodeNr] =
NULL;
474#ifdef DEBUG_VALID_ALGO
550 xmlValidPrintNode(
cur);
561 xmlValidPrintNodeList(
cur);
573 switch (
state->cont->type) {
588 xmlValidPrintNode(
state->node);
598 xmlValidDebugState(ctxt->vstate);
601 for (
i = 0,
j = ctxt->vstateNr - 1;(
i < 3) && (
j > 0);
i++,
j--)
602 xmlValidDebugState(&ctxt->vstateTab[
j]);
610#define DEBUG_VALID_STATE(n,c) xmlValidStateDebug(ctxt);
611#define DEBUG_VALID_MSG(m) \
612 xmlGenericError(xmlGenericErrorContext, "%s\n", m);
615#define DEBUG_VALID_STATE(n,c)
616#define DEBUG_VALID_MSG(m)
623 if (doc == NULL) return(0); \
624 else if ((doc->intSubset == NULL) && \
625 (doc->extSubset == NULL)) return(0)
627#ifdef LIBXML_REGEXP_ENABLED
651 "Found NULL content in content model of %s\n",
658 "Found PCDATA in content model of %s\n",
663 xmlAutomataStatePtr oldstate = ctxt->state;
675 ctxt->state = xmlAutomataNewTransition(ctxt->am,
679 ctxt->state = xmlAutomataNewTransition(ctxt->am,
681 xmlAutomataNewEpsilon(ctxt->am, oldstate, ctxt->state);
684 ctxt->state = xmlAutomataNewTransition(ctxt->am,
686 xmlAutomataNewTransition(ctxt->am, ctxt->state,
690 ctxt->state = xmlAutomataNewEpsilon(ctxt->am,
692 xmlAutomataNewTransition(ctxt->am,
701 xmlAutomataStatePtr oldstate, oldend;
707 oldstate = ctxt->state;
710 ctxt->state = xmlAutomataNewEpsilon(ctxt->am, oldstate,
NULL);
711 oldstate = ctxt->state;
714 xmlValidBuildAContentModel(
content->c1, ctxt,
name);
719 oldend = ctxt->state;
720 ctxt->state = xmlAutomataNewEpsilon(ctxt->am, oldend,
NULL);
725 xmlAutomataNewEpsilon(ctxt->am, oldstate, ctxt->state);
728 xmlAutomataNewEpsilon(ctxt->am, oldstate, ctxt->state);
729 xmlAutomataNewEpsilon(ctxt->am, oldend, oldstate);
732 xmlAutomataNewEpsilon(ctxt->am, oldend, oldstate);
738 xmlAutomataStatePtr oldstate, oldend;
744 ctxt->state = xmlAutomataNewEpsilon(ctxt->am,
747 oldstate = ctxt->state;
748 oldend = xmlAutomataNewState(ctxt->am);
755 ctxt->state = oldstate;
756 xmlValidBuildAContentModel(
content->c1, ctxt,
name);
757 xmlAutomataNewEpsilon(ctxt->am, ctxt->state, oldend);
761 ctxt->state = oldstate;
763 xmlAutomataNewEpsilon(ctxt->am, ctxt->state, oldend);
764 ctxt->state = xmlAutomataNewEpsilon(ctxt->am, oldend,
NULL);
769 xmlAutomataNewEpsilon(ctxt->am, oldstate, ctxt->state);
772 xmlAutomataNewEpsilon(ctxt->am, oldstate, ctxt->state);
773 xmlAutomataNewEpsilon(ctxt->am, oldend, oldstate);
776 xmlAutomataNewEpsilon(ctxt->am, oldend, oldstate);
783 "ContentModel broken for element %s\n",
784 (
const char *)
name);
810 if (!xmlRegexpIsDeterminist(
elem->contModel)) {
817 ctxt->am = xmlNewAutomata();
818 if (ctxt->am ==
NULL) {
821 "Cannot create automata for element %s\n",
825 ctxt->state = xmlAutomataGetInitState(ctxt->am);
826 xmlValidBuildAContentModel(
elem->content, ctxt,
elem->name);
827 xmlAutomataSetFinalState(ctxt->am, ctxt->state);
828 elem->contModel = xmlAutomataCompile(ctxt->am);
829 if (xmlRegexpIsDeterminist(
elem->contModel) != 1) {
835 "Content model of %s is not determinist: %s\n",
837#ifdef DEBUG_REGEXP_ALGO
842 xmlFreeAutomata(ctxt->am);
847 xmlFreeAutomata(ctxt->am);
920 "xmlNewElementContent : name == NULL !\n",
929 "xmlNewElementContent : name != NULL !\n",
935 "Internal: ELEMENT content corrupted invalid type\n",
1039 tmp->type =
cur->type;
1040 tmp->ocur =
cur->ocur;
1058 if (tmp->c1 !=
NULL)
1059 tmp->c1->parent =
ret;
1106 switch (
cur->type) {
1114 "Internal: ELEMENT content corrupted invalid type\n",
1159#ifdef LIBXML_OUTPUT_ENABLED
1169 switch (
cur->ocur) {
1203 switch (
cur->type) {
1218 ((
cur->type !=
cur->parent->type) ||
1225 "Internal: ELEMENT cur corrupted invalid type\n",
1239 xmlDumpElementOccur(
buf,
cur);
1305 if (
size -
len < qnameLen + 10) {
1397#ifdef LIBXML_REGEXP_ENABLED
1399 xmlRegFreeRegexp(
elem->contModel);
1438 "xmlAddElementDecl: content != NULL for EMPTY\n",
1446 "xmlAddElementDecl: content != NULL for ANY\n",
1454 "xmlAddElementDecl: content == NULL for MIXED\n",
1462 "xmlAddElementDecl: content == NULL for ELEMENT\n",
1469 "Internal: ELEMENT decl corrupted invalid type\n",
1489 dict = dtd->
doc->dict;
1495 "xmlAddElementDecl: Table creation failed!\n");
1510 oldAttributes =
ret->attributes;
1524#ifdef LIBXML_VALID_ENABLED
1529 "Redefinition of element %s\n",
1575#ifdef LIBXML_VALID_ENABLED
1580 "Redefinition of element %s\n",
1592 ret->attributes = oldAttributes;
1604 if ((ctxt !=
NULL) && (ctxt->flags & XML_VCTXT_USE_PCTXT)) {
1645#ifdef LIBXML_TREE_ENABLED
1695#ifdef LIBXML_OUTPUT_ENABLED
1708 switch (
elem->etype) {
1735 xmlDumpElementContent(
buf,
elem->content);
1746 xmlDumpElementContent(
buf,
elem->content);
1751 "Internal: ELEMENT struct corrupted invalid type\n",
1765xmlDumpElementDeclScan(
void *
elem,
void *
buf,
1826#ifdef LIBXML_TREE_ENABLED
1844 if (
cur->next !=
NULL)
ret->next = xmlCopyEnumeration(
cur->next);
1851#ifdef LIBXML_OUTPUT_ENABLED
1869 xmlDumpEnumeration(
buf,
cur->next);
1874#ifdef LIBXML_VALID_ENABLED
1898 "Element %s has too many ID attributes defined : %s\n",
1919 dict =
attr->doc->dict;
1932 if ((
attr->defaultValue !=
NULL) &&
1990 dict = dtd->
doc->dict;
1992#ifdef LIBXML_VALID_ENABLED
2019 "Internal: ATTRIBUTE struct corrupted invalid type\n",
2024 if ((defaultValue !=
NULL) &&
2025 (!xmlValidateAttributeValueInternal(dtd->
doc,
type, defaultValue))) {
2027 "Attribute %s of %s: invalid default value\n",
2029 defaultValue =
NULL;
2039 if ((dtd->
doc !=
NULL) && (dtd->
doc->extSubset == dtd) &&
2040 (dtd->
doc->intSubset !=
NULL) &&
2041 (dtd->
doc->intSubset->attributes !=
NULL)) {
2059 "xmlAddAttributeDecl: Table creation failed!\n");
2095 if (defaultValue !=
NULL) {
2107#ifdef LIBXML_VALID_ENABLED
2112 "Attribute %s of element %s: already defined\n",
2124 if (elemDef !=
NULL) {
2126#ifdef LIBXML_VALID_ENABLED
2128 (xmlScanIDAttributeDecl(
NULL, elemDef, 1) != 0)) {
2130 "Element %s has too may ID attributes defined : %s\n",
2149 while ((tmp !=
NULL) &&
2197#ifdef LIBXML_TREE_ENABLED
2220 cur->tree = xmlCopyEnumeration(
attr->tree);
2246#ifdef LIBXML_OUTPUT_ENABLED
2267 switch (
attr->atype) {
2294 xmlDumpEnumeration(
buf,
attr->tree);
2298 xmlDumpEnumeration(
buf,
attr->tree);
2302 "Internal: ATTRIBUTE struct corrupted invalid type\n",
2305 switch (
attr->def) {
2319 "Internal: ATTRIBUTE struct corrupted invalid def\n",
2337xmlDumpAttributeDeclScan(
void *
attr,
void *
buf,
2370 if (nota ==
NULL)
return;
2406 if ((PublicID ==
NULL) && (SystemID ==
NULL)) {
2417 dict = dtd->
doc->dict;
2423 "xmlAddNotationDecl: Table creation failed!\n");
2438 if (SystemID !=
NULL)
2440 if (PublicID !=
NULL)
2448#ifdef LIBXML_VALID_ENABLED
2450 "xmlAddNotationDecl: %s already defined\n",
2451 (
const char *)
name);
2475#ifdef LIBXML_TREE_ENABLED
2523#ifdef LIBXML_OUTPUT_ENABLED
2559xmlDumpNotationDeclScan(
void *nota,
void *
buf,
2591#define DICT_FREE(str) \
2592 if ((str) && ((!dict) || \
2593 (xmlDictOwns(dict, (const xmlChar *)(str)) == 0))) \
2594 xmlFree((char *)(str));
2612 while (*
src == 0x20)
src++;
2615 while (*
src == 0x20)
src++;
2631 if ((ctxt->flags & XML_VCTXT_USE_PCTXT) == 0)
2647 if (
id ==
NULL)
return;
2650 dict =
id->doc->
dict;
2696 "xmlAddID: Table creation failed!\n");
2727#ifdef LIBXML_VALID_ENABLED
2780 if (doc ==
NULL)
return(0);
2796 xmlChar *fullelemname, *fullattrname;
2806 if (fullelemname !=
NULL && fullattrname !=
NULL) {
2814 if ((fullattrname !=
fattr) && (fullattrname !=
attr->
name))
2816 if ((fullelemname != felem) && (fullelemname !=
elem->name))
2840 if (doc ==
NULL)
return(-1);
2950 if (list_ref ==
NULL)
return;
2968 if (attr0 == attr1) {
3028 "xmlAddRef: Table creation failed!\n");
3064 "xmlAddRef: Reference list creation failed!\n",
3071 "xmlAddRef: Reference list insertion failed!\n",
3078 "xmlAddRef: Reference list insertion failed!\n",
3127 if (doc ==
NULL)
return(0);
3144 if ((attrDecl !=
NULL) &&
3170 if (doc ==
NULL)
return(-1);
3182 if(ref_list ==
NULL) {
3297 dict = dtd->
doc->dict;
3393 if (uqname !=
NULL) {
3448#if defined(LIBXML_VALID_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
3463 const xmlChar *notationName) {
3466 (notationName ==
NULL))
return(-1);
3472 if ((notaDecl ==
NULL) && (ctxt !=
NULL)) {
3474 "NOTATION %s is not declared\n",
3502 if (elemDecl ==
NULL)
return(-1);
3503 switch (elemDecl->
etype) {
3520#ifdef LIBXML_VALID_ENABLED
3529 if (((
c >=
'a') && (
c <=
'z')) ||
3530 ((
c >=
'A') && (
c <=
'Z')) ||
3531 (
c ==
'_') || (
c ==
':') ||
3532 ((
c >= 0xC0) && (
c <= 0xD6)) ||
3533 ((
c >= 0xD8) && (
c <= 0xF6)) ||
3534 ((
c >= 0xF8) && (
c <= 0x2FF)) ||
3535 ((
c >= 0x370) && (
c <= 0x37D)) ||
3536 ((
c >= 0x37F) && (
c <= 0x1FFF)) ||
3537 ((
c >= 0x200C) && (
c <= 0x200D)) ||
3538 ((
c >= 0x2070) && (
c <= 0x218F)) ||
3539 ((
c >= 0x2C00) && (
c <= 0x2FEF)) ||
3540 ((
c >= 0x3001) && (
c <= 0xD7FF)) ||
3541 ((
c >= 0xF900) && (
c <= 0xFDCF)) ||
3542 ((
c >= 0xFDF0) && (
c <= 0xFFFD)) ||
3543 ((
c >= 0x10000) && (
c <= 0xEFFFF)))
3559 if (((
c >=
'a') && (
c <=
'z')) ||
3560 ((
c >=
'A') && (
c <=
'Z')) ||
3561 ((
c >=
'0') && (
c <=
'9')) ||
3562 (
c ==
'_') || (
c ==
':') ||
3563 (
c ==
'-') || (
c ==
'.') || (
c == 0xB7) ||
3564 ((
c >= 0xC0) && (
c <= 0xD6)) ||
3565 ((
c >= 0xD8) && (
c <= 0xF6)) ||
3566 ((
c >= 0xF8) && (
c <= 0x2FF)) ||
3567 ((
c >= 0x300) && (
c <= 0x36F)) ||
3568 ((
c >= 0x370) && (
c <= 0x37D)) ||
3569 ((
c >= 0x37F) && (
c <= 0x1FFF)) ||
3570 ((
c >= 0x200C) && (
c <= 0x200D)) ||
3571 ((
c >= 0x203F) && (
c <= 0x2040)) ||
3572 ((
c >= 0x2070) && (
c <= 0x218F)) ||
3573 ((
c >= 0x2C00) && (
c <= 0x2FEF)) ||
3574 ((
c >= 0x3001) && (
c <= 0xD7FF)) ||
3575 ((
c >= 0xF900) && (
c <= 0xFDCF)) ||
3576 ((
c >= 0xFDF0) && (
c <= 0xFFFD)) ||
3577 ((
c >= 0x10000) && (
c <= 0xEFFFF)))
3581 (
c ==
'.') || (
c ==
'-') ||
3582 (
c ==
'_') || (
c ==
':') ||
3609 if (!xmlIsDocNameStartChar(doc,
val))
3614 while (xmlIsDocNameChar(doc,
val)) {
3619 if (
val != 0)
return(0);
3635 return(xmlValidateNameValueInternal(
NULL,
value));
3658 if (!xmlIsDocNameStartChar(doc,
val))
3663 while (xmlIsDocNameChar(doc,
val)) {
3669 while (
val == 0x20) {
3670 while (
val == 0x20) {
3675 if (!xmlIsDocNameStartChar(doc,
val))
3681 while (xmlIsDocNameChar(doc,
val)) {
3687 if (
val != 0)
return(0);
3703 return(xmlValidateNamesValueInternal(
NULL,
value));
3728 if (!xmlIsDocNameChar(doc,
val))
3733 while (xmlIsDocNameChar(doc,
val)) {
3738 if (
val != 0)
return(0);
3756 return(xmlValidateNmtokenValueInternal(
NULL,
value));
3786 if (!xmlIsDocNameChar(doc,
val))
3789 while (xmlIsDocNameChar(doc,
val)) {
3795 while (
val == 0x20) {
3796 while (
val == 0x20) {
3800 if (
val == 0)
return(1);
3802 if (!xmlIsDocNameChar(doc,
val))
3808 while (xmlIsDocNameChar(doc,
val)) {
3814 if (
val != 0)
return(0);
3832 return(xmlValidateNmtokensValueInternal(
NULL,
value));
3875 return(xmlValidateNamesValueInternal(doc,
value));
3880 return(xmlValidateNameValueInternal(doc,
value));
3883 return(xmlValidateNmtokensValueInternal(doc,
value));
3885 return(xmlValidateNmtokenValueInternal(doc,
value));
3918 return(xmlValidateAttributeValueInternal(
NULL,
type,
value));
3975 "ENTITY attribute %s reference an unknown entity \"%s\"\n",
3981 "ENTITY attribute %s reference an entity \"%s\" of wrong type\n",
4004 "ENTITIES attribute %s reference an unknown entity \"%s\"\n",
4010 "ENTITIES attribute %s reference an entity \"%s\" of wrong type\n",
4032 "NOTATION attribute %s reference an unknown notation \"%s\"\n",
4088 if (attrDecl !=
NULL)
4098 if (attrDecl !=
NULL)
4102 if (attrDecl ==
NULL)
4113"standalone: %s on %s value had to be normalized based on external subset declaration\n",
4164 if (attrDecl ==
NULL)
4177xmlValidateAttributeIdCallback(
void *payload,
void *
data,
4213 val = xmlValidateAttributeValueInternal(doc,
attr->atype,
4214 attr->defaultValue);
4217 "Syntax of default value for attribute %s of %s is not valid\n",
4228 "ID attribute %s of %s is not valid must be #IMPLIED or #REQUIRED\n",
4241 nbId = xmlScanIDAttributeDecl(
NULL,
elem, 0);
4253 xmlValidateAttributeIdCallback, &nbId);
4259 "Element %s has %d ID attribute defined in the internal subset : %s\n",
4265 extId = xmlScanIDAttributeDecl(
NULL,
elem, 0);
4269 "Element %s has %d ID attribute defined in the external subset : %s\n",
4271 }
else if (extId + nbId > 1) {
4273"Element %s has ID attributes defined in the internal and external subset : %s\n",
4288"Default value \"%s\" for attribute %s of %s is not among the enumerated set\n",
4324#ifdef LIBXML_REGEXP_ENABLED
4326 ret = xmlValidBuildContentModel(ctxt,
elem);
4346 if (
cur->c1->prefix ==
NULL) {
4348 "Definition of %s has duplicate references of %s\n",
4352 "Definition of %s has duplicate references of %s:%s\n",
4363 if (
cur->c1->prefix ==
NULL) {
4365 "Definition of %s has duplicate references to %s\n",
4369 "Definition of %s has duplicate references to %s:%s\n",
4383 if ((tst !=
NULL ) && (tst !=
elem) &&
4388 "Redefinition of element %s\n",
4393 if ((tst !=
NULL ) && (tst !=
elem) &&
4398 "Redefinition of element %s\n",
4469 if (attrDecl ==
NULL) {
4487 if (attrDecl ==
NULL) {
4489 "No declaration for attribute %s of element %s\n",
4495 val = xmlValidateAttributeValueInternal(doc, attrDecl->
atype,
value);
4498 "Syntax of value for attribute %s of %s is not valid\n",
4507 "Value for attribute %s of %s is different from default \"%s\"\n",
4537 "Value \"%s\" for attribute %s of %s is not a declared Notation\n",
4549"Value \"%s\" for attribute %s of %s is not among the enumerated notations\n",
4564 "Value \"%s\" for attribute %s of %s is not among the enumerated set\n",
4574 "Value for attribute %s of %s must be \"%s\"\n",
4580 ret &= xmlValidateAttributeValue2(ctxt, doc,
attr->
name,
4649 if (attrDecl ==
NULL) {
4667 if (attrDecl ==
NULL) {
4670 "No declaration for attribute xmlns:%s of element %s\n",
4674 "No declaration for attribute xmlns of element %s\n",
4680 val = xmlValidateAttributeValueInternal(doc, attrDecl->
atype,
value);
4684 "Syntax of value for attribute xmlns:%s of %s is not valid\n",
4688 "Syntax of value for attribute xmlns of %s is not valid\n",
4699 "Value for attribute xmlns:%s of %s is different from default \"%s\"\n",
4703 "Value for attribute xmlns of %s is different from default \"%s\"\n",
4742 "Value \"%s\" for attribute xmlns:%s of %s is not a declared Notation\n",
4746 "Value \"%s\" for attribute xmlns of %s is not a declared Notation\n",
4760"Value \"%s\" for attribute xmlns:%s of %s is not among the enumerated notations\n",
4764"Value \"%s\" for attribute xmlns of %s is not among the enumerated notations\n",
4781"Value \"%s\" for attribute xmlns:%s of %s is not among the enumerated set\n",
4785"Value \"%s\" for attribute xmlns of %s is not among the enumerated set\n",
4797 "Value for attribute xmlns:%s of %s must be \"%s\"\n",
4801 "Value for attribute xmlns of %s must be \"%s\"\n",
4809 ret &= xmlValidateAttributeValue2(ctxt, doc,
ns->
prefix,
4812 ret &= xmlValidateAttributeValue2(ctxt, doc,
BAD_CAST "xmlns",
4819#ifndef LIBXML_REGEXP_ENABLED
4833 switch (
child->type) {
4869 int determinist = 1;
4871 NODE = xmlValidateSkipIgnorable(
NODE);
4879 if (CONT ==
NULL)
return(-1);
4892 if (
STATE == ROLLBACK_PARENT) {
4893 DEBUG_VALID_MSG(
"restored parent branch");
4894 DEBUG_VALID_STATE(
NODE, CONT)
4899 DEBUG_VALID_STATE(
NODE, CONT)
4904 if ((CONT !=
NULL) &&
4905 ((CONT->parent ==
NULL) ||
4910 DEBUG_VALID_MSG(
"saving parent branch");
4911 if (vstateVPush(ctxt, CONT,
NODE, DEPTH, OCCURS, ROLLBACK_PARENT) < 0)
4919 switch (CONT->type) {
4922 DEBUG_VALID_MSG(
"pcdata failed no node");
4927 DEBUG_VALID_MSG(
"pcdata found, skip to next");
4934 NODE = xmlValidateSkipIgnorable(
NODE);
4945 DEBUG_VALID_MSG(
"pcdata failed");
4952 DEBUG_VALID_MSG(
"element failed no node");
4961 }
else if (CONT->prefix ==
NULL) {
4968 DEBUG_VALID_MSG(
"element found, skip to next");
4975 NODE = xmlValidateSkipIgnorable(
NODE);
4984 DEBUG_VALID_MSG(
"element failed");
5001 ret = (CONT->c1->prefix ==
NULL);
5002 }
else if (CONT->c1->prefix ==
NULL) {
5017 DEBUG_VALID_MSG(
"saving 'or' branch");
5018 if (vstateVPush(ctxt, CONT->c2,
NODE, (
unsigned char)(DEPTH + 1),
5019 OCCURS, ROLLBACK_OR) < 0)
5038 ret = (CONT->c1->prefix ==
NULL);
5039 }
else if (CONT->c1->prefix ==
NULL) {
5059 DEBUG_VALID_MSG(
"error found returning");
5063 while (CONT !=
NULL) {
5069 switch (CONT->ocur) {
5073 cur = ctxt->vstate->node;
5074 DEBUG_VALID_MSG(
"Once branch failed, rollback");
5075 if (vstateVPop(ctxt) < 0 ) {
5076 DEBUG_VALID_MSG(
"exhaustion, failed");
5079 if (
cur != ctxt->vstate->node)
5083 if (OCCURRENCE == 0) {
5084 cur = ctxt->vstate->node;
5085 DEBUG_VALID_MSG(
"Plus branch failed, rollback");
5086 if (vstateVPop(ctxt) < 0 ) {
5087 DEBUG_VALID_MSG(
"exhaustion, failed");
5090 if (
cur != ctxt->vstate->node)
5094 DEBUG_VALID_MSG(
"Plus branch found");
5098#ifdef DEBUG_VALID_ALGO
5099 if (OCCURRENCE == 0) {
5100 DEBUG_VALID_MSG(
"Mult branch failed");
5102 DEBUG_VALID_MSG(
"Mult branch found");
5108 DEBUG_VALID_MSG(
"Option branch failed");
5113 switch (CONT->ocur) {
5115 DEBUG_VALID_MSG(
"Option branch succeeded");
5119 DEBUG_VALID_MSG(
"Once branch succeeded");
5123 if (
STATE == ROLLBACK_PARENT) {
5124 DEBUG_VALID_MSG(
"Plus branch rollback");
5129 DEBUG_VALID_MSG(
"Plus branch exhausted");
5133 DEBUG_VALID_MSG(
"Plus branch succeeded, continuing");
5137 if (
STATE == ROLLBACK_PARENT) {
5138 DEBUG_VALID_MSG(
"Mult branch rollback");
5143 DEBUG_VALID_MSG(
"Mult branch exhausted");
5147 DEBUG_VALID_MSG(
"Mult branch succeeded, continuing");
5158 if (CONT->parent ==
NULL)
5161 switch (CONT->parent->type) {
5163 DEBUG_VALID_MSG(
"Error: parent pcdata");
5166 DEBUG_VALID_MSG(
"Error: parent element");
5170 DEBUG_VALID_MSG(
"Or succeeded");
5171 CONT = CONT->parent;
5174 DEBUG_VALID_MSG(
"Or failed");
5175 CONT = CONT->parent;
5181 DEBUG_VALID_MSG(
"Sequence failed");
5182 CONT = CONT->parent;
5184 }
else if (CONT == CONT->parent->c1) {
5185 DEBUG_VALID_MSG(
"Sequence testing 2nd branch");
5186 CONT = CONT->parent->c2;
5189 DEBUG_VALID_MSG(
"Sequence succeeded");
5190 CONT = CONT->parent;
5198 cur = ctxt->vstate->node;
5199 DEBUG_VALID_MSG(
"Failed, remaining input, rollback");
5200 if (vstateVPop(ctxt) < 0 ) {
5201 DEBUG_VALID_MSG(
"exhaustion, failed");
5204 if (
cur != ctxt->vstate->node)
5211 cur = ctxt->vstate->node;
5212 DEBUG_VALID_MSG(
"Failure, rollback");
5213 if (vstateVPop(ctxt) < 0 ) {
5214 DEBUG_VALID_MSG(
"exhaustion, failed");
5217 if (
cur != ctxt->vstate->node)
5221 return(determinist);
5250 switch (
cur->type) {
5324#ifndef LIBXML_REGEXP_ENABLED
5336#ifdef LIBXML_REGEXP_ENABLED
5339 ret = xmlValidBuildContentModel(ctxt, elemDecl);
5343 xmlRegExecCtxtPtr exec;
5345 if (!xmlRegexpIsDeterminist(elemDecl->
contModel)) {
5350 ctxt->nodeTab =
NULL;
5355 switch (
cur->type) {
5361 if ((
cur->children !=
NULL) &&
5362 (
cur->children->children !=
NULL)) {
5363 nodeVPush(ctxt,
cur);
5364 cur =
cur->children->children;
5383 cur->ns->prefix,
fn, 50);
5392 ret = xmlRegExecPushString(exec,
cur->name,
NULL);
5403 cur = nodeVPop(ctxt);
5411 xmlRegFreeExecCtxt(exec);
5418 ctxt->vstateMax = 8;
5420 ctxt->vstateMax *
sizeof(ctxt->vstateTab[0]));
5421 if (ctxt->vstateTab ==
NULL) {
5430 ctxt->nodeTab =
NULL;
5431 ctxt->vstate = &ctxt->vstateTab[0];
5438 ret = xmlValidateElementType(ctxt);
5441 "Content model for Element %s is ambiguous\n",
5443 }
else if (
ret == -2) {
5449 DEBUG_VALID_MSG(
"Found an entity reference, linearizing");
5452 switch (
cur->type) {
5458 if ((
cur->children !=
NULL) &&
5459 (
cur->children->children !=
NULL)) {
5460 nodeVPush(ctxt,
cur);
5461 cur =
cur->children->children;
5483 tmp->type =
cur->type;
5484 tmp->name =
cur->name;
5487 tmp->content =
NULL;
5510 cur = nodeVPop(ctxt);
5520 ctxt->vstate = &ctxt->vstateTab[0];
5527 ret = xmlValidateElementType(ctxt);
5538#ifndef LIBXML_REGEXP_ENABLED
5540 xmlSnprintfElements(&
list[0], 5000, repl, 1);
5543 xmlSnprintfElements(&
list[0], 5000,
child, 1);
5547 "Element %s content does not follow the DTD, expecting %s, got %s\n",
5551 "Element content does not follow the DTD, expecting %s, got %s\n",
5557 "Element %s content does not follow the DTD\n",
5561 "Element content does not follow the DTD\n",
5570#ifndef LIBXML_REGEXP_ENABLED
5575 while (repl !=
NULL) {
5580 ctxt->vstateMax = 0;
5581 if (ctxt->vstateTab !=
NULL) {
5583 ctxt->vstateTab =
NULL;
5588 if (ctxt->nodeTab !=
NULL) {
5590 ctxt->nodeTab =
NULL;
5620 switch (
cur->type) {
5626 if ((
cur->children !=
NULL) &&
5627 (
cur->children->children !=
NULL)) {
5628 nodeVPush(ctxt,
cur);
5629 cur =
cur->children->children;
5647 cur = nodeVPop(ctxt);
5656 if (ctxt->nodeTab !=
NULL) {
5658 ctxt->nodeTab =
NULL;
5681 while (cont !=
NULL) {
5688 if ((cont->
c1->prefix ==
NULL) &&
5695 "Internal: MIXED struct corrupted\n",
5702 while (cont !=
NULL) {
5711 if ((cont->
c1->prefix !=
NULL) &&
5719 "Internal: MIXED struct corrupted\n",
5747 if ((ctxt ==
NULL) || (doc ==
NULL) ||
5750 if (extsubset !=
NULL)
5765 if ((elemDecl !=
NULL) && (extsubset !=
NULL))
5775 if (elemDecl ==
NULL) {
5779 if ((elemDecl !=
NULL) && (extsubset !=
NULL))
5783 if (elemDecl ==
NULL) {
5784 xmlErrValidNode(ctxt,
elem,
5786 "No declaration for element %s\n",
5792#ifdef LIBXML_REGEXP_ENABLED
5814 if ((ctxt->vstateNr > 0) && (ctxt->vstate !=
NULL)) {
5822 elemDecl =
state->elemDecl;
5824 switch(elemDecl->
etype) {
5829 xmlErrValidNode(ctxt,
state->node,
5831 "Element %s was declared EMPTY this one has content\n",
5843 xmlErrValidNode(ctxt,
state->node,
5845 "Element %s was declared #PCDATA but contains non text nodes\n",
5849 ret = xmlValidateCheckMixed(ctxt, elemDecl->
content,
5852 xmlErrValidNode(ctxt,
state->node,
5854 "Element %s is not declared in %s list of possible children\n",
5869 xmlErrValidNode(ctxt,
state->node,
5871 "Element %s content does not follow the DTD, Misplaced %s\n",
5882 eDecl = xmlValidGetElemDecl(ctxt, doc,
elem, &extsubset);
5883 vstateVPush(ctxt, eDecl,
elem);
5906 if ((ctxt->vstateNr > 0) && (ctxt->vstate !=
NULL)) {
5914 elemDecl =
state->elemDecl;
5916 switch(elemDecl->
etype) {
5921 xmlErrValidNode(ctxt,
state->node,
5923 "Element %s was declared EMPTY this one has content\n",
5934 for (
i = 0;
i <
len;
i++) {
5936 xmlErrValidNode(ctxt,
state->node,
5938 "Element %s content does not follow the DTD, Text not allowed\n",
5979 if ((ctxt->vstateNr > 0) && (ctxt->vstate !=
NULL)) {
5987 elemDecl =
state->elemDecl;
5993 xmlErrValidNode(ctxt,
state->node,
5995 "Element %s content does not follow the DTD, Expecting more child\n",
6045 switch (
elem->type) {
6053 "Text element has children !\n",
6059 "Text element has namespace !\n",
6065 "Text element has no content !\n",
6107 elemDecl = xmlValidGetElemDecl(ctxt, doc,
elem, &extsubset);
6108 if (elemDecl ==
NULL)
6115 if (ctxt->vstateNr == 0) {
6117 switch (elemDecl->
etype) {
6120 "No declaration for element %s\n",
6126 "Element %s was declared EMPTY this one has content\n",
6139 ret = xmlValidateOneCdataElement(ctxt, doc,
elem);
6142 "Element %s was declared #PCDATA but contains non text nodes\n",
6161 while (cont !=
NULL) {
6174 "Internal: MIXED struct corrupted\n",
6186 while (cont !=
NULL) {
6197 "Internal: MIXED struct corrupted\n",
6205 "Element %s is not declared in %s list of possible children\n",
6215 if ((doc->
standalone == 1) && (extsubset == 1)) {
6229 xmlErrValidNode(ctxt,
elem,
6231"standalone: %s declared in the external subset contains white spaces nodes\n",
6242 tmp = xmlValidateElementContent(ctxt,
child, elemDecl, 1,
elem);
6277 attrib =
elem->properties;
6278 while (attrib !=
NULL) {
6283 if (nameSpace ==
NULL)
6284 nameSpace =
elem->ns;
6290 if (nameSpace ==
NULL) {
6309 attrib = attrib->
next;
6312 if (qualified == -1) {
6315 "Element %s does not carry attribute %s\n",
6320 "Element %s does not carry attribute %s:%s\n",
6324 }
else if (qualified == 0) {
6326 "Element %s required attribute %s:%s has no prefix\n",
6328 }
else if (qualified == 1) {
6330 "Element %s required attribute %s:%s has different prefix\n",
6347 xmlErrValidNode(ctxt,
elem,
6349 "Element %s namespace name for default namespace does not match the DTD\n",
6365 "Element %s namespace name for %s does not match the DTD\n",
6400 if (doc ==
NULL)
return(0);
6405 "no root element\n",
NULL);
6438 "root and DTD name do not match '%s' and '%s'\n",
6487 ret &= xmlValidateOneElement(ctxt, doc,
elem);
6500 ret &= xmlValidateOneNamespace(ctxt, doc,
elem,
NULL,
6503 ret &= xmlValidateOneNamespace(ctxt, doc,
elem,
6510 ret &= xmlValidateElement(ctxt, doc,
child);
6552 "attribute %s line %d references an unknown ID \"%s\"\n",
6566 "IDREF attribute %s references an unknown ID \"%s\"\n",
6588 "IDREFS attribute %s references an unknown ID \"%s\"\n",
6609xmlWalkValidateList(
const void *
data,
void *
user)
6624xmlValidateCheckRefCallback(
void *payload,
void *
data,
const xmlChar *
name) {
6629 if (ref_list ==
NULL)
6634 xmlListWalk(ref_list, xmlWalkValidateList, &memo);
6662 "xmlValidateDocumentFinal: doc == NULL\n",
NULL);
6668 ctxt->flags &= ~XML_VCTXT_USE_PCTXT;
6685 return(ctxt->valid);
6710 if (dtd ==
NULL)
return(0);
6711 if (doc ==
NULL)
return(0);
6716 ret = xmlValidateRoot(ctxt, doc);
6731 ret = xmlValidateElement(ctxt, doc,
root);
6732 ret &= xmlValidateDocumentFinal(ctxt, doc);
6739xmlValidateNotationCallback(
void *payload,
void *
data,
6748 if (notation !=
NULL) {
6751 ret = xmlValidateNotationUse(ctxt,
cur->doc, notation);
6760xmlValidateAttributeCallback(
void *payload,
void *
data,
6770 switch (
cur->atype) {
6782 if (
cur->defaultValue !=
NULL) {
6784 ret = xmlValidateAttributeValue2(ctxt, ctxt->doc,
cur->name,
6785 cur->atype,
cur->defaultValue);
6786 if ((
ret == 0) && (ctxt->valid == 1))
6792 ret = xmlValidateAttributeValue2(ctxt, ctxt->doc,
6794 if ((
ret == 0) && (ctxt->valid == 1))
6804 "xmlValidateAttributeCallback(%s): internal error\n",
6805 (
const char *)
cur->name);
6818 "attribute %s: could not find decl for element %s\n",
6824 "NOTATION attribute %s declared for EMPTY element %s\n",
6854 if ((doc ==
NULL) || (ctxt ==
NULL))
return(0);
6866 xmlHashScan(entities, xmlValidateNotationCallback, ctxt);
6875 xmlHashScan(entities, xmlValidateNotationCallback, ctxt);
6877 return(ctxt->valid);
6903 "no DTD found!\n",
NULL);
6912 if (sysID ==
NULL) {
6914 "Could not build URI for external subset \"%s\"\n",
6915 (
const char *) doc->
intSubset->SystemID);
6927 "Could not load the external subset \"%s\"\n",
6928 (
const char *) doc->
intSubset->SystemID);
6931 "Could not load the external subset \"%s\"\n",
6932 (
const char *) doc->
intSubset->ExternalID);
6946 ret = xmlValidateDtdFinal(ctxt, doc);
6947 if (!xmlValidateRoot(ctxt, doc))
return(0);
6950 ret &= xmlValidateElement(ctxt, doc,
root);
6951 ret &= xmlValidateDocumentFinal(ctxt, doc);
6983 switch (ctree->
type) {
6985 for (
i = 0;
i < *
len;
i++)
6990 for (
i = 0;
i < *
len;
i++)
7044 int nb_valid_elements = 0;
7045 const xmlChar *elements[256]={0};
7046 int nb_elements = 0,
i;
7064 if (
max <= 0)
return(-1);
7067 vctxt.error = xmlNoValidityErr;
7069 nb_valid_elements = 0;
7070 ref_node = prev ? prev :
next;
7081 if (element_desc ==
NULL)
return(-1);
7086 prev_next = prev ? prev->
next :
NULL;
7088 parent_childs =
parent->children;
7089 parent_last =
parent->last;
7095 if (test_node ==
NULL)
7099 test_node->
prev = prev;
7103 if (prev) prev->
next = test_node;
7104 else parent->children = test_node;
7107 else parent->last = test_node;
7113 nb_elements = xmlValidGetPotentialChildren(element_desc->
content,
7114 elements, &nb_elements, 256);
7116 for (
i = 0;
i < nb_elements;
i++) {
7117 test_node->
name = elements[
i];
7118 if (xmlValidateOneElement(&vctxt,
parent->doc,
parent)) {
7121 for (
j = 0;
j < nb_valid_elements;
j++)
7123 names[nb_valid_elements++] = elements[
i];
7124 if (nb_valid_elements >=
max)
break;
7131 if (prev) prev->
next = prev_next;
7133 parent->children = parent_childs;
7134 parent->last = parent_last;
7142 return(nb_valid_elements);
int strcmp(const char *String1, const char *String2)
ACPI_SIZE strlen(const char *String)
void user(int argc, const char *argv[])
XMLPUBFUN xmlEntityPtr XMLCALL xmlGetDocEntity(const xmlDoc *doc, const xmlChar *name)
@ XML_EXTERNAL_GENERAL_UNPARSED_ENTITY
xmlEntitiesTable * xmlEntitiesTablePtr
char ** glob(const char *v)
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
GLenum GLuint GLenum GLsizei const GLchar * buf
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
static const struct access_res create[16]
XMLPUBFUN int XMLCALL xmlStringCurrentChar(xmlParserCtxtPtr ctxt, const xmlChar *cur, int *len)
static unsigned __int64 next
XMLPUBFUN const xmlChar *XMLCALL xmlDictLookup(xmlDictPtr dict, const xmlChar *name, int len)
XMLPUBFUN int XMLCALL xmlDictOwns(xmlDictPtr dict, const xmlChar *str)
XMLPUBVAR xmlMallocFunc xmlMalloc
XMLPUBVAR xmlFreeFunc xmlFree
XMLPUBVAR void * xmlGenericErrorContext
XMLPUBVAR xmlReallocFunc xmlRealloc
XMLPUBVAR xmlGenericErrorFunc xmlGenericError
XMLPUBFUN int XMLCALL xmlHashAddEntry2(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, void *userdata)
XMLPUBFUN void XMLCALL xmlHashFree(xmlHashTablePtr table, xmlHashDeallocator f)
XMLPUBFUN void *XMLCALL xmlHashLookup3(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, const xmlChar *name3)
XMLPUBFUN void *XMLCALL xmlHashLookup(xmlHashTablePtr table, const xmlChar *name)
XMLPUBFUN int XMLCALL xmlHashRemoveEntry2(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, xmlHashDeallocator f)
XMLPUBFUN xmlHashTablePtr XMLCALL xmlHashCreateDict(int size, xmlDictPtr dict)
XMLPUBFUN int XMLCALL xmlHashAddEntry(xmlHashTablePtr table, const xmlChar *name, void *userdata)
XMLPUBFUN int XMLCALL xmlHashRemoveEntry(xmlHashTablePtr table, const xmlChar *name, xmlHashDeallocator f)
XMLPUBFUN void *XMLCALL xmlHashLookup2(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2)
XMLPUBFUN void XMLCALL xmlHashScan3(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, const xmlChar *name3, xmlHashScanner f, void *data)
XMLPUBFUN int XMLCALL xmlHashAddEntry3(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, const xmlChar *name3, void *userdata)
XMLPUBFUN void XMLCALL xmlHashScan(xmlHashTablePtr table, xmlHashScanner f, void *data)
XMLPUBFUN int XMLCALL xmlHashUpdateEntry(xmlHashTablePtr table, const xmlChar *name, void *userdata, xmlHashDeallocator f)
XMLPUBFUN xmlHashTablePtr XMLCALL xmlHashCopy(xmlHashTablePtr table, xmlHashCopier f)
XMLPUBFUN void XMLCALL xmlListWalk(xmlListPtr l, xmlListWalker walker, void *user)
XMLPUBFUN int XMLCALL xmlListEmpty(xmlListPtr l)
XMLPUBFUN void *XMLCALL xmlLinkGetData(xmlLinkPtr lk)
XMLPUBFUN int XMLCALL xmlListAppend(xmlListPtr l, void *data)
XMLPUBFUN void XMLCALL xmlListDelete(xmlListPtr l)
XMLPUBFUN xmlListPtr XMLCALL xmlListCreate(xmlListDeallocator deallocator, xmlListDataCompare compare)
XMLPUBFUN int XMLCALL xmlListRemoveFirst(xmlListPtr l, void *data)
XMLPUBFUN xmlNodePtr XMLCALL xmlDocGetRootElement(const xmlDoc *doc)
@ XML_ATTRIBUTE_ENUMERATION
XMLPUBFUN void XMLCALL xmlBufferWriteChar(xmlBufferPtr buf, const char *string)
xmlElementContent * xmlElementContentPtr
XMLPUBFUN xmlNodePtr XMLCALL xmlNewDocNode(xmlDocPtr doc, xmlNsPtr ns, const xmlChar *name, const xmlChar *content)
XMLPUBFUN xmlChar *XMLCALL xmlBuildQName(const xmlChar *ncname, const xmlChar *prefix, xmlChar *memory, int len)
xmlElement * xmlElementPtr
@ XML_ELEMENT_CONTENT_OPT
@ XML_ELEMENT_CONTENT_ONCE
@ XML_ELEMENT_CONTENT_PLUS
@ XML_ELEMENT_CONTENT_MULT
XMLPUBFUN void XMLCALL xmlBufferWriteCHAR(xmlBufferPtr buf, const xmlChar *string)
XMLPUBFUN void XMLCALL xmlUnlinkNode(xmlNodePtr cur)
xmlNotation * xmlNotationPtr
xmlEnumeration * xmlEnumerationPtr
XMLPUBFUN int XMLCALL xmlIsBlankNode(const xmlNode *node)
XMLPUBFUN long XMLCALL xmlGetLineNo(const xmlNode *node)
XMLPUBFUN void XMLCALL xmlFreeNodeList(xmlNodePtr cur)
@ XML_ELEMENT_TYPE_UNDEFINED
@ XML_ELEMENT_TYPE_ELEMENT
XMLPUBFUN void XMLCALL xmlBufferWriteQuotedString(xmlBufferPtr buf, const xmlChar *string)
XMLPUBFUN void XMLCALL xmlFreeNode(xmlNodePtr cur)
XMLPUBFUN const xmlChar *XMLCALL xmlSplitQName3(const xmlChar *name, int *len)
XMLPUBFUN xmlChar *XMLCALL xmlSplitQName2(const xmlChar *name, xmlChar **prefix)
xmlAttribute * xmlAttributePtr
@ XML_ELEMENT_CONTENT_PCDATA
@ XML_ELEMENT_CONTENT_ELEMENT
@ XML_ELEMENT_CONTENT_SEQ
XMLPUBFUN xmlChar *XMLCALL xmlNodeListGetString(xmlDocPtr doc, const xmlNode *list, int inLine)
const xmlChar * defaultValue
struct _xmlAttribute * nexth
struct _xmlDictEntry * dict
struct _xmlDtd * intSubset
struct _xmlDtd * extSubset
struct _xmlNode * children
struct _xmlElementContent * c2
xmlElementContentType type
struct _xmlElementContent * c1
xmlAttributePtr attributes
xmlElementContentPtr content
Character const *const prefix
XMLPUBFUN xmlChar *XMLCALL xmlBuildURI(const xmlChar *URI, const xmlChar *base)
int xmlIsRef(xmlDocPtr doc, xmlNodePtr elem, xmlAttrPtr attr)
static int xmlIsStreaming(xmlValidCtxtPtr ctxt)
static int xmlWalkRemoveRef(const void *data, void *user)
static void xmlVErrMemory(xmlValidCtxtPtr ctxt, const char *extra)
xmlRemoveMemo * xmlRemoveMemoPtr
int xmlIsID(xmlDocPtr doc, xmlNodePtr elem, xmlAttrPtr attr)
void xmlSnprintfElementContent(char *buf, int size, xmlElementContentPtr content, int englob)
static void xmlFreeIDTableEntry(void *id, const xmlChar *name ATTRIBUTE_UNUSED)
xmlValidateMemo * xmlValidateMemoPtr
static int xmlDummyCompare(const void *data0 ATTRIBUTE_UNUSED, const void *data1 ATTRIBUTE_UNUSED)
xmlAttributePtr xmlGetDtdQAttrDesc(xmlDtdPtr dtd, const xmlChar *elem, const xmlChar *name, const xmlChar *prefix)
xmlElementContentPtr xmlCopyElementContent(xmlElementContentPtr cur)
void xmlFreeIDTable(xmlIDTablePtr table)
static void xmlFreeID(xmlIDPtr id)
xmlNotationPtr xmlAddNotationDecl(xmlValidCtxtPtr ctxt, xmlDtdPtr dtd, const xmlChar *name, const xmlChar *PublicID, const xmlChar *SystemID)
static void xmlFreeNotation(xmlNotationPtr nota)
static xmlElementPtr xmlGetDtdElementDesc2(xmlDtdPtr dtd, const xmlChar *name, int create)
xmlElementPtr xmlGetDtdQElementDesc(xmlDtdPtr dtd, const xmlChar *name, const xmlChar *prefix)
xmlEnumerationPtr xmlCreateEnumeration(const xmlChar *name)
struct xmlValidateMemo_t xmlValidateMemo
xmlAttributePtr xmlGetDtdAttrDesc(xmlDtdPtr dtd, const xmlChar *elem, const xmlChar *name)
xmlIDPtr xmlAddID(xmlValidCtxtPtr ctxt, xmlDocPtr doc, const xmlChar *value, xmlAttrPtr attr)
void xmlFreeEnumeration(xmlEnumerationPtr cur)
xmlElementContentPtr xmlCopyDocElementContent(xmlDocPtr doc, xmlElementContentPtr cur)
xmlElementContentPtr xmlNewDocElementContent(xmlDocPtr doc, const xmlChar *name, xmlElementContentType type)
static void xmlFreeElementTableEntry(void *elem, const xmlChar *name ATTRIBUTE_UNUSED)
void xmlFreeDocElementContent(xmlDocPtr doc, xmlElementContentPtr cur)
void xmlFreeRefTable(xmlRefTablePtr table)
static void xmlFreeRefTableEntry(void *payload, const xmlChar *name ATTRIBUTE_UNUSED)
void xmlFreeNotationTable(xmlNotationTablePtr table)
static void xmlFreeElement(xmlElementPtr elem)
int xmlRemoveRef(xmlDocPtr doc, xmlAttrPtr attr)
xmlElementContentPtr xmlNewElementContent(const xmlChar *name, xmlElementContentType type)
xmlListPtr xmlGetRefs(xmlDocPtr doc, const xmlChar *ID)
int xmlRemoveID(xmlDocPtr doc, xmlAttrPtr attr)
xmlElementPtr xmlAddElementDecl(xmlValidCtxtPtr ctxt, xmlDtdPtr dtd, const xmlChar *name, xmlElementTypeVal type, xmlElementContentPtr content)
void xmlFreeElementContent(xmlElementContentPtr cur)
void xmlFreeElementTable(xmlElementTablePtr table)
xmlNotationPtr xmlGetDtdNotationDesc(xmlDtdPtr dtd, const xmlChar *name)
int xmlIsMixedElement(xmlDocPtr doc, const xmlChar *name)
static void xmlFreeAttributeTableEntry(void *attr, const xmlChar *name ATTRIBUTE_UNUSED)
xmlAttributePtr xmlAddAttributeDecl(xmlValidCtxtPtr ctxt, xmlDtdPtr dtd, const xmlChar *elem, const xmlChar *name, const xmlChar *ns, xmlAttributeType type, xmlAttributeDefault def, const xmlChar *defaultValue, xmlEnumerationPtr tree)
static void xmlValidNormalizeString(xmlChar *str)
static void xmlFreeNotationTableEntry(void *nota, const xmlChar *name ATTRIBUTE_UNUSED)
static void xmlFreeRef(xmlLinkPtr lk)
xmlAttrPtr xmlGetID(xmlDocPtr doc, const xmlChar *ID)
xmlRefPtr xmlAddRef(xmlValidCtxtPtr ctxt, xmlDocPtr doc, const xmlChar *value, xmlAttrPtr attr)
xmlElementPtr xmlGetDtdElementDesc(xmlDtdPtr dtd, const xmlChar *name)
void xmlFreeAttributeTable(xmlAttributeTablePtr table)
struct xmlRemoveMemo_t xmlRemoveMemo
static void xmlFreeAttribute(xmlAttributePtr attr)
xmlRefTable * xmlRefTablePtr
xmlIDTable * xmlIDTablePtr
xmlAttributeTable * xmlAttributeTablePtr
xmlElementTable * xmlElementTablePtr
typedeftypedef void(XMLCDECL *) typedef void(XMLCDECL *) struct _xmlValidCtx xmlValidCtxt)
xmlValidState * xmlValidStatePtr
xmlValidCtxt * xmlValidCtxtPtr
xmlNotationTable * xmlNotationTablePtr
struct _xmlValidState xmlValidState
static GLenum _GLUfuncptr fn
void(XMLCDECL * xmlGenericErrorFunc)(void *ctx, const char *msg,...) LIBXML_ATTR_FORMAT(2
void(XMLCDECL *) typedef void(XMLCALL * xmlStructuredErrorFunc)(void *userData, xmlErrorPtr error)
@ XML_DTD_ATTRIBUTE_REDEFINED
@ XML_DTD_DIFFERENT_PREFIX
@ XML_DTD_UNKNOWN_ATTRIBUTE
@ XML_DTD_INVALID_DEFAULT
@ XML_DTD_ATTRIBUTE_DEFAULT
@ XML_DTD_ELEM_DEFAULT_NAMESPACE
@ XML_DTD_MISSING_ATTRIBUTE
@ XML_DTD_CONTENT_NOT_DETERMINIST
@ XML_DTD_ATTRIBUTE_VALUE
@ XML_DTD_NOTATION_REDEFINED
@ XML_DTD_STANDALONE_WHITE_SPACE
@ XML_DTD_UNKNOWN_NOTATION
XMLPUBFUN xmlChar *XMLCALL xmlStrndup(const xmlChar *cur, int len)
XMLPUBFUN int XMLCALL xmlStrncmp(const xmlChar *str1, const xmlChar *str2, int len)
XMLPUBFUN xmlChar *XMLCALL xmlStrdup(const xmlChar *cur)
XMLPUBFUN int XMLCALL xmlStrEqual(const xmlChar *str1, const xmlChar *str2)
XMLPUBFUN int XMLCALL xmlStrlen(const xmlChar *str)
#define LIBXML_ATTR_FORMAT(fmt, args)