• Home
  • Raw
  • Download

Lines Matching refs:ctxt

436 xmlRngPErrMemory(xmlRelaxNGParserCtxtPtr ctxt, const char *extra)  in xmlRngPErrMemory()  argument
442 if (ctxt != NULL) { in xmlRngPErrMemory()
443 if (ctxt->serror != NULL) in xmlRngPErrMemory()
444 schannel = ctxt->serror; in xmlRngPErrMemory()
446 channel = ctxt->error; in xmlRngPErrMemory()
447 data = ctxt->userData; in xmlRngPErrMemory()
448 ctxt->nbErrors++; in xmlRngPErrMemory()
471 xmlRngVErrMemory(xmlRelaxNGValidCtxtPtr ctxt, const char *extra) in xmlRngVErrMemory() argument
477 if (ctxt != NULL) { in xmlRngVErrMemory()
478 if (ctxt->serror != NULL) in xmlRngVErrMemory()
479 schannel = ctxt->serror; in xmlRngVErrMemory()
481 channel = ctxt->error; in xmlRngVErrMemory()
482 data = ctxt->userData; in xmlRngVErrMemory()
483 ctxt->nbErrors++; in xmlRngVErrMemory()
510 xmlRngPErr(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node, int error, in xmlRngPErr() argument
517 if (ctxt != NULL) { in xmlRngPErr()
518 if (ctxt->serror != NULL) in xmlRngPErr()
519 schannel = ctxt->serror; in xmlRngPErr()
521 channel = ctxt->error; in xmlRngPErr()
522 data = ctxt->userData; in xmlRngPErr()
523 ctxt->nbErrors++; in xmlRngPErr()
544 xmlRngVErr(xmlRelaxNGValidCtxtPtr ctxt, xmlNodePtr node, int error, in xmlRngVErr() argument
551 if (ctxt != NULL) { in xmlRngVErr()
552 if (ctxt->serror != NULL) in xmlRngVErr()
553 schannel = ctxt->serror; in xmlRngVErr()
555 channel = ctxt->error; in xmlRngVErr()
556 data = ctxt->userData; in xmlRngVErr()
557 ctxt->nbErrors++; in xmlRngVErr()
665 static int xmlRelaxNGEqualValidState(xmlRelaxNGValidCtxtPtr ctxt
669 static void xmlRelaxNGFreeValidState(xmlRelaxNGValidCtxtPtr ctxt,
759 xmlRelaxNGNewRelaxNG(xmlRelaxNGParserCtxtPtr ctxt) in xmlRelaxNGNewRelaxNG() argument
765 xmlRngPErrMemory(ctxt, NULL); in xmlRelaxNGNewRelaxNG()
838 xmlRelaxNGNewGrammar(xmlRelaxNGParserCtxtPtr ctxt) in xmlRelaxNGNewGrammar() argument
844 xmlRngPErrMemory(ctxt, NULL); in xmlRelaxNGNewGrammar()
890 xmlRelaxNGNewDefine(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) in xmlRelaxNGNewDefine() argument
894 if (ctxt->defMax == 0) { in xmlRelaxNGNewDefine()
895 ctxt->defMax = 16; in xmlRelaxNGNewDefine()
896 ctxt->defNr = 0; in xmlRelaxNGNewDefine()
897 ctxt->defTab = (xmlRelaxNGDefinePtr *) in xmlRelaxNGNewDefine()
898 xmlMalloc(ctxt->defMax * sizeof(xmlRelaxNGDefinePtr)); in xmlRelaxNGNewDefine()
899 if (ctxt->defTab == NULL) { in xmlRelaxNGNewDefine()
900 xmlRngPErrMemory(ctxt, "allocating define\n"); in xmlRelaxNGNewDefine()
903 } else if (ctxt->defMax <= ctxt->defNr) { in xmlRelaxNGNewDefine()
906 ctxt->defMax *= 2; in xmlRelaxNGNewDefine()
907 tmp = (xmlRelaxNGDefinePtr *) xmlRealloc(ctxt->defTab, in xmlRelaxNGNewDefine()
908 ctxt->defMax * in xmlRelaxNGNewDefine()
912 xmlRngPErrMemory(ctxt, "allocating define\n"); in xmlRelaxNGNewDefine()
915 ctxt->defTab = tmp; in xmlRelaxNGNewDefine()
919 xmlRngPErrMemory(ctxt, "allocating define\n"); in xmlRelaxNGNewDefine()
923 ctxt->defTab[ctxt->defNr++] = ret; in xmlRelaxNGNewDefine()
1006 xmlRelaxNGNewStates(xmlRelaxNGValidCtxtPtr ctxt, int size) in xmlRelaxNGNewStates() argument
1010 if ((ctxt != NULL) && in xmlRelaxNGNewStates()
1011 (ctxt->freeStates != NULL) && (ctxt->freeStatesNr > 0)) { in xmlRelaxNGNewStates()
1012 ctxt->freeStatesNr--; in xmlRelaxNGNewStates()
1013 ret = ctxt->freeStates[ctxt->freeStatesNr]; in xmlRelaxNGNewStates()
1025 xmlRngVErrMemory(ctxt, "allocating states\n"); in xmlRelaxNGNewStates()
1034 xmlRngVErrMemory(ctxt, "allocating states\n"); in xmlRelaxNGNewStates()
1053 xmlRelaxNGAddStatesUniq(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGAddStatesUniq() argument
1070 xmlRngVErrMemory(ctxt, "adding states\n"); in xmlRelaxNGAddStatesUniq()
1091 xmlRelaxNGAddStates(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGAddStates() argument
1110 xmlRngVErrMemory(ctxt, "adding states\n"); in xmlRelaxNGAddStates()
1117 if (xmlRelaxNGEqualValidState(ctxt, state, states->tabState[i])) { in xmlRelaxNGAddStates()
1118 xmlRelaxNGFreeValidState(ctxt, state); in xmlRelaxNGAddStates()
1134 xmlRelaxNGFreeStates(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGFreeStates() argument
1139 if ((ctxt != NULL) && (ctxt->freeStates == NULL)) { in xmlRelaxNGFreeStates()
1140 ctxt->freeStatesMax = 40; in xmlRelaxNGFreeStates()
1141 ctxt->freeStatesNr = 0; in xmlRelaxNGFreeStates()
1142 ctxt->freeStates = (xmlRelaxNGStatesPtr *) in xmlRelaxNGFreeStates()
1143 xmlMalloc(ctxt->freeStatesMax * sizeof(xmlRelaxNGStatesPtr)); in xmlRelaxNGFreeStates()
1144 if (ctxt->freeStates == NULL) { in xmlRelaxNGFreeStates()
1145 xmlRngVErrMemory(ctxt, "storing states\n"); in xmlRelaxNGFreeStates()
1147 } else if ((ctxt != NULL) in xmlRelaxNGFreeStates()
1148 && (ctxt->freeStatesNr >= ctxt->freeStatesMax)) { in xmlRelaxNGFreeStates()
1151 tmp = (xmlRelaxNGStatesPtr *) xmlRealloc(ctxt->freeStates, in xmlRelaxNGFreeStates()
1152 2 * ctxt->freeStatesMax * in xmlRelaxNGFreeStates()
1156 xmlRngVErrMemory(ctxt, "storing states\n"); in xmlRelaxNGFreeStates()
1161 ctxt->freeStates = tmp; in xmlRelaxNGFreeStates()
1162 ctxt->freeStatesMax *= 2; in xmlRelaxNGFreeStates()
1164 if ((ctxt == NULL) || (ctxt->freeStates == NULL)) { in xmlRelaxNGFreeStates()
1168 ctxt->freeStates[ctxt->freeStatesNr++] = states; in xmlRelaxNGFreeStates()
1182 xmlRelaxNGNewValidState(xmlRelaxNGValidCtxtPtr ctxt, xmlNodePtr node) in xmlRelaxNGNewValidState() argument
1191 root = xmlDocGetRootElement(ctxt->doc); in xmlRelaxNGNewValidState()
1204 if ((ctxt->freeState != NULL) && (ctxt->freeState->nbState > 0)) { in xmlRelaxNGNewValidState()
1205 ctxt->freeState->nbState--; in xmlRelaxNGNewValidState()
1206 ret = ctxt->freeState->tabState[ctxt->freeState->nbState]; in xmlRelaxNGNewValidState()
1212 xmlRngVErrMemory(ctxt, "allocating states\n"); in xmlRelaxNGNewValidState()
1220 ret->node = (xmlNodePtr) ctxt->doc; in xmlRelaxNGNewValidState()
1236 xmlRngVErrMemory(ctxt, "allocating states\n"); in xmlRelaxNGNewValidState()
1245 xmlRngVErrMemory(ctxt, "allocating states\n"); in xmlRelaxNGNewValidState()
1277 xmlRelaxNGCopyValidState(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGCopyValidState() argument
1286 if ((ctxt->freeState != NULL) && (ctxt->freeState->nbState > 0)) { in xmlRelaxNGCopyValidState()
1287 ctxt->freeState->nbState--; in xmlRelaxNGCopyValidState()
1288 ret = ctxt->freeState->tabState[ctxt->freeState->nbState]; in xmlRelaxNGCopyValidState()
1294 xmlRngVErrMemory(ctxt, "allocating states\n"); in xmlRelaxNGCopyValidState()
1310 xmlRngVErrMemory(ctxt, "allocating states\n"); in xmlRelaxNGCopyValidState()
1320 xmlRngVErrMemory(ctxt, "allocating states\n"); in xmlRelaxNGCopyValidState()
1344 xmlRelaxNGEqualValidState(xmlRelaxNGValidCtxtPtr ctxt ATTRIBUTE_UNUSED, in xmlRelaxNGEqualValidState()
1381 xmlRelaxNGFreeValidState(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGFreeValidState() argument
1387 if ((ctxt != NULL) && (ctxt->freeState == NULL)) { in xmlRelaxNGFreeValidState()
1388 ctxt->freeState = xmlRelaxNGNewStates(ctxt, 40); in xmlRelaxNGFreeValidState()
1390 if ((ctxt == NULL) || (ctxt->freeState == NULL)) { in xmlRelaxNGFreeValidState()
1395 xmlRelaxNGAddStatesUniq(ctxt, ctxt->freeState, state); in xmlRelaxNGFreeValidState()
1416 xmlRelaxParserSetFlag(xmlRelaxNGParserCtxtPtr ctxt, int flags) in xmlRelaxParserSetFlag() argument
1418 if (ctxt == NULL) return(-1); in xmlRelaxParserSetFlag()
1420 ctxt->crng |= XML_RELAXNGP_FREE_DOC; in xmlRelaxParserSetFlag()
1424 ctxt->crng |= XML_RELAXNGP_CRNG; in xmlRelaxParserSetFlag()
1436 static xmlDocPtr xmlRelaxNGCleanupDoc(xmlRelaxNGParserCtxtPtr ctxt,
1449 xmlRelaxNGIncludePush(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGIncludePush() argument
1452 if (ctxt->incTab == NULL) { in xmlRelaxNGIncludePush()
1453 ctxt->incMax = 4; in xmlRelaxNGIncludePush()
1454 ctxt->incNr = 0; in xmlRelaxNGIncludePush()
1455 ctxt->incTab = in xmlRelaxNGIncludePush()
1456 (xmlRelaxNGIncludePtr *) xmlMalloc(ctxt->incMax * in xmlRelaxNGIncludePush()
1457 sizeof(ctxt->incTab[0])); in xmlRelaxNGIncludePush()
1458 if (ctxt->incTab == NULL) { in xmlRelaxNGIncludePush()
1459 xmlRngPErrMemory(ctxt, "allocating include\n"); in xmlRelaxNGIncludePush()
1463 if (ctxt->incNr >= ctxt->incMax) { in xmlRelaxNGIncludePush()
1464 ctxt->incMax *= 2; in xmlRelaxNGIncludePush()
1465 ctxt->incTab = in xmlRelaxNGIncludePush()
1466 (xmlRelaxNGIncludePtr *) xmlRealloc(ctxt->incTab, in xmlRelaxNGIncludePush()
1467 ctxt->incMax * in xmlRelaxNGIncludePush()
1468 sizeof(ctxt->incTab[0])); in xmlRelaxNGIncludePush()
1469 if (ctxt->incTab == NULL) { in xmlRelaxNGIncludePush()
1470 xmlRngPErrMemory(ctxt, "allocating include\n"); in xmlRelaxNGIncludePush()
1474 ctxt->incTab[ctxt->incNr] = value; in xmlRelaxNGIncludePush()
1475 ctxt->inc = value; in xmlRelaxNGIncludePush()
1476 return (ctxt->incNr++); in xmlRelaxNGIncludePush()
1488 xmlRelaxNGIncludePop(xmlRelaxNGParserCtxtPtr ctxt) in xmlRelaxNGIncludePop() argument
1492 if (ctxt->incNr <= 0) in xmlRelaxNGIncludePop()
1494 ctxt->incNr--; in xmlRelaxNGIncludePop()
1495 if (ctxt->incNr > 0) in xmlRelaxNGIncludePop()
1496 ctxt->inc = ctxt->incTab[ctxt->incNr - 1]; in xmlRelaxNGIncludePop()
1498 ctxt->inc = NULL; in xmlRelaxNGIncludePop()
1499 ret = ctxt->incTab[ctxt->incNr]; in xmlRelaxNGIncludePop()
1500 ctxt->incTab[ctxt->incNr] = NULL; in xmlRelaxNGIncludePop()
1516 xmlRelaxNGRemoveRedefine(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGRemoveRedefine() argument
1563 if (xmlRelaxNGRemoveRedefine(ctxt, href, in xmlRelaxNGRemoveRedefine()
1594 xmlRelaxNGLoadInclude(xmlRelaxNGParserCtxtPtr ctxt, const xmlChar * URL, in xmlRelaxNGLoadInclude() argument
1610 for (i = 0; i < ctxt->incNr; i++) { in xmlRelaxNGLoadInclude()
1611 if (xmlStrEqual(ctxt->incTab[i]->href, URL)) { in xmlRelaxNGLoadInclude()
1612 xmlRngPErr(ctxt, NULL, XML_RNGP_INCLUDE_RECURSE, in xmlRelaxNGLoadInclude()
1624 xmlRngPErr(ctxt, node, XML_RNGP_PARSE_ERROR, in xmlRelaxNGLoadInclude()
1637 xmlRngPErrMemory(ctxt, "allocating include\n"); in xmlRelaxNGLoadInclude()
1644 ret->next = ctxt->includes; in xmlRelaxNGLoadInclude()
1645 ctxt->includes = ret; in xmlRelaxNGLoadInclude()
1662 xmlRelaxNGIncludePush(ctxt, ret); in xmlRelaxNGLoadInclude()
1672 doc = xmlRelaxNGCleanupDoc(ctxt, doc); in xmlRelaxNGLoadInclude()
1674 ctxt->inc = NULL; in xmlRelaxNGLoadInclude()
1681 xmlRelaxNGIncludePop(ctxt); in xmlRelaxNGLoadInclude()
1691 xmlRngPErr(ctxt, node, XML_RNGP_EMPTY, in xmlRelaxNGLoadInclude()
1697 xmlRngPErr(ctxt, node, XML_RNGP_GRAMMAR_MISSING, in xmlRelaxNGLoadInclude()
1712 xmlRelaxNGRemoveRedefine(ctxt, URL, root->children, NULL); in xmlRelaxNGLoadInclude()
1714 xmlRngPErr(ctxt, node, XML_RNGP_START_MISSING, in xmlRelaxNGLoadInclude()
1723 xmlRngPErr(ctxt, node, XML_RNGP_NAME_MISSING, in xmlRelaxNGLoadInclude()
1730 found = xmlRelaxNGRemoveRedefine(ctxt, URL, in xmlRelaxNGLoadInclude()
1733 xmlRngPErr(ctxt, node, XML_RNGP_DEFINE_MISSING, in xmlRelaxNGLoadInclude()
1760 xmlRelaxNGValidErrorPush(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidErrorPush() argument
1768 "Pushing error %d at %d on stack\n", err, ctxt->errNr); in xmlRelaxNGValidErrorPush()
1770 if (ctxt->errTab == NULL) { in xmlRelaxNGValidErrorPush()
1771 ctxt->errMax = 8; in xmlRelaxNGValidErrorPush()
1772 ctxt->errNr = 0; in xmlRelaxNGValidErrorPush()
1773 ctxt->errTab = in xmlRelaxNGValidErrorPush()
1774 (xmlRelaxNGValidErrorPtr) xmlMalloc(ctxt->errMax * in xmlRelaxNGValidErrorPush()
1777 if (ctxt->errTab == NULL) { in xmlRelaxNGValidErrorPush()
1778 xmlRngVErrMemory(ctxt, "pushing error\n"); in xmlRelaxNGValidErrorPush()
1781 ctxt->err = NULL; in xmlRelaxNGValidErrorPush()
1783 if (ctxt->errNr >= ctxt->errMax) { in xmlRelaxNGValidErrorPush()
1784 ctxt->errMax *= 2; in xmlRelaxNGValidErrorPush()
1785 ctxt->errTab = in xmlRelaxNGValidErrorPush()
1786 (xmlRelaxNGValidErrorPtr) xmlRealloc(ctxt->errTab, in xmlRelaxNGValidErrorPush()
1787 ctxt->errMax * in xmlRelaxNGValidErrorPush()
1790 if (ctxt->errTab == NULL) { in xmlRelaxNGValidErrorPush()
1791 xmlRngVErrMemory(ctxt, "pushing error\n"); in xmlRelaxNGValidErrorPush()
1794 ctxt->err = &ctxt->errTab[ctxt->errNr - 1]; in xmlRelaxNGValidErrorPush()
1796 if ((ctxt->err != NULL) && (ctxt->state != NULL) && in xmlRelaxNGValidErrorPush()
1797 (ctxt->err->node == ctxt->state->node) && (ctxt->err->err == err)) in xmlRelaxNGValidErrorPush()
1798 return (ctxt->errNr); in xmlRelaxNGValidErrorPush()
1799 cur = &ctxt->errTab[ctxt->errNr]; in xmlRelaxNGValidErrorPush()
1810 if (ctxt->state != NULL) { in xmlRelaxNGValidErrorPush()
1811 cur->node = ctxt->state->node; in xmlRelaxNGValidErrorPush()
1812 cur->seq = ctxt->state->seq; in xmlRelaxNGValidErrorPush()
1817 ctxt->err = cur; in xmlRelaxNGValidErrorPush()
1818 return (ctxt->errNr++); in xmlRelaxNGValidErrorPush()
1828 xmlRelaxNGValidErrorPop(xmlRelaxNGValidCtxtPtr ctxt) in xmlRelaxNGValidErrorPop() argument
1832 if (ctxt->errNr <= 0) { in xmlRelaxNGValidErrorPop()
1833 ctxt->err = NULL; in xmlRelaxNGValidErrorPop()
1836 ctxt->errNr--; in xmlRelaxNGValidErrorPop()
1837 if (ctxt->errNr > 0) in xmlRelaxNGValidErrorPop()
1838 ctxt->err = &ctxt->errTab[ctxt->errNr - 1]; in xmlRelaxNGValidErrorPop()
1840 ctxt->err = NULL; in xmlRelaxNGValidErrorPop()
1841 cur = &ctxt->errTab[ctxt->errNr]; in xmlRelaxNGValidErrorPop()
1863 xmlRelaxNGDocumentPush(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGDocumentPush() argument
1866 if (ctxt->docTab == NULL) { in xmlRelaxNGDocumentPush()
1867 ctxt->docMax = 4; in xmlRelaxNGDocumentPush()
1868 ctxt->docNr = 0; in xmlRelaxNGDocumentPush()
1869 ctxt->docTab = in xmlRelaxNGDocumentPush()
1870 (xmlRelaxNGDocumentPtr *) xmlMalloc(ctxt->docMax * in xmlRelaxNGDocumentPush()
1871 sizeof(ctxt->docTab[0])); in xmlRelaxNGDocumentPush()
1872 if (ctxt->docTab == NULL) { in xmlRelaxNGDocumentPush()
1873 xmlRngPErrMemory(ctxt, "adding document\n"); in xmlRelaxNGDocumentPush()
1877 if (ctxt->docNr >= ctxt->docMax) { in xmlRelaxNGDocumentPush()
1878 ctxt->docMax *= 2; in xmlRelaxNGDocumentPush()
1879 ctxt->docTab = in xmlRelaxNGDocumentPush()
1880 (xmlRelaxNGDocumentPtr *) xmlRealloc(ctxt->docTab, in xmlRelaxNGDocumentPush()
1881 ctxt->docMax * in xmlRelaxNGDocumentPush()
1882 sizeof(ctxt->docTab[0])); in xmlRelaxNGDocumentPush()
1883 if (ctxt->docTab == NULL) { in xmlRelaxNGDocumentPush()
1884 xmlRngPErrMemory(ctxt, "adding document\n"); in xmlRelaxNGDocumentPush()
1888 ctxt->docTab[ctxt->docNr] = value; in xmlRelaxNGDocumentPush()
1889 ctxt->doc = value; in xmlRelaxNGDocumentPush()
1890 return (ctxt->docNr++); in xmlRelaxNGDocumentPush()
1902 xmlRelaxNGDocumentPop(xmlRelaxNGParserCtxtPtr ctxt) in xmlRelaxNGDocumentPop() argument
1906 if (ctxt->docNr <= 0) in xmlRelaxNGDocumentPop()
1908 ctxt->docNr--; in xmlRelaxNGDocumentPop()
1909 if (ctxt->docNr > 0) in xmlRelaxNGDocumentPop()
1910 ctxt->doc = ctxt->docTab[ctxt->docNr - 1]; in xmlRelaxNGDocumentPop()
1912 ctxt->doc = NULL; in xmlRelaxNGDocumentPop()
1913 ret = ctxt->docTab[ctxt->docNr]; in xmlRelaxNGDocumentPop()
1914 ctxt->docTab[ctxt->docNr] = NULL; in xmlRelaxNGDocumentPop()
1931 xmlRelaxNGLoadExternalRef(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGLoadExternalRef() argument
1942 for (i = 0; i < ctxt->docNr; i++) { in xmlRelaxNGLoadExternalRef()
1943 if (xmlStrEqual(ctxt->docTab[i]->href, URL)) { in xmlRelaxNGLoadExternalRef()
1944 xmlRngPErr(ctxt, NULL, XML_RNGP_EXTERNALREF_RECURSE, in xmlRelaxNGLoadExternalRef()
1956 xmlRngPErr(ctxt, NULL, XML_RNGP_PARSE_ERROR, in xmlRelaxNGLoadExternalRef()
1966 xmlRngPErr(ctxt, (xmlNodePtr) doc, XML_ERR_NO_MEMORY, in xmlRelaxNGLoadExternalRef()
1974 ret->next = ctxt->documents; in xmlRelaxNGLoadExternalRef()
1976 ctxt->documents = ret; in xmlRelaxNGLoadExternalRef()
1993 xmlRelaxNGDocumentPush(ctxt, ret); in xmlRelaxNGLoadExternalRef()
1998 doc = xmlRelaxNGCleanupDoc(ctxt, doc); in xmlRelaxNGLoadExternalRef()
2000 ctxt->doc = NULL; in xmlRelaxNGLoadExternalRef()
2004 xmlRelaxNGDocumentPop(ctxt); in xmlRelaxNGLoadExternalRef()
2015 #define VALID_ERR(a) xmlRelaxNGAddValidError(ctxt, a, NULL, NULL, 0);
2016 #define VALID_ERR2(a, b) xmlRelaxNGAddValidError(ctxt, a, b, NULL, 0);
2017 #define VALID_ERR3(a, b, c) xmlRelaxNGAddValidError(ctxt, a, b, c, 0);
2018 #define VALID_ERR2P(a, b) xmlRelaxNGAddValidError(ctxt, a, b, NULL, 1);
2019 #define VALID_ERR3P(a, b, c) xmlRelaxNGAddValidError(ctxt, a, b, c, 1);
2232 xmlRelaxNGShowValidError(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGShowValidError() argument
2239 if (ctxt->flags & FLAGS_NOERROR) in xmlRelaxNGShowValidError()
2249 if (ctxt->errNo == XML_RELAXNG_OK) in xmlRelaxNGShowValidError()
2250 ctxt->errNo = err; in xmlRelaxNGShowValidError()
2251 xmlRngVErr(ctxt, (child == NULL ? node : child), err, in xmlRelaxNGShowValidError()
2264 xmlRelaxNGPopErrors(xmlRelaxNGValidCtxtPtr ctxt, int level) in xmlRelaxNGPopErrors() argument
2273 for (i = level; i < ctxt->errNr; i++) { in xmlRelaxNGPopErrors()
2274 err = &ctxt->errTab[i]; in xmlRelaxNGPopErrors()
2285 ctxt->errNr = level; in xmlRelaxNGPopErrors()
2286 if (ctxt->errNr <= 0) in xmlRelaxNGPopErrors()
2287 ctxt->err = NULL; in xmlRelaxNGPopErrors()
2297 xmlRelaxNGDumpValidError(xmlRelaxNGValidCtxtPtr ctxt) in xmlRelaxNGDumpValidError() argument
2304 "Dumping error stack %d errors\n", ctxt->errNr); in xmlRelaxNGDumpValidError()
2306 for (i = 0, k = 0; i < ctxt->errNr; i++) { in xmlRelaxNGDumpValidError()
2307 err = &ctxt->errTab[i]; in xmlRelaxNGDumpValidError()
2310 dup = &ctxt->errTab[j]; in xmlRelaxNGDumpValidError()
2317 xmlRelaxNGShowValidError(ctxt, err->err, err->node, err->seq, in xmlRelaxNGDumpValidError()
2332 ctxt->errNr = 0; in xmlRelaxNGDumpValidError()
2347 xmlRelaxNGAddValidError(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGAddValidError() argument
2351 if (ctxt == NULL) in xmlRelaxNGAddValidError()
2353 if (ctxt->flags & FLAGS_NOERROR) in xmlRelaxNGAddValidError()
2362 if (((ctxt->flags & FLAGS_IGNORABLE) == 0) || in xmlRelaxNGAddValidError()
2363 (ctxt->flags & FLAGS_NEGATIVE)) { in xmlRelaxNGAddValidError()
2370 if (ctxt->errNr != 0) in xmlRelaxNGAddValidError()
2371 xmlRelaxNGDumpValidError(ctxt); in xmlRelaxNGAddValidError()
2372 if (ctxt->state != NULL) { in xmlRelaxNGAddValidError()
2373 node = ctxt->state->node; in xmlRelaxNGAddValidError()
2374 seq = ctxt->state->seq; in xmlRelaxNGAddValidError()
2379 node = ctxt->pnode; in xmlRelaxNGAddValidError()
2381 xmlRelaxNGShowValidError(ctxt, err, node, seq, arg1, arg2); in xmlRelaxNGAddValidError()
2387 xmlRelaxNGValidErrorPush(ctxt, err, arg1, arg2, dup); in xmlRelaxNGAddValidError()
2397 static xmlChar *xmlRelaxNGNormalize(xmlRelaxNGValidCtxtPtr ctxt,
2862 static int xmlRelaxNGTryCompile(xmlRelaxNGParserCtxtPtr ctxt,
3025 xmlRelaxNGCompile(xmlRelaxNGParserCtxtPtr ctxt, xmlRelaxNGDefinePtr def) in xmlRelaxNGCompile() argument
3030 if ((ctxt == NULL) || (def == NULL)) in xmlRelaxNGCompile()
3036 xmlAutomataPtr oldam = ctxt->am; in xmlRelaxNGCompile()
3037 xmlAutomataStatePtr oldstate = ctxt->state; in xmlRelaxNGCompile()
3042 ctxt->am = xmlNewAutomata(); in xmlRelaxNGCompile()
3043 if (ctxt->am == NULL) in xmlRelaxNGCompile()
3054 xmlAutomataSetFlags(ctxt->am, 1); in xmlRelaxNGCompile()
3056 ctxt->state = xmlAutomataGetInitState(ctxt->am); in xmlRelaxNGCompile()
3058 xmlRelaxNGCompile(ctxt, list); in xmlRelaxNGCompile()
3061 xmlAutomataSetFinalState(ctxt->am, ctxt->state); in xmlRelaxNGCompile()
3062 def->contModel = xmlAutomataCompile(ctxt->am); in xmlRelaxNGCompile()
3065 xmlFreeAutomata(ctxt->am); in xmlRelaxNGCompile()
3066 ctxt->state = oldstate; in xmlRelaxNGCompile()
3067 ctxt->am = oldam; in xmlRelaxNGCompile()
3071 if ((ctxt->am != NULL) && (def->name != NULL)) { in xmlRelaxNGCompile()
3072 ctxt->state = xmlAutomataNewTransition2(ctxt->am, in xmlRelaxNGCompile()
3073 ctxt->state, NULL, in xmlRelaxNGCompile()
3078 xmlAutomataPtr oldam = ctxt->am; in xmlRelaxNGCompile()
3079 xmlAutomataStatePtr oldstate = ctxt->state; in xmlRelaxNGCompile()
3084 ctxt->am = xmlNewAutomata(); in xmlRelaxNGCompile()
3085 if (ctxt->am == NULL) in xmlRelaxNGCompile()
3087 xmlAutomataSetFlags(ctxt->am, 1); in xmlRelaxNGCompile()
3088 ctxt->state = xmlAutomataGetInitState(ctxt->am); in xmlRelaxNGCompile()
3090 xmlRelaxNGCompile(ctxt, list); in xmlRelaxNGCompile()
3093 xmlAutomataSetFinalState(ctxt->am, ctxt->state); in xmlRelaxNGCompile()
3094 def->contModel = xmlAutomataCompile(ctxt->am); in xmlRelaxNGCompile()
3107 xmlFreeAutomata(ctxt->am); in xmlRelaxNGCompile()
3108 ctxt->state = oldstate; in xmlRelaxNGCompile()
3109 ctxt->am = oldam; in xmlRelaxNGCompile()
3111 xmlAutomataPtr oldam = ctxt->am; in xmlRelaxNGCompile()
3118 ret = xmlRelaxNGTryCompile(ctxt, def); in xmlRelaxNGCompile()
3119 ctxt->am = oldam; in xmlRelaxNGCompile()
3123 ret = xmlRelaxNGCompile(ctxt, def->content); in xmlRelaxNGCompile()
3126 xmlAutomataStatePtr oldstate = ctxt->state; in xmlRelaxNGCompile()
3130 xmlRelaxNGCompile(ctxt, list); in xmlRelaxNGCompile()
3133 xmlAutomataNewEpsilon(ctxt->am, oldstate, ctxt->state); in xmlRelaxNGCompile()
3139 ctxt->state = in xmlRelaxNGCompile()
3140 xmlAutomataNewEpsilon(ctxt->am, ctxt->state, NULL); in xmlRelaxNGCompile()
3141 oldstate = ctxt->state; in xmlRelaxNGCompile()
3144 xmlRelaxNGCompile(ctxt, list); in xmlRelaxNGCompile()
3147 xmlAutomataNewEpsilon(ctxt->am, ctxt->state, oldstate); in xmlRelaxNGCompile()
3148 ctxt->state = in xmlRelaxNGCompile()
3149 xmlAutomataNewEpsilon(ctxt->am, oldstate, NULL); in xmlRelaxNGCompile()
3157 xmlRelaxNGCompile(ctxt, list); in xmlRelaxNGCompile()
3160 oldstate = ctxt->state; in xmlRelaxNGCompile()
3163 xmlRelaxNGCompile(ctxt, list); in xmlRelaxNGCompile()
3166 xmlAutomataNewEpsilon(ctxt->am, ctxt->state, oldstate); in xmlRelaxNGCompile()
3167 ctxt->state = in xmlRelaxNGCompile()
3168 xmlAutomataNewEpsilon(ctxt->am, oldstate, NULL); in xmlRelaxNGCompile()
3173 xmlAutomataStatePtr oldstate = ctxt->state; in xmlRelaxNGCompile()
3177 ctxt->state = oldstate; in xmlRelaxNGCompile()
3178 ret = xmlRelaxNGCompile(ctxt, list); in xmlRelaxNGCompile()
3182 target = ctxt->state; in xmlRelaxNGCompile()
3184 xmlAutomataNewEpsilon(ctxt->am, ctxt->state, in xmlRelaxNGCompile()
3189 ctxt->state = target; in xmlRelaxNGCompile()
3200 ret = xmlRelaxNGCompile(ctxt, list); in xmlRelaxNGCompile()
3209 ctxt->state = in xmlRelaxNGCompile()
3210 xmlAutomataNewEpsilon(ctxt->am, ctxt->state, NULL); in xmlRelaxNGCompile()
3211 oldstate = ctxt->state; in xmlRelaxNGCompile()
3212 xmlRelaxNGCompile(ctxt, def->content); in xmlRelaxNGCompile()
3213 xmlAutomataNewTransition(ctxt->am, ctxt->state, in xmlRelaxNGCompile()
3214 ctxt->state, BAD_CAST "#text", in xmlRelaxNGCompile()
3216 ctxt->state = in xmlRelaxNGCompile()
3217 xmlAutomataNewEpsilon(ctxt->am, oldstate, NULL); in xmlRelaxNGCompile()
3221 ctxt->state = in xmlRelaxNGCompile()
3222 xmlAutomataNewEpsilon(ctxt->am, ctxt->state, NULL); in xmlRelaxNGCompile()
3251 xmlRelaxNGTryCompile(xmlRelaxNGParserCtxtPtr ctxt, xmlRelaxNGDefinePtr def) in xmlRelaxNGTryCompile() argument
3256 if ((ctxt == NULL) || (def == NULL)) in xmlRelaxNGTryCompile()
3263 ctxt->am = NULL; in xmlRelaxNGTryCompile()
3264 ret = xmlRelaxNGCompile(ctxt, def); in xmlRelaxNGTryCompile()
3288 ret = xmlRelaxNGTryCompile(ctxt, def->content); in xmlRelaxNGTryCompile()
3311 ret = xmlRelaxNGTryCompile(ctxt, list); in xmlRelaxNGTryCompile()
3334 ctxt, xmlNodePtr node);
3336 ctxt, xmlNodePtr node);
3338 ctxt, xmlNodePtr nodes,
3341 ctxt, xmlNodePtr node);
3342 static xmlRelaxNGPtr xmlRelaxNGParseDocument(xmlRelaxNGParserCtxtPtr ctxt,
3344 static int xmlRelaxNGParseGrammarContent(xmlRelaxNGParserCtxtPtr ctxt,
3347 ctxt, xmlNodePtr node,
3351 ctxt, xmlNodePtr nodes);
3352 static int xmlRelaxNGElementMatch(xmlRelaxNGValidCtxtPtr ctxt,
3469 xmlRelaxNGGetDataTypeLibrary(xmlRelaxNGParserCtxtPtr ctxt ATTRIBUTE_UNUSED, in xmlRelaxNGGetDataTypeLibrary()
3522 xmlRelaxNGParseValue(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) in xmlRelaxNGParseValue() argument
3530 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParseValue()
3539 xmlRngPErr(ctxt, node, XML_RNGP_TYPE_VALUE, in xmlRelaxNGParseValue()
3542 library = xmlRelaxNGGetDataTypeLibrary(ctxt, node); in xmlRelaxNGParseValue()
3553 xmlRngPErr(ctxt, node, XML_RNGP_UNKNOWN_TYPE_LIB, in xmlRelaxNGParseValue()
3560 xmlRngPErr(ctxt, node, XML_RNGP_ERROR_TYPE_LIB, in xmlRelaxNGParseValue()
3566 xmlRngPErr(ctxt, node, XML_RNGP_TYPE_NOT_FOUND, in xmlRelaxNGParseValue()
3578 xmlRngPErr(ctxt, node, XML_RNGP_TEXT_EXPECTED, in xmlRelaxNGParseValue()
3584 xmlRngPErr(ctxt, node, XML_RNGP_VALUE_NO_CONTENT, in xmlRelaxNGParseValue()
3592 xmlRngPErr(ctxt, node, XML_RNGP_INVALID_VALUE, in xmlRelaxNGParseValue()
3614 xmlRelaxNGParseData(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) in xmlRelaxNGParseData() argument
3626 xmlRngPErr(ctxt, node, XML_RNGP_TYPE_MISSING, "data has no type\n", NULL, in xmlRelaxNGParseData()
3632 xmlRngPErr(ctxt, node, XML_RNGP_TYPE_VALUE, in xmlRelaxNGParseData()
3635 library = xmlRelaxNGGetDataTypeLibrary(ctxt, node); in xmlRelaxNGParseData()
3640 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParseData()
3652 xmlRngPErr(ctxt, node, XML_RNGP_UNKNOWN_TYPE_LIB, in xmlRelaxNGParseData()
3659 xmlRngPErr(ctxt, node, XML_RNGP_ERROR_TYPE_LIB, in xmlRelaxNGParseData()
3665 xmlRngPErr(ctxt, node, XML_RNGP_TYPE_NOT_FOUND, in xmlRelaxNGParseData()
3675 ctxt->idref = 1; in xmlRelaxNGParseData()
3689 xmlRngPErr(ctxt, node, XML_RNGP_PARAM_FORBIDDEN, in xmlRelaxNGParseData()
3697 param = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParseData()
3702 xmlRngPErr(ctxt, node, XML_RNGP_PARAM_NAME_MISSING, in xmlRelaxNGParseData()
3726 except = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParseData()
3734 xmlRngPErr(ctxt, content, XML_RNGP_EXCEPT_NO_CONTENT, in xmlRelaxNGParseData()
3738 tmp2 = xmlRelaxNGParsePattern(ctxt, child); in xmlRelaxNGParseData()
3755 xmlRngPErr(ctxt, content, XML_RNGP_DATA_CONTENT, in xmlRelaxNGParseData()
3785 xmlRelaxNGValidCtxt ctxt; in xmlRelaxNGCompareNameClasses() local
3787 memset(&ctxt, 0, sizeof(xmlRelaxNGValidCtxt)); in xmlRelaxNGCompareNameClasses()
3789 ctxt.flags = FLAGS_IGNORABLE | FLAGS_NOERROR; in xmlRelaxNGCompareNameClasses()
3810 if (xmlRelaxNGElementMatch(&ctxt, def2, &node)) { in xmlRelaxNGCompareNameClasses()
3847 if (xmlRelaxNGElementMatch(&ctxt, def1, &node)) { in xmlRelaxNGCompareNameClasses()
3876 xmlRelaxNGCompareElemDefLists(xmlRelaxNGParserCtxtPtr ctxt in xmlRelaxNGCompareElemDefLists()
3908 xmlRelaxNGGenerateAttributes(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGGenerateAttributes() argument
3917 if (ctxt->nbErrors != 0) in xmlRelaxNGGenerateAttributes()
3984 xmlRelaxNGGetElements(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGGetElements() argument
3995 if (ctxt->nbErrors != 0) in xmlRelaxNGGetElements()
4009 xmlRngPErrMemory(ctxt, "getting element list\n"); in xmlRelaxNGGetElements()
4019 xmlRngPErrMemory(ctxt, "getting element list\n"); in xmlRelaxNGGetElements()
4081 xmlRelaxNGCheckChoiceDeterminism(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGCheckChoiceDeterminism() argument
4102 if (ctxt->nbErrors != 0) in xmlRelaxNGCheckChoiceDeterminism()
4117 xmlRngPErrMemory(ctxt, "building choice\n"); in xmlRelaxNGCheckChoiceDeterminism()
4131 list[i] = xmlRelaxNGGetElements(ctxt, cur, 0); in xmlRelaxNGCheckChoiceDeterminism()
4185 ret = xmlRelaxNGCompareElemDefLists(ctxt, list[i], list[j]); in xmlRelaxNGCheckChoiceDeterminism()
4217 xmlRelaxNGCheckGroupAttrs(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGCheckGroupAttrs() argument
4236 if (ctxt->nbErrors != 0) in xmlRelaxNGCheckGroupAttrs()
4254 xmlRngPErrMemory(ctxt, "building group\n"); in xmlRelaxNGCheckGroupAttrs()
4260 list[i] = xmlRelaxNGGetElements(ctxt, cur, 1); in xmlRelaxNGCheckGroupAttrs()
4266 list[i] = xmlRelaxNGGetElements(ctxt, cur, 1); in xmlRelaxNGCheckGroupAttrs()
4277 ret = xmlRelaxNGCompareElemDefLists(ctxt, list[i], list[j]); in xmlRelaxNGCheckGroupAttrs()
4279 xmlRngPErr(ctxt, def->node, XML_RNGP_GROUP_ATTR_CONFLICT, in xmlRelaxNGCheckGroupAttrs()
4310 xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGComputeInterleaves() argument
4328 if (ctxt->nbErrors != 0) in xmlRelaxNGComputeInterleaves()
4357 groups[nbgroups]->defs = xmlRelaxNGGetElements(ctxt, cur, 0); in xmlRelaxNGComputeInterleaves()
4358 groups[nbgroups]->attrs = xmlRelaxNGGetElements(ctxt, cur, 1); in xmlRelaxNGComputeInterleaves()
4382 ret = xmlRelaxNGCompareElemDefLists(ctxt, group->defs, in xmlRelaxNGComputeInterleaves()
4385 xmlRngPErr(ctxt, def->node, XML_RNGP_ELEM_TEXT_CONFLICT, in xmlRelaxNGComputeInterleaves()
4389 ret = xmlRelaxNGCompareElemDefLists(ctxt, group->attrs, in xmlRelaxNGComputeInterleaves()
4392 xmlRngPErr(ctxt, def->node, XML_RNGP_ATTR_CONFLICT, in xmlRelaxNGComputeInterleaves()
4455 xmlRngPErrMemory(ctxt, "in interleave computation\n"); in xmlRelaxNGComputeInterleaves()
4478 xmlRelaxNGParseInterleave(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) in xmlRelaxNGParseInterleave() argument
4484 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParseInterleave()
4490 if (ctxt->interleaves == NULL) in xmlRelaxNGParseInterleave()
4491 ctxt->interleaves = xmlHashCreate(10); in xmlRelaxNGParseInterleave()
4492 if (ctxt->interleaves == NULL) { in xmlRelaxNGParseInterleave()
4493 xmlRngPErrMemory(ctxt, "create interleaves\n"); in xmlRelaxNGParseInterleave()
4497 snprintf(name, 32, "interleave%d", ctxt->nbInterleaves++); in xmlRelaxNGParseInterleave()
4498 if (xmlHashAddEntry(ctxt->interleaves, BAD_CAST name, def) < 0) { in xmlRelaxNGParseInterleave()
4499 xmlRngPErr(ctxt, node, XML_RNGP_INTERLEAVE_ADD, in xmlRelaxNGParseInterleave()
4506 xmlRngPErr(ctxt, node, XML_RNGP_INTERLEAVE_NO_CONTENT, in xmlRelaxNGParseInterleave()
4511 cur = xmlRelaxNGParseElement(ctxt, child); in xmlRelaxNGParseInterleave()
4513 cur = xmlRelaxNGParsePattern(ctxt, child); in xmlRelaxNGParseInterleave()
4540 xmlRelaxNGParseInclude(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) in xmlRelaxNGParseInclude() argument
4548 xmlRngPErr(ctxt, node, XML_RNGP_INCLUDE_EMPTY, in xmlRelaxNGParseInclude()
4554 xmlRngPErr(ctxt, node, XML_RNGP_EMPTY, "Include document is empty\n", in xmlRelaxNGParseInclude()
4559 xmlRngPErr(ctxt, node, XML_RNGP_GRAMMAR_MISSING, in xmlRelaxNGParseInclude()
4568 tmp = xmlRelaxNGParseGrammarContent(ctxt, root->children); in xmlRelaxNGParseInclude()
4573 tmp = xmlRelaxNGParseGrammarContent(ctxt, node->children); in xmlRelaxNGParseInclude()
4590 xmlRelaxNGParseDefine(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) in xmlRelaxNGParseDefine() argument
4599 xmlRngPErr(ctxt, node, XML_RNGP_DEFINE_NAME_MISSING, in xmlRelaxNGParseDefine()
4604 xmlRngPErr(ctxt, node, XML_RNGP_INVALID_DEFINE_NAME, in xmlRelaxNGParseDefine()
4607 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParseDefine()
4615 xmlRngPErr(ctxt, node, XML_RNGP_DEFINE_EMPTY, in xmlRelaxNGParseDefine()
4618 olddefine = ctxt->define; in xmlRelaxNGParseDefine()
4619 ctxt->define = name; in xmlRelaxNGParseDefine()
4621 xmlRelaxNGParsePatterns(ctxt, node->children, 0); in xmlRelaxNGParseDefine()
4622 ctxt->define = olddefine; in xmlRelaxNGParseDefine()
4624 if (ctxt->grammar->defs == NULL) in xmlRelaxNGParseDefine()
4625 ctxt->grammar->defs = xmlHashCreate(10); in xmlRelaxNGParseDefine()
4626 if (ctxt->grammar->defs == NULL) { in xmlRelaxNGParseDefine()
4627 xmlRngPErr(ctxt, node, XML_RNGP_DEFINE_CREATE_FAILED, in xmlRelaxNGParseDefine()
4631 tmp = xmlHashAddEntry(ctxt->grammar->defs, name, def); in xmlRelaxNGParseDefine()
4635 prev = xmlHashLookup(ctxt->grammar->defs, name); in xmlRelaxNGParseDefine()
4637 xmlRngPErr(ctxt, node, XML_RNGP_DEFINE_CREATE_FAILED, in xmlRelaxNGParseDefine()
4662 xmlRelaxNGParserCtxtPtr ctxt = (xmlRelaxNGParserCtxtPtr) data; in xmlRelaxNGParseImportRef() local
4668 tmp = xmlHashAddEntry(ctxt->grammar->refs, name, def); in xmlRelaxNGParseImportRef()
4673 xmlHashLookup(ctxt->grammar->refs, def->name); in xmlRelaxNGParseImportRef()
4676 xmlRngPErr(ctxt, NULL, XML_RNGP_REF_CREATE_FAILED, in xmlRelaxNGParseImportRef()
4680 xmlRngPErr(ctxt, NULL, XML_RNGP_REF_CREATE_FAILED, in xmlRelaxNGParseImportRef()
4701 xmlRelaxNGParseImportRefs(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGParseImportRefs() argument
4703 if ((ctxt == NULL) || (grammar == NULL) || (ctxt->grammar == NULL)) in xmlRelaxNGParseImportRefs()
4707 if (ctxt->grammar->refs == NULL) in xmlRelaxNGParseImportRefs()
4708 ctxt->grammar->refs = xmlHashCreate(10); in xmlRelaxNGParseImportRefs()
4709 if (ctxt->grammar->refs == NULL) { in xmlRelaxNGParseImportRefs()
4710 xmlRngPErr(ctxt, NULL, XML_RNGP_REF_CREATE_FAILED, in xmlRelaxNGParseImportRefs()
4714 xmlHashScan(grammar->refs, xmlRelaxNGParseImportRef, ctxt); in xmlRelaxNGParseImportRefs()
4728 xmlRelaxNGProcessExternalRef(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) in xmlRelaxNGProcessExternalRef() argument
4738 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGProcessExternalRef()
4749 xmlRngPErr(ctxt, node, XML_RNGP_EXTERNALREF_EMTPY, in xmlRelaxNGProcessExternalRef()
4750 "xmlRelaxNGParse: %s is empty\n", ctxt->URL, in xmlRelaxNGProcessExternalRef()
4779 oldflags = ctxt->flags; in xmlRelaxNGProcessExternalRef()
4780 ctxt->flags |= XML_RELAXNG_IN_EXTERNALREF; in xmlRelaxNGProcessExternalRef()
4781 docu->schema = xmlRelaxNGParseDocument(ctxt, root); in xmlRelaxNGProcessExternalRef()
4782 ctxt->flags = oldflags; in xmlRelaxNGProcessExternalRef()
4787 xmlRelaxNGParseImportRefs(ctxt, docu->schema->topgrammar); in xmlRelaxNGProcessExternalRef()
4815 xmlRelaxNGParsePattern(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) in xmlRelaxNGParsePattern() argument
4823 def = xmlRelaxNGParseElement(ctxt, node); in xmlRelaxNGParsePattern()
4825 def = xmlRelaxNGParseAttribute(ctxt, node); in xmlRelaxNGParsePattern()
4827 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParsePattern()
4832 xmlRngPErr(ctxt, node, XML_RNGP_EMPTY_NOT_EMPTY, in xmlRelaxNGParsePattern()
4836 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParsePattern()
4841 xmlRngPErr(ctxt, node, XML_RNGP_TEXT_HAS_CHILD, in xmlRelaxNGParsePattern()
4845 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParsePattern()
4850 xmlRngPErr(ctxt, node, XML_RNGP_EMPTY_CONSTRUCT, in xmlRelaxNGParsePattern()
4854 xmlRelaxNGParsePatterns(ctxt, node->children, 1); in xmlRelaxNGParsePattern()
4857 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParsePattern()
4862 xmlRngPErr(ctxt, node, XML_RNGP_EMPTY_CONSTRUCT, in xmlRelaxNGParsePattern()
4866 xmlRelaxNGParsePatterns(ctxt, node->children, 1); in xmlRelaxNGParsePattern()
4869 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParsePattern()
4874 xmlRngPErr(ctxt, node, XML_RNGP_EMPTY_CONSTRUCT, in xmlRelaxNGParsePattern()
4878 xmlRelaxNGParsePatterns(ctxt, node->children, 1); in xmlRelaxNGParsePattern()
4881 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParsePattern()
4886 xmlRngPErr(ctxt, node, XML_RNGP_EMPTY_CONSTRUCT, in xmlRelaxNGParsePattern()
4890 xmlRelaxNGParsePatterns(ctxt, node->children, 0); in xmlRelaxNGParsePattern()
4893 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParsePattern()
4898 xmlRngPErr(ctxt, node, XML_RNGP_EMPTY_CONSTRUCT, in xmlRelaxNGParsePattern()
4902 xmlRelaxNGParsePatterns(ctxt, node->children, 0); in xmlRelaxNGParsePattern()
4905 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParsePattern()
4911 xmlRngPErr(ctxt, node, XML_RNGP_REF_NO_NAME, "ref has no name\n", in xmlRelaxNGParsePattern()
4916 xmlRngPErr(ctxt, node, XML_RNGP_REF_NAME_INVALID, in xmlRelaxNGParsePattern()
4922 xmlRngPErr(ctxt, node, XML_RNGP_REF_NOT_EMPTY, "ref is not empty\n", in xmlRelaxNGParsePattern()
4925 if (ctxt->grammar->refs == NULL) in xmlRelaxNGParsePattern()
4926 ctxt->grammar->refs = xmlHashCreate(10); in xmlRelaxNGParsePattern()
4927 if (ctxt->grammar->refs == NULL) { in xmlRelaxNGParsePattern()
4928 xmlRngPErr(ctxt, node, XML_RNGP_REF_CREATE_FAILED, in xmlRelaxNGParsePattern()
4934 tmp = xmlHashAddEntry(ctxt->grammar->refs, def->name, def); in xmlRelaxNGParsePattern()
4939 xmlHashLookup(ctxt->grammar->refs, def->name); in xmlRelaxNGParsePattern()
4942 xmlRngPErr(ctxt, node, XML_RNGP_REF_CREATE_FAILED, in xmlRelaxNGParsePattern()
4946 xmlRngPErr(ctxt, node, XML_RNGP_REF_CREATE_FAILED, in xmlRelaxNGParsePattern()
4958 def = xmlRelaxNGParseData(ctxt, node); in xmlRelaxNGParsePattern()
4960 def = xmlRelaxNGParseValue(ctxt, node); in xmlRelaxNGParsePattern()
4962 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParsePattern()
4967 xmlRngPErr(ctxt, node, XML_RNGP_EMPTY_CONSTRUCT, in xmlRelaxNGParsePattern()
4971 xmlRelaxNGParsePatterns(ctxt, node->children, 0); in xmlRelaxNGParsePattern()
4974 def = xmlRelaxNGParseInterleave(ctxt, node); in xmlRelaxNGParsePattern()
4976 def = xmlRelaxNGProcessExternalRef(ctxt, node); in xmlRelaxNGParsePattern()
4978 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParsePattern()
4983 xmlRngPErr(ctxt, node, XML_RNGP_NOTALLOWED_NOT_EMPTY, in xmlRelaxNGParsePattern()
4996 oldparent = ctxt->parentgrammar; in xmlRelaxNGParsePattern()
4997 old = ctxt->grammar; in xmlRelaxNGParsePattern()
4998 ctxt->parentgrammar = old; in xmlRelaxNGParsePattern()
4999 grammar = xmlRelaxNGParseGrammar(ctxt, node->children); in xmlRelaxNGParsePattern()
5001 ctxt->grammar = old; in xmlRelaxNGParsePattern()
5002 ctxt->parentgrammar = oldparent; in xmlRelaxNGParsePattern()
5015 if (ctxt->parentgrammar == NULL) { in xmlRelaxNGParsePattern()
5016 xmlRngPErr(ctxt, node, XML_RNGP_PARENTREF_NO_PARENT, in xmlRelaxNGParsePattern()
5021 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParsePattern()
5027 xmlRngPErr(ctxt, node, XML_RNGP_PARENTREF_NO_NAME, in xmlRelaxNGParsePattern()
5032 xmlRngPErr(ctxt, node, XML_RNGP_PARENTREF_NAME_INVALID, in xmlRelaxNGParsePattern()
5038 xmlRngPErr(ctxt, node, XML_RNGP_PARENTREF_NOT_EMPTY, in xmlRelaxNGParsePattern()
5041 if (ctxt->parentgrammar->refs == NULL) in xmlRelaxNGParsePattern()
5042 ctxt->parentgrammar->refs = xmlHashCreate(10); in xmlRelaxNGParsePattern()
5043 if (ctxt->parentgrammar->refs == NULL) { in xmlRelaxNGParsePattern()
5044 xmlRngPErr(ctxt, node, XML_RNGP_PARENTREF_CREATE_FAILED, in xmlRelaxNGParsePattern()
5051 xmlHashAddEntry(ctxt->parentgrammar->refs, def->name, def); in xmlRelaxNGParsePattern()
5056 xmlHashLookup(ctxt->parentgrammar->refs, def->name); in xmlRelaxNGParsePattern()
5058 xmlRngPErr(ctxt, node, XML_RNGP_PARENTREF_CREATE_FAILED, in xmlRelaxNGParsePattern()
5070 xmlRngPErr(ctxt, node, XML_RNGP_EMPTY_CONSTRUCT, "Mixed is empty\n", in xmlRelaxNGParsePattern()
5074 def = xmlRelaxNGParseInterleave(ctxt, node); in xmlRelaxNGParsePattern()
5079 tmp = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParsePattern()
5087 tmp = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParsePattern()
5096 xmlRngPErr(ctxt, node, XML_RNGP_UNKNOWN_CONSTRUCT, in xmlRelaxNGParsePattern()
5114 xmlRelaxNGParseAttribute(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) in xmlRelaxNGParseAttribute() argument
5120 ret = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParseAttribute()
5124 ret->parent = ctxt->def; in xmlRelaxNGParseAttribute()
5127 xmlRngPErr(ctxt, node, XML_RNGP_ATTRIBUTE_EMPTY, in xmlRelaxNGParseAttribute()
5132 old_flags = ctxt->flags; in xmlRelaxNGParseAttribute()
5133 ctxt->flags |= XML_RELAXNG_IN_ATTRIBUTE; in xmlRelaxNGParseAttribute()
5134 cur = xmlRelaxNGParseNameClass(ctxt, child, ret); in xmlRelaxNGParseAttribute()
5139 cur = xmlRelaxNGParsePattern(ctxt, child); in xmlRelaxNGParseAttribute()
5166 xmlRngPErr(ctxt, node, XML_RNGP_ATTRIBUTE_CONTENT, in xmlRelaxNGParseAttribute()
5171 xmlRngPErr(ctxt, node, XML_RNGP_ATTRIBUTE_NOOP, in xmlRelaxNGParseAttribute()
5180 xmlRngPErr(ctxt, node, XML_RNGP_ATTRIBUTE_CHILDREN, in xmlRelaxNGParseAttribute()
5183 ctxt->flags = old_flags; in xmlRelaxNGParseAttribute()
5198 xmlRelaxNGParseExceptNameClass(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGParseExceptNameClass() argument
5205 xmlRngPErr(ctxt, node, XML_RNGP_EXCEPT_MISSING, in xmlRelaxNGParseExceptNameClass()
5210 xmlRngPErr(ctxt, node, XML_RNGP_EXCEPT_MULTIPLE, in xmlRelaxNGParseExceptNameClass()
5215 xmlRngPErr(ctxt, node, XML_RNGP_EXCEPT_EMPTY, "except has no content\n", in xmlRelaxNGParseExceptNameClass()
5220 ret = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParseExceptNameClass()
5226 cur = xmlRelaxNGNewDefine(ctxt, child); in xmlRelaxNGParseExceptNameClass()
5234 if (xmlRelaxNGParseNameClass(ctxt, child, cur) != NULL) { in xmlRelaxNGParseExceptNameClass()
5259 xmlRelaxNGParseNameClass(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node, in xmlRelaxNGParseNameClass() argument
5270 ret = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParseNameClass()
5274 if (ctxt->flags & XML_RELAXNG_IN_ATTRIBUTE) in xmlRelaxNGParseNameClass()
5285 xmlRngPErr(ctxt, node, XML_RNGP_ELEMENT_NAME, in xmlRelaxNGParseNameClass()
5289 xmlRngPErr(ctxt, node, XML_RNGP_ELEMENT_NAME, in xmlRelaxNGParseNameClass()
5296 if ((ctxt->flags & XML_RELAXNG_IN_ATTRIBUTE) && in xmlRelaxNGParseNameClass()
5299 xmlRngPErr(ctxt, node, XML_RNGP_XML_NS, in xmlRelaxNGParseNameClass()
5303 if ((ctxt->flags & XML_RELAXNG_IN_ATTRIBUTE) && in xmlRelaxNGParseNameClass()
5306 xmlRngPErr(ctxt, node, XML_RNGP_XMLNS_NAME, in xmlRelaxNGParseNameClass()
5315 xmlRelaxNGParseExceptNameClass(ctxt, node->children, in xmlRelaxNGParseNameClass()
5323 xmlRngPErr(ctxt, node, XML_RNGP_NSNAME_NO_NS, in xmlRelaxNGParseNameClass()
5326 if ((ctxt->flags & XML_RELAXNG_IN_ATTRIBUTE) && in xmlRelaxNGParseNameClass()
5330 xmlRngPErr(ctxt, node, XML_RNGP_XML_NS, in xmlRelaxNGParseNameClass()
5336 xmlRelaxNGParseExceptNameClass(ctxt, node->children, in xmlRelaxNGParseNameClass()
5344 ret = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParseNameClass()
5351 xmlRngPErr(ctxt, node, XML_RNGP_CHOICE_EMPTY, in xmlRelaxNGParseNameClass()
5357 tmp = xmlRelaxNGParseNameClass(ctxt, child, ret); in xmlRelaxNGParseNameClass()
5370 xmlRngPErr(ctxt, node, XML_RNGP_CHOICE_CONTENT, in xmlRelaxNGParseNameClass()
5400 xmlRelaxNGParseElement(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) in xmlRelaxNGParseElement() argument
5406 ret = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParseElement()
5410 ret->parent = ctxt->def; in xmlRelaxNGParseElement()
5413 xmlRngPErr(ctxt, node, XML_RNGP_ELEMENT_EMPTY, in xmlRelaxNGParseElement()
5418 cur = xmlRelaxNGParseNameClass(ctxt, child, ret); in xmlRelaxNGParseElement()
5423 xmlRngPErr(ctxt, node, XML_RNGP_ELEMENT_NO_CONTENT, in xmlRelaxNGParseElement()
5428 olddefine = ctxt->define; in xmlRelaxNGParseElement()
5429 ctxt->define = NULL; in xmlRelaxNGParseElement()
5432 cur = xmlRelaxNGParsePattern(ctxt, child); in xmlRelaxNGParseElement()
5458 ret->content = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParseElement()
5475 xmlRngPErr(ctxt, node, XML_RNGP_ELEMENT_CONTENT, in xmlRelaxNGParseElement()
5480 xmlRngPErr(ctxt, node, XML_RNGP_ELEMENT_CONTENT, in xmlRelaxNGParseElement()
5485 xmlRngPErr(ctxt, node, XML_RNGP_ELEMENT_CONTENT, in xmlRelaxNGParseElement()
5490 xmlRngPErr(ctxt, node, XML_RNGP_ELEMENT_CONTENT, in xmlRelaxNGParseElement()
5498 ctxt->define = olddefine; in xmlRelaxNGParseElement()
5513 xmlRelaxNGParsePatterns(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr nodes, in xmlRelaxNGParsePatterns() argument
5518 parent = ctxt->def; in xmlRelaxNGParsePatterns()
5521 cur = xmlRelaxNGParseElement(ctxt, nodes); in xmlRelaxNGParsePatterns()
5527 def = xmlRelaxNGNewDefine(ctxt, nodes); in xmlRelaxNGParsePatterns()
5536 cur = xmlRelaxNGParsePattern(ctxt, nodes); in xmlRelaxNGParsePatterns()
5561 xmlRelaxNGParseStart(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr nodes) in xmlRelaxNGParseStart() argument
5567 xmlRngPErr(ctxt, nodes, XML_RNGP_START_EMPTY, "start has no children\n", in xmlRelaxNGParseStart()
5572 def = xmlRelaxNGNewDefine(ctxt, nodes); in xmlRelaxNGParseStart()
5577 xmlRngPErr(ctxt, nodes, XML_RNGP_EMPTY_CONTENT, in xmlRelaxNGParseStart()
5581 def = xmlRelaxNGNewDefine(ctxt, nodes); in xmlRelaxNGParseStart()
5586 xmlRngPErr(ctxt, nodes, XML_RNGP_NOTALLOWED_NOT_EMPTY, in xmlRelaxNGParseStart()
5590 def = xmlRelaxNGParsePatterns(ctxt, nodes, 1); in xmlRelaxNGParseStart()
5592 if (ctxt->grammar->start != NULL) { in xmlRelaxNGParseStart()
5593 last = ctxt->grammar->start; in xmlRelaxNGParseStart()
5598 ctxt->grammar->start = def; in xmlRelaxNGParseStart()
5602 xmlRngPErr(ctxt, nodes, XML_RNGP_START_CONTENT, in xmlRelaxNGParseStart()
5619 xmlRelaxNGParseGrammarContent(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGParseGrammarContent() argument
5625 xmlRngPErr(ctxt, nodes, XML_RNGP_GRAMMAR_EMPTY, in xmlRelaxNGParseGrammarContent()
5632 xmlRngPErr(ctxt, nodes, XML_RNGP_START_EMPTY, in xmlRelaxNGParseGrammarContent()
5635 tmp = xmlRelaxNGParseStart(ctxt, nodes->children); in xmlRelaxNGParseGrammarContent()
5640 tmp = xmlRelaxNGParseDefine(ctxt, nodes); in xmlRelaxNGParseGrammarContent()
5644 tmp = xmlRelaxNGParseInclude(ctxt, nodes); in xmlRelaxNGParseGrammarContent()
5648 xmlRngPErr(ctxt, nodes, XML_RNGP_GRAMMAR_CONTENT, in xmlRelaxNGParseGrammarContent()
5669 xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGCheckReference() argument
5681 grammar = ctxt->grammar; in xmlRelaxNGCheckReference()
5683 xmlRngPErr(ctxt, ref->node, XML_ERR_INTERNAL_ERROR, in xmlRelaxNGCheckReference()
5689 xmlRngPErr(ctxt, ref->node, XML_ERR_INTERNAL_ERROR, in xmlRelaxNGCheckReference()
5703 xmlRngPErr(ctxt, ref->node, XML_RNGP_REF_NO_DEF, in xmlRelaxNGCheckReference()
5708 xmlRngPErr(ctxt, ref->node, XML_RNGP_REF_NO_DEF, in xmlRelaxNGCheckReference()
5725 xmlRelaxNGParserCtxtPtr ctxt, const xmlChar * name) in xmlRelaxNGCheckCombine() argument
5742 xmlRngPErr(ctxt, define->node, XML_RNGP_DEF_CHOICE_AND_INTERLEAVE, in xmlRelaxNGCheckCombine()
5750 xmlRngPErr(ctxt, define->node, XML_RNGP_DEF_CHOICE_AND_INTERLEAVE, in xmlRelaxNGCheckCombine()
5755 xmlRngPErr(ctxt, define->node, XML_RNGP_UNKNOWN_COMBINE, in xmlRelaxNGCheckCombine()
5764 xmlRngPErr(ctxt, define->node, XML_RNGP_NEED_COMBINE, in xmlRelaxNGCheckCombine()
5779 cur = xmlRelaxNGNewDefine(ctxt, define->node); in xmlRelaxNGCheckCombine()
5794 tmp2 = xmlRelaxNGNewDefine(ctxt, tmp->content->node); in xmlRelaxNGCheckCombine()
5814 if (ctxt->interleaves == NULL) in xmlRelaxNGCheckCombine()
5815 ctxt->interleaves = xmlHashCreate(10); in xmlRelaxNGCheckCombine()
5816 if (ctxt->interleaves == NULL) { in xmlRelaxNGCheckCombine()
5817 xmlRngPErr(ctxt, define->node, XML_RNGP_INTERLEAVE_CREATE_FAILED, in xmlRelaxNGCheckCombine()
5823 snprintf(tmpname, 32, "interleave%d", ctxt->nbInterleaves++); in xmlRelaxNGCheckCombine()
5824 if (xmlHashAddEntry(ctxt->interleaves, BAD_CAST tmpname, cur) < in xmlRelaxNGCheckCombine()
5826 xmlRngPErr(ctxt, define->node, XML_RNGP_INTERLEAVE_CREATE_FAILED, in xmlRelaxNGCheckCombine()
5843 xmlRelaxNGCombineStart(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGCombineStart() argument
5860 xmlRngPErr(ctxt, cur->node, XML_RNGP_START_MISSING, in xmlRelaxNGCombineStart()
5872 xmlRngPErr(ctxt, cur->node, XML_RNGP_START_CHOICE_AND_INTERLEAVE, in xmlRelaxNGCombineStart()
5880 xmlRngPErr(ctxt, cur->node, XML_RNGP_START_CHOICE_AND_INTERLEAVE, in xmlRelaxNGCombineStart()
5885 xmlRngPErr(ctxt, cur->node, XML_RNGP_UNKNOWN_COMBINE, in xmlRelaxNGCombineStart()
5894 xmlRngPErr(ctxt, cur->node, XML_RNGP_NEED_COMBINE, in xmlRelaxNGCombineStart()
5909 cur = xmlRelaxNGNewDefine(ctxt, starts->node); in xmlRelaxNGCombineStart()
5919 if (ctxt->interleaves == NULL) in xmlRelaxNGCombineStart()
5920 ctxt->interleaves = xmlHashCreate(10); in xmlRelaxNGCombineStart()
5921 if (ctxt->interleaves == NULL) { in xmlRelaxNGCombineStart()
5922 xmlRngPErr(ctxt, cur->node, XML_RNGP_INTERLEAVE_CREATE_FAILED, in xmlRelaxNGCombineStart()
5928 snprintf(tmpname, 32, "interleave%d", ctxt->nbInterleaves++); in xmlRelaxNGCombineStart()
5929 if (xmlHashAddEntry(ctxt->interleaves, BAD_CAST tmpname, cur) < in xmlRelaxNGCombineStart()
5931 xmlRngPErr(ctxt, cur->node, XML_RNGP_INTERLEAVE_CREATE_FAILED, in xmlRelaxNGCombineStart()
5950 xmlRelaxNGCheckCycles(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGCheckCycles() argument
5960 ret = xmlRelaxNGCheckCycles(ctxt, cur->content, depth); in xmlRelaxNGCheckCycles()
5963 xmlRngPErr(ctxt, cur->node, XML_RNGP_REF_CYCLE, in xmlRelaxNGCheckCycles()
5969 ret = xmlRelaxNGCheckCycles(ctxt, cur->content, depth + 1); in xmlRelaxNGCheckCycles()
5971 ret = xmlRelaxNGCheckCycles(ctxt, cur->content, depth); in xmlRelaxNGCheckCycles()
5990 xmlRelaxNGTryUnlink(xmlRelaxNGParserCtxtPtr ctxt ATTRIBUTE_UNUSED, in xmlRelaxNGTryUnlink()
6020 xmlRelaxNGSimplify(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGSimplify() argument
6030 xmlRelaxNGSimplify(ctxt, cur->content, cur); in xmlRelaxNGSimplify()
6045 prev = xmlRelaxNGTryUnlink(ctxt, cur, parent, prev); in xmlRelaxNGSimplify()
6059 prev = xmlRelaxNGTryUnlink(ctxt, cur, parent, prev); in xmlRelaxNGSimplify()
6065 xmlRelaxNGSimplify(ctxt, cur->content, cur); in xmlRelaxNGSimplify()
6067 xmlRelaxNGSimplify(ctxt, cur->attrs, cur); in xmlRelaxNGSimplify()
6069 xmlRelaxNGSimplify(ctxt, cur->nameClass, cur); in xmlRelaxNGSimplify()
6080 xmlRelaxNGGenerateAttributes(ctxt, cur->content); in xmlRelaxNGSimplify()
6099 attronly = xmlRelaxNGGenerateAttributes(ctxt, tmp); in xmlRelaxNGSimplify()
6139 prev = xmlRelaxNGTryUnlink(ctxt, cur, parent, prev); in xmlRelaxNGSimplify()
6153 prev = xmlRelaxNGTryUnlink(ctxt, cur, parent, prev); in xmlRelaxNGSimplify()
6167 prev = xmlRelaxNGTryUnlink(ctxt, cur, parent, prev); in xmlRelaxNGSimplify()
6241 xmlRelaxNGCheckRules(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGCheckRules() argument
6259 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_LIST_REF, in xmlRelaxNGCheckRules()
6265 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_DATA_EXCEPT_REF, in xmlRelaxNGCheckRules()
6271 xmlRngPErr(ctxt, cur->node, XML_RNGP_REF_NO_DEF, in xmlRelaxNGCheckRules()
6275 xmlRngPErr(ctxt, cur->node, XML_RNGP_REF_NO_DEF, in xmlRelaxNGCheckRules()
6281 ret = xmlRelaxNGCheckRules(ctxt, cur->content, in xmlRelaxNGCheckRules()
6293 xmlRelaxNGCheckGroupAttrs(ctxt, cur); in xmlRelaxNGCheckRules()
6295 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_DATA_EXCEPT_ELEM, in xmlRelaxNGCheckRules()
6300 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_LIST_ELEM, in xmlRelaxNGCheckRules()
6305 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_ATTR_ELEM, in xmlRelaxNGCheckRules()
6310 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_ATTR_ELEM, in xmlRelaxNGCheckRules()
6320 xmlRelaxNGCheckRules(ctxt, cur->attrs, nflags, cur->type); in xmlRelaxNGCheckRules()
6322 xmlRngPErr(ctxt, cur->node, XML_RNGP_ELEM_CONTENT_EMPTY, in xmlRelaxNGCheckRules()
6327 xmlRelaxNGCheckRules(ctxt, cur->content, nflags, in xmlRelaxNGCheckRules()
6330 xmlRngPErr(ctxt, cur->node, XML_RNGP_ELEM_CONTENT_ERROR, in xmlRelaxNGCheckRules()
6338 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_ATTR_ATTR, in xmlRelaxNGCheckRules()
6343 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_LIST_ATTR, in xmlRelaxNGCheckRules()
6348 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_ONEMORE_GROUP_ATTR, in xmlRelaxNGCheckRules()
6353 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR, in xmlRelaxNGCheckRules()
6358 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_DATA_EXCEPT_ATTR, in xmlRelaxNGCheckRules()
6363 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_START_ATTR, in xmlRelaxNGCheckRules()
6370 xmlRngPErr(ctxt, cur->node, XML_RNGP_ANYNAME_ATTR_ANCESTOR, in xmlRelaxNGCheckRules()
6374 xmlRngPErr(ctxt, cur->node, XML_RNGP_NSNAME_ATTR_ANCESTOR, in xmlRelaxNGCheckRules()
6380 xmlRelaxNGCheckRules(ctxt, cur->content, nflags, cur->type); in xmlRelaxNGCheckRules()
6385 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_DATA_EXCEPT_ONEMORE, in xmlRelaxNGCheckRules()
6390 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_START_ONEMORE, in xmlRelaxNGCheckRules()
6396 xmlRelaxNGCheckRules(ctxt, cur->content, nflags, in xmlRelaxNGCheckRules()
6401 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_LIST_LIST, in xmlRelaxNGCheckRules()
6406 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_DATA_EXCEPT_LIST, in xmlRelaxNGCheckRules()
6411 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_START_LIST, in xmlRelaxNGCheckRules()
6417 xmlRelaxNGCheckRules(ctxt, cur->content, nflags, in xmlRelaxNGCheckRules()
6421 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_DATA_EXCEPT_GROUP, in xmlRelaxNGCheckRules()
6426 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_START_GROUP, in xmlRelaxNGCheckRules()
6435 xmlRelaxNGCheckRules(ctxt, cur->content, nflags, in xmlRelaxNGCheckRules()
6440 xmlRelaxNGCheckGroupAttrs(ctxt, cur); in xmlRelaxNGCheckRules()
6443 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_LIST_INTERLEAVE, in xmlRelaxNGCheckRules()
6448 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE, in xmlRelaxNGCheckRules()
6453 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE, in xmlRelaxNGCheckRules()
6462 xmlRelaxNGCheckRules(ctxt, cur->content, nflags, in xmlRelaxNGCheckRules()
6471 xmlRelaxNGCheckRules(ctxt, cur->content, nflags, in xmlRelaxNGCheckRules()
6475 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_START_DATA, in xmlRelaxNGCheckRules()
6479 xmlRelaxNGCheckRules(ctxt, cur->content, flags, cur->type); in xmlRelaxNGCheckRules()
6483 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_START_VALUE, in xmlRelaxNGCheckRules()
6487 xmlRelaxNGCheckRules(ctxt, cur->content, flags, cur->type); in xmlRelaxNGCheckRules()
6491 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_LIST_TEXT, in xmlRelaxNGCheckRules()
6496 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_DATA_EXCEPT_TEXT, in xmlRelaxNGCheckRules()
6501 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_START_TEXT, in xmlRelaxNGCheckRules()
6508 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_DATA_EXCEPT_EMPTY, in xmlRelaxNGCheckRules()
6513 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_START_EMPTY, in xmlRelaxNGCheckRules()
6519 xmlRelaxNGCheckChoiceDeterminism(ctxt, cur); in xmlRelaxNGCheckRules()
6521 xmlRelaxNGCheckRules(ctxt, cur->content, flags, cur->type); in xmlRelaxNGCheckRules()
6524 xmlRelaxNGCheckRules(ctxt, cur->content, flags, cur->type); in xmlRelaxNGCheckRules()
6565 xmlRelaxNGParseGrammar(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr nodes) in xmlRelaxNGParseGrammar() argument
6573 ret = xmlRelaxNGNewGrammar(ctxt); in xmlRelaxNGParseGrammar()
6580 ret->parent = ctxt->grammar; in xmlRelaxNGParseGrammar()
6581 if (ctxt->grammar != NULL) { in xmlRelaxNGParseGrammar()
6582 tmp = ctxt->grammar->children; in xmlRelaxNGParseGrammar()
6584 ctxt->grammar->children = ret; in xmlRelaxNGParseGrammar()
6592 old = ctxt->grammar; in xmlRelaxNGParseGrammar()
6593 ctxt->grammar = ret; in xmlRelaxNGParseGrammar()
6594 xmlRelaxNGParseGrammarContent(ctxt, nodes); in xmlRelaxNGParseGrammar()
6595 ctxt->grammar = ret; in xmlRelaxNGParseGrammar()
6596 if (ctxt->grammar == NULL) { in xmlRelaxNGParseGrammar()
6597 xmlRngPErr(ctxt, nodes, XML_RNGP_GRAMMAR_CONTENT, in xmlRelaxNGParseGrammar()
6599 } else if (ctxt->grammar->start == NULL) { in xmlRelaxNGParseGrammar()
6600 xmlRngPErr(ctxt, nodes, XML_RNGP_GRAMMAR_NO_START, in xmlRelaxNGParseGrammar()
6607 xmlRelaxNGCombineStart(ctxt, ret); in xmlRelaxNGParseGrammar()
6610 ctxt); in xmlRelaxNGParseGrammar()
6618 ctxt); in xmlRelaxNGParseGrammar()
6624 ctxt->grammar = old; in xmlRelaxNGParseGrammar()
6640 xmlRelaxNGParseDocument(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) in xmlRelaxNGParseDocument() argument
6646 if ((ctxt == NULL) || (node == NULL)) in xmlRelaxNGParseDocument()
6649 schema = xmlRelaxNGNewRelaxNG(ctxt); in xmlRelaxNGParseDocument()
6653 olddefine = ctxt->define; in xmlRelaxNGParseDocument()
6654 ctxt->define = NULL; in xmlRelaxNGParseDocument()
6656 schema->topgrammar = xmlRelaxNGParseGrammar(ctxt, node->children); in xmlRelaxNGParseDocument()
6660 schema->topgrammar = ret = xmlRelaxNGNewGrammar(ctxt); in xmlRelaxNGParseDocument()
6667 ret->parent = ctxt->grammar; in xmlRelaxNGParseDocument()
6668 if (ctxt->grammar != NULL) { in xmlRelaxNGParseDocument()
6669 tmp = ctxt->grammar->children; in xmlRelaxNGParseDocument()
6671 ctxt->grammar->children = ret; in xmlRelaxNGParseDocument()
6678 old = ctxt->grammar; in xmlRelaxNGParseDocument()
6679 ctxt->grammar = ret; in xmlRelaxNGParseDocument()
6680 xmlRelaxNGParseStart(ctxt, node); in xmlRelaxNGParseDocument()
6682 ctxt->grammar = old; in xmlRelaxNGParseDocument()
6684 ctxt->define = olddefine; in xmlRelaxNGParseDocument()
6686 xmlRelaxNGCheckCycles(ctxt, schema->topgrammar->start, 0); in xmlRelaxNGParseDocument()
6687 if ((ctxt->flags & XML_RELAXNG_IN_EXTERNALREF) == 0) { in xmlRelaxNGParseDocument()
6688 xmlRelaxNGSimplify(ctxt, schema->topgrammar->start, NULL); in xmlRelaxNGParseDocument()
6694 xmlRelaxNGCheckRules(ctxt, schema->topgrammar->start, in xmlRelaxNGParseDocument()
6817 xmlRelaxNGFreeParserCtxt(xmlRelaxNGParserCtxtPtr ctxt) in xmlRelaxNGFreeParserCtxt() argument
6819 if (ctxt == NULL) in xmlRelaxNGFreeParserCtxt()
6821 if (ctxt->URL != NULL) in xmlRelaxNGFreeParserCtxt()
6822 xmlFree(ctxt->URL); in xmlRelaxNGFreeParserCtxt()
6823 if (ctxt->doc != NULL) in xmlRelaxNGFreeParserCtxt()
6824 xmlRelaxNGFreeDocument(ctxt->doc); in xmlRelaxNGFreeParserCtxt()
6825 if (ctxt->interleaves != NULL) in xmlRelaxNGFreeParserCtxt()
6826 xmlHashFree(ctxt->interleaves, NULL); in xmlRelaxNGFreeParserCtxt()
6827 if (ctxt->documents != NULL) in xmlRelaxNGFreeParserCtxt()
6828 xmlRelaxNGFreeDocumentList(ctxt->documents); in xmlRelaxNGFreeParserCtxt()
6829 if (ctxt->includes != NULL) in xmlRelaxNGFreeParserCtxt()
6830 xmlRelaxNGFreeIncludeList(ctxt->includes); in xmlRelaxNGFreeParserCtxt()
6831 if (ctxt->docTab != NULL) in xmlRelaxNGFreeParserCtxt()
6832 xmlFree(ctxt->docTab); in xmlRelaxNGFreeParserCtxt()
6833 if (ctxt->incTab != NULL) in xmlRelaxNGFreeParserCtxt()
6834 xmlFree(ctxt->incTab); in xmlRelaxNGFreeParserCtxt()
6835 if (ctxt->defTab != NULL) { in xmlRelaxNGFreeParserCtxt()
6838 for (i = 0; i < ctxt->defNr; i++) in xmlRelaxNGFreeParserCtxt()
6839 xmlRelaxNGFreeDefine(ctxt->defTab[i]); in xmlRelaxNGFreeParserCtxt()
6840 xmlFree(ctxt->defTab); in xmlRelaxNGFreeParserCtxt()
6842 if ((ctxt->document != NULL) && (ctxt->freedoc)) in xmlRelaxNGFreeParserCtxt()
6843 xmlFreeDoc(ctxt->document); in xmlRelaxNGFreeParserCtxt()
6844 xmlFree(ctxt); in xmlRelaxNGFreeParserCtxt()
6907 xmlRelaxNGCleanupAttributes(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) in xmlRelaxNGCleanupAttributes() argument
6923 xmlRngPErr(ctxt, node, XML_RNGP_FORBIDDEN_ATTRIBUTE, in xmlRelaxNGCleanupAttributes()
6930 xmlRngPErr(ctxt, node, XML_RNGP_FORBIDDEN_ATTRIBUTE, in xmlRelaxNGCleanupAttributes()
6937 xmlRngPErr(ctxt, node, XML_RNGP_FORBIDDEN_ATTRIBUTE, in xmlRelaxNGCleanupAttributes()
6944 xmlRngPErr(ctxt, node, XML_RNGP_FORBIDDEN_ATTRIBUTE, in xmlRelaxNGCleanupAttributes()
6957 xmlRngPErr(ctxt, node, XML_RNGP_INVALID_URI, in xmlRelaxNGCleanupAttributes()
6962 xmlRngPErr(ctxt, node, XML_RNGP_URI_NOT_ABSOLUTE, in xmlRelaxNGCleanupAttributes()
6967 xmlRngPErr(ctxt, node, XML_RNGP_URI_FRAGMENT, in xmlRelaxNGCleanupAttributes()
6977 xmlRngPErr(ctxt, node, XML_RNGP_UNKNOWN_ATTRIBUTE, in xmlRelaxNGCleanupAttributes()
6995 xmlRelaxNGCleanupTree(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr root) in xmlRelaxNGCleanupTree() argument
7018 xmlRngPErr(ctxt, cur, XML_RNGP_FOREIGN_ELEMENT, in xmlRelaxNGCleanupTree()
7025 xmlRelaxNGCleanupAttributes(ctxt, cur); in xmlRelaxNGCleanupTree()
7045 xmlRngPErr(ctxt, cur, XML_RNGP_MISSING_HREF, in xmlRelaxNGCleanupTree()
7055 xmlRngPErr(ctxt, cur, XML_RNGP_HREF_ERROR, in xmlRelaxNGCleanupTree()
7066 xmlRngPErr(ctxt, cur, XML_RNGP_HREF_ERROR, in xmlRelaxNGCleanupTree()
7081 xmlRngPErr(ctxt, cur, XML_RNGP_HREF_ERROR, in xmlRelaxNGCleanupTree()
7097 docu = xmlRelaxNGLoadExternalRef(ctxt, URL, ns); in xmlRelaxNGCleanupTree()
7099 xmlRngPErr(ctxt, cur, XML_RNGP_EXTERNAL_REF_FAILURE, in xmlRelaxNGCleanupTree()
7119 xmlRngPErr(ctxt, cur, XML_RNGP_MISSING_HREF, in xmlRelaxNGCleanupTree()
7128 xmlRngPErr(ctxt, cur, XML_RNGP_HREF_ERROR, in xmlRelaxNGCleanupTree()
7153 incl = xmlRelaxNGLoadInclude(ctxt, URL, cur, ns); in xmlRelaxNGCleanupTree()
7157 xmlRngPErr(ctxt, cur, XML_RNGP_INCLUDE_FAILURE, in xmlRelaxNGCleanupTree()
7195 xmlRngPErr(ctxt, cur, XML_RNGP_CREATE_FAILURE, in xmlRelaxNGCleanupTree()
7254 xmlRngPErr(ctxt, cur, in xmlRelaxNGCleanupTree()
7273 if (ctxt->flags & XML_RELAXNG_IN_NSEXCEPT) { in xmlRelaxNGCleanupTree()
7274 xmlRngPErr(ctxt, cur, in xmlRelaxNGCleanupTree()
7282 int oldflags = ctxt->flags; in xmlRelaxNGCleanupTree()
7290 ctxt->flags |= XML_RELAXNG_IN_ANYEXCEPT; in xmlRelaxNGCleanupTree()
7291 xmlRelaxNGCleanupTree(ctxt, cur); in xmlRelaxNGCleanupTree()
7292 ctxt->flags = oldflags; in xmlRelaxNGCleanupTree()
7297 ctxt->flags |= XML_RELAXNG_IN_NSEXCEPT; in xmlRelaxNGCleanupTree()
7298 xmlRelaxNGCleanupTree(ctxt, cur); in xmlRelaxNGCleanupTree()
7299 ctxt->flags = oldflags; in xmlRelaxNGCleanupTree()
7306 if (ctxt->flags & XML_RELAXNG_IN_ANYEXCEPT) { in xmlRelaxNGCleanupTree()
7307 xmlRngPErr(ctxt, cur, in xmlRelaxNGCleanupTree()
7311 } else if (ctxt->flags & XML_RELAXNG_IN_NSEXCEPT) { in xmlRelaxNGCleanupTree()
7312 xmlRngPErr(ctxt, cur, in xmlRelaxNGCleanupTree()
7437 xmlRelaxNGCleanupDoc(xmlRelaxNGParserCtxtPtr ctxt, xmlDocPtr doc) in xmlRelaxNGCleanupDoc() argument
7446 xmlRngPErr(ctxt, (xmlNodePtr) doc, XML_RNGP_EMPTY, "xmlRelaxNGParse: %s is empty\n", in xmlRelaxNGCleanupDoc()
7447 ctxt->URL, NULL); in xmlRelaxNGCleanupDoc()
7450 xmlRelaxNGCleanupTree(ctxt, root); in xmlRelaxNGCleanupDoc()
7465 xmlRelaxNGParse(xmlRelaxNGParserCtxtPtr ctxt) in xmlRelaxNGParse() argument
7473 if (ctxt == NULL) in xmlRelaxNGParse()
7479 if (ctxt->URL != NULL) { in xmlRelaxNGParse()
7480 doc = xmlReadFile((const char *) ctxt->URL,NULL,0); in xmlRelaxNGParse()
7482 xmlRngPErr(ctxt, NULL, XML_RNGP_PARSE_ERROR, in xmlRelaxNGParse()
7483 "xmlRelaxNGParse: could not load %s\n", ctxt->URL, in xmlRelaxNGParse()
7487 } else if (ctxt->buffer != NULL) { in xmlRelaxNGParse()
7488 doc = xmlReadMemory(ctxt->buffer, ctxt->size,NULL,NULL,0); in xmlRelaxNGParse()
7490 xmlRngPErr(ctxt, NULL, XML_RNGP_PARSE_ERROR, in xmlRelaxNGParse()
7496 ctxt->URL = xmlStrdup(BAD_CAST "in_memory_buffer"); in xmlRelaxNGParse()
7497 } else if (ctxt->document != NULL) { in xmlRelaxNGParse()
7498 doc = ctxt->document; in xmlRelaxNGParse()
7500 xmlRngPErr(ctxt, NULL, XML_RNGP_EMPTY, in xmlRelaxNGParse()
7504 ctxt->document = doc; in xmlRelaxNGParse()
7509 doc = xmlRelaxNGCleanupDoc(ctxt, doc); in xmlRelaxNGParse()
7511 xmlFreeDoc(ctxt->document); in xmlRelaxNGParse()
7512 ctxt->document = NULL; in xmlRelaxNGParse()
7521 xmlRngPErr(ctxt, (xmlNodePtr) doc, in xmlRelaxNGParse()
7523 (ctxt->URL ? ctxt->URL : BAD_CAST "schemas"), NULL); in xmlRelaxNGParse()
7525 xmlFreeDoc(ctxt->document); in xmlRelaxNGParse()
7526 ctxt->document = NULL; in xmlRelaxNGParse()
7529 ret = xmlRelaxNGParseDocument(ctxt, root); in xmlRelaxNGParse()
7531 xmlFreeDoc(ctxt->document); in xmlRelaxNGParse()
7532 ctxt->document = NULL; in xmlRelaxNGParse()
7542 if (ctxt->interleaves != NULL) { in xmlRelaxNGParse()
7543 xmlHashScan(ctxt->interleaves, in xmlRelaxNGParse()
7544 (xmlHashScanner) xmlRelaxNGComputeInterleaves, ctxt); in xmlRelaxNGParse()
7550 if (ctxt->nbErrors > 0) { in xmlRelaxNGParse()
7552 ctxt->document = NULL; in xmlRelaxNGParse()
7564 def = xmlRelaxNGNewDefine(ctxt, NULL); in xmlRelaxNGParse()
7571 xmlRelaxNGTryCompile(ctxt, ret->topgrammar->start); in xmlRelaxNGParse()
7578 ctxt->document = NULL; in xmlRelaxNGParse()
7579 ret->documents = ctxt->documents; in xmlRelaxNGParse()
7580 ctxt->documents = NULL; in xmlRelaxNGParse()
7582 ret->includes = ctxt->includes; in xmlRelaxNGParse()
7583 ctxt->includes = NULL; in xmlRelaxNGParse()
7584 ret->defNr = ctxt->defNr; in xmlRelaxNGParse()
7585 ret->defTab = ctxt->defTab; in xmlRelaxNGParse()
7586 ctxt->defTab = NULL; in xmlRelaxNGParse()
7587 if (ctxt->idref == 1) in xmlRelaxNGParse()
7603 xmlRelaxNGSetParserErrors(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGSetParserErrors() argument
7607 if (ctxt == NULL) in xmlRelaxNGSetParserErrors()
7609 ctxt->error = err; in xmlRelaxNGSetParserErrors()
7610 ctxt->warning = warn; in xmlRelaxNGSetParserErrors()
7611 ctxt->serror = NULL; in xmlRelaxNGSetParserErrors()
7612 ctxt->userData = ctx; in xmlRelaxNGSetParserErrors()
7627 xmlRelaxNGGetParserErrors(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGGetParserErrors() argument
7631 if (ctxt == NULL) in xmlRelaxNGGetParserErrors()
7634 *err = ctxt->error; in xmlRelaxNGGetParserErrors()
7636 *warn = ctxt->warning; in xmlRelaxNGGetParserErrors()
7638 *ctx = ctxt->userData; in xmlRelaxNGGetParserErrors()
7651 xmlRelaxNGSetParserStructuredErrors(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGSetParserStructuredErrors() argument
7655 if (ctxt == NULL) in xmlRelaxNGSetParserStructuredErrors()
7657 ctxt->serror = serror; in xmlRelaxNGSetParserStructuredErrors()
7658 ctxt->error = NULL; in xmlRelaxNGSetParserStructuredErrors()
7659 ctxt->warning = NULL; in xmlRelaxNGSetParserStructuredErrors()
7660 ctxt->userData = ctx; in xmlRelaxNGSetParserStructuredErrors()
7906 static int xmlRelaxNGValidateDefinition(xmlRelaxNGValidCtxtPtr ctxt,
7923 xmlRelaxNGValidCtxtPtr ctxt = (xmlRelaxNGValidCtxtPtr) inputdata; in xmlRelaxNGValidateCompiledCallback() local
7931 if (ctxt == NULL) { in xmlRelaxNGValidateCompiledCallback()
7939 if ((ctxt != NULL) && (ctxt->errNo == XML_RELAXNG_OK)) in xmlRelaxNGValidateCompiledCallback()
7940 ctxt->errNo = XML_RELAXNG_ERR_INTERNAL; in xmlRelaxNGValidateCompiledCallback()
7943 if ((ctxt == NULL) || (define == NULL)) { in xmlRelaxNGValidateCompiledCallback()
7945 if ((ctxt != NULL) && (ctxt->errNo == XML_RELAXNG_OK)) in xmlRelaxNGValidateCompiledCallback()
7946 ctxt->errNo = XML_RELAXNG_ERR_INTERNAL; in xmlRelaxNGValidateCompiledCallback()
7950 if (ctxt->errNo == XML_RELAXNG_OK) in xmlRelaxNGValidateCompiledCallback()
7951 ctxt->errNo = XML_RELAXNG_ERR_INTERNAL; in xmlRelaxNGValidateCompiledCallback()
7954 ret = xmlRelaxNGValidateDefinition(ctxt, define); in xmlRelaxNGValidateCompiledCallback()
7956 ctxt->perr = ret; in xmlRelaxNGValidateCompiledCallback()
7970 xmlRelaxNGValidateCompiledContent(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidateCompiledContent() argument
7978 if ((ctxt == NULL) || (regexp == NULL)) in xmlRelaxNGValidateCompiledContent()
7980 oldperr = ctxt->perr; in xmlRelaxNGValidateCompiledContent()
7982 xmlRelaxNGValidateCompiledCallback, ctxt); in xmlRelaxNGValidateCompiledContent()
7983 ctxt->perr = 0; in xmlRelaxNGValidateCompiledContent()
7986 ctxt->state->seq = cur; in xmlRelaxNGValidateCompiledContent()
7992 ret = xmlRegExecPushString(exec, BAD_CAST "#text", ctxt); in xmlRelaxNGValidateCompiledContent()
8001 cur->ns->href, ctxt); in xmlRelaxNGValidateCompiledContent()
8003 ret = xmlRegExecPushString(exec, cur->name, ctxt); in xmlRelaxNGValidateCompiledContent()
8022 ctxt->state->seq = NULL; in xmlRelaxNGValidateCompiledContent()
8029 if ((ctxt->flags & FLAGS_IGNORABLE) == 0) in xmlRelaxNGValidateCompiledContent()
8030 xmlRelaxNGDumpValidError(ctxt); in xmlRelaxNGValidateCompiledContent()
8039 if ((ret == 0) && (ctxt->perr != 0)) { in xmlRelaxNGValidateCompiledContent()
8040 ret = ctxt->perr; in xmlRelaxNGValidateCompiledContent()
8042 ctxt->perr = oldperr; in xmlRelaxNGValidateCompiledContent()
8051 static int xmlRelaxNGValidateAttributeList(xmlRelaxNGValidCtxtPtr ctxt,
8053 static int xmlRelaxNGValidateElementEnd(xmlRelaxNGValidCtxtPtr ctxt,
8055 static void xmlRelaxNGLogBestError(xmlRelaxNGValidCtxtPtr ctxt);
8067 xmlRelaxNGElemPush(xmlRelaxNGValidCtxtPtr ctxt, xmlRegExecCtxtPtr exec) in xmlRelaxNGElemPush() argument
8069 if (ctxt->elemTab == NULL) { in xmlRelaxNGElemPush()
8070 ctxt->elemMax = 10; in xmlRelaxNGElemPush()
8071 ctxt->elemTab = (xmlRegExecCtxtPtr *) xmlMalloc(ctxt->elemMax * in xmlRelaxNGElemPush()
8074 if (ctxt->elemTab == NULL) { in xmlRelaxNGElemPush()
8075 xmlRngVErrMemory(ctxt, "validating\n"); in xmlRelaxNGElemPush()
8079 if (ctxt->elemNr >= ctxt->elemMax) { in xmlRelaxNGElemPush()
8080 ctxt->elemMax *= 2; in xmlRelaxNGElemPush()
8081 ctxt->elemTab = (xmlRegExecCtxtPtr *) xmlRealloc(ctxt->elemTab, in xmlRelaxNGElemPush()
8082 ctxt->elemMax * in xmlRelaxNGElemPush()
8085 if (ctxt->elemTab == NULL) { in xmlRelaxNGElemPush()
8086 xmlRngVErrMemory(ctxt, "validating\n"); in xmlRelaxNGElemPush()
8090 ctxt->elemTab[ctxt->elemNr++] = exec; in xmlRelaxNGElemPush()
8091 ctxt->elem = exec; in xmlRelaxNGElemPush()
8104 xmlRelaxNGElemPop(xmlRelaxNGValidCtxtPtr ctxt) in xmlRelaxNGElemPop() argument
8108 if (ctxt->elemNr <= 0) in xmlRelaxNGElemPop()
8110 ctxt->elemNr--; in xmlRelaxNGElemPop()
8111 ret = ctxt->elemTab[ctxt->elemNr]; in xmlRelaxNGElemPop()
8112 ctxt->elemTab[ctxt->elemNr] = NULL; in xmlRelaxNGElemPop()
8113 if (ctxt->elemNr > 0) in xmlRelaxNGElemPop()
8114 ctxt->elem = ctxt->elemTab[ctxt->elemNr - 1]; in xmlRelaxNGElemPop()
8116 ctxt->elem = NULL; in xmlRelaxNGElemPop()
8136 xmlRelaxNGValidCtxtPtr ctxt = (xmlRelaxNGValidCtxtPtr) inputdata; in xmlRelaxNGValidateProgressiveCallback() local
8146 if (ctxt == NULL) { in xmlRelaxNGValidateProgressiveCallback()
8150 node = ctxt->pnode; in xmlRelaxNGValidateProgressiveCallback()
8151 ctxt->pstate = 1; in xmlRelaxNGValidateProgressiveCallback()
8156 if ((ctxt != NULL) && (ctxt->errNo == XML_RELAXNG_OK)) in xmlRelaxNGValidateProgressiveCallback()
8157 ctxt->errNo = XML_RELAXNG_ERR_INTERNAL; in xmlRelaxNGValidateProgressiveCallback()
8158 ctxt->pstate = -1; in xmlRelaxNGValidateProgressiveCallback()
8161 if ((ctxt == NULL) || (define == NULL)) { in xmlRelaxNGValidateProgressiveCallback()
8163 if ((ctxt != NULL) && (ctxt->errNo == XML_RELAXNG_OK)) in xmlRelaxNGValidateProgressiveCallback()
8164 ctxt->errNo = XML_RELAXNG_ERR_INTERNAL; in xmlRelaxNGValidateProgressiveCallback()
8165 ctxt->pstate = -1; in xmlRelaxNGValidateProgressiveCallback()
8169 if (ctxt->errNo == XML_RELAXNG_OK) in xmlRelaxNGValidateProgressiveCallback()
8170 ctxt->errNo = XML_RELAXNG_ERR_INTERNAL; in xmlRelaxNGValidateProgressiveCallback()
8171 ctxt->pstate = -1; in xmlRelaxNGValidateProgressiveCallback()
8176 if ((ctxt->flags & FLAGS_IGNORABLE) == 0) in xmlRelaxNGValidateProgressiveCallback()
8177 xmlRelaxNGDumpValidError(ctxt); in xmlRelaxNGValidateProgressiveCallback()
8178 ctxt->pstate = -1; in xmlRelaxNGValidateProgressiveCallback()
8190 ctxt->pstate = 0; in xmlRelaxNGValidateProgressiveCallback()
8191 ctxt->pdef = define; in xmlRelaxNGValidateProgressiveCallback()
8195 xmlRelaxNGValidateProgressiveCallback, ctxt); in xmlRelaxNGValidateProgressiveCallback()
8197 ctxt->pstate = -1; in xmlRelaxNGValidateProgressiveCallback()
8200 xmlRelaxNGElemPush(ctxt, exec); in xmlRelaxNGValidateProgressiveCallback()
8205 state = xmlRelaxNGNewValidState(ctxt, node); in xmlRelaxNGValidateProgressiveCallback()
8207 ctxt->pstate = -1; in xmlRelaxNGValidateProgressiveCallback()
8210 oldstate = ctxt->state; in xmlRelaxNGValidateProgressiveCallback()
8211 ctxt->state = state; in xmlRelaxNGValidateProgressiveCallback()
8213 ret = xmlRelaxNGValidateAttributeList(ctxt, define->attrs); in xmlRelaxNGValidateProgressiveCallback()
8215 ctxt->pstate = -1; in xmlRelaxNGValidateProgressiveCallback()
8219 if (ctxt->state != NULL) { in xmlRelaxNGValidateProgressiveCallback()
8220 ctxt->state->seq = NULL; in xmlRelaxNGValidateProgressiveCallback()
8221 ret = xmlRelaxNGValidateElementEnd(ctxt, 1); in xmlRelaxNGValidateProgressiveCallback()
8223 ctxt->pstate = -1; in xmlRelaxNGValidateProgressiveCallback()
8225 xmlRelaxNGFreeValidState(ctxt, ctxt->state); in xmlRelaxNGValidateProgressiveCallback()
8226 } else if (ctxt->states != NULL) { in xmlRelaxNGValidateProgressiveCallback()
8229 oldflags = ctxt->flags; in xmlRelaxNGValidateProgressiveCallback()
8231 for (i = 0; i < ctxt->states->nbState; i++) { in xmlRelaxNGValidateProgressiveCallback()
8232 state = ctxt->states->tabState[i]; in xmlRelaxNGValidateProgressiveCallback()
8233 ctxt->state = state; in xmlRelaxNGValidateProgressiveCallback()
8234 ctxt->state->seq = NULL; in xmlRelaxNGValidateProgressiveCallback()
8236 if (xmlRelaxNGValidateElementEnd(ctxt, 0) == 0) { in xmlRelaxNGValidateProgressiveCallback()
8245 ctxt->flags |= FLAGS_IGNORABLE; in xmlRelaxNGValidateProgressiveCallback()
8246 xmlRelaxNGLogBestError(ctxt); in xmlRelaxNGValidateProgressiveCallback()
8248 for (i = 0; i < ctxt->states->nbState; i++) { in xmlRelaxNGValidateProgressiveCallback()
8249 xmlRelaxNGFreeValidState(ctxt, ctxt->states->tabState[i]); in xmlRelaxNGValidateProgressiveCallback()
8251 xmlRelaxNGFreeStates(ctxt, ctxt->states); in xmlRelaxNGValidateProgressiveCallback()
8252 ctxt->states = NULL; in xmlRelaxNGValidateProgressiveCallback()
8254 ctxt->pstate = -1; in xmlRelaxNGValidateProgressiveCallback()
8255 ctxt->flags = oldflags; in xmlRelaxNGValidateProgressiveCallback()
8257 if (ctxt->pstate == -1) { in xmlRelaxNGValidateProgressiveCallback()
8258 if ((ctxt->flags & FLAGS_IGNORABLE) == 0) { in xmlRelaxNGValidateProgressiveCallback()
8259 xmlRelaxNGDumpValidError(ctxt); in xmlRelaxNGValidateProgressiveCallback()
8262 ctxt->state = oldstate; in xmlRelaxNGValidateProgressiveCallback()
8277 xmlRelaxNGValidatePushElement(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidatePushElement() argument
8283 if ((ctxt == NULL) || (elem == NULL)) in xmlRelaxNGValidatePushElement()
8289 if (ctxt->elem == 0) { in xmlRelaxNGValidatePushElement()
8295 schema = ctxt->schema; in xmlRelaxNGValidatePushElement()
8307 ctxt->pdef = define; in xmlRelaxNGValidatePushElement()
8312 ctxt); in xmlRelaxNGValidatePushElement()
8316 xmlRelaxNGElemPush(ctxt, exec); in xmlRelaxNGValidatePushElement()
8318 ctxt->pnode = elem; in xmlRelaxNGValidatePushElement()
8319 ctxt->pstate = 0; in xmlRelaxNGValidatePushElement()
8322 xmlRegExecPushString2(ctxt->elem, elem->name, elem->ns->href, in xmlRelaxNGValidatePushElement()
8323 ctxt); in xmlRelaxNGValidatePushElement()
8325 ret = xmlRegExecPushString(ctxt->elem, elem->name, ctxt); in xmlRelaxNGValidatePushElement()
8330 if (ctxt->pstate == 0) in xmlRelaxNGValidatePushElement()
8332 else if (ctxt->pstate < 0) in xmlRelaxNGValidatePushElement()
8356 xmlRelaxNGValidatePushCData(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidatePushCData() argument
8361 if ((ctxt == NULL) || (ctxt->elem == NULL) || (data == NULL)) in xmlRelaxNGValidatePushCData()
8376 ret = xmlRegExecPushString(ctxt->elem, BAD_CAST "#text", ctxt); in xmlRelaxNGValidatePushCData()
8399 xmlRelaxNGValidatePopElement(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidatePopElement() argument
8406 if ((ctxt == NULL) || (ctxt->elem == NULL) || (elem == NULL)) in xmlRelaxNGValidatePopElement()
8414 exec = xmlRelaxNGElemPop(ctxt); in xmlRelaxNGValidatePopElement()
8448 xmlRelaxNGValidateFullElement(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidateFullElement() argument
8455 if ((ctxt == NULL) || (ctxt->pdef == NULL) || (elem == NULL)) in xmlRelaxNGValidateFullElement()
8460 state = xmlRelaxNGNewValidState(ctxt, elem->parent); in xmlRelaxNGValidateFullElement()
8465 ctxt->state = state; in xmlRelaxNGValidateFullElement()
8466 ctxt->errNo = XML_RELAXNG_OK; in xmlRelaxNGValidateFullElement()
8467 ret = xmlRelaxNGValidateDefinition(ctxt, ctxt->pdef); in xmlRelaxNGValidateFullElement()
8468 if ((ret != 0) || (ctxt->errNo != XML_RELAXNG_OK)) in xmlRelaxNGValidateFullElement()
8472 xmlRelaxNGFreeValidState(ctxt, ctxt->state); in xmlRelaxNGValidateFullElement()
8473 ctxt->state = NULL; in xmlRelaxNGValidateFullElement()
8487 static int xmlRelaxNGValidateValue(xmlRelaxNGValidCtxtPtr ctxt,
8500 xmlRelaxNGSkipIgnored(xmlRelaxNGValidCtxtPtr ctxt ATTRIBUTE_UNUSED, in xmlRelaxNGSkipIgnored()
8513 ((ctxt->flags & FLAGS_MIXED_CONTENT) || in xmlRelaxNGSkipIgnored()
8531 xmlRelaxNGNormalize(xmlRelaxNGValidCtxtPtr ctxt, const xmlChar * str) in xmlRelaxNGNormalize() argument
8546 xmlRngVErrMemory(ctxt, "validating\n"); in xmlRelaxNGNormalize()
8578 xmlRelaxNGValidateDatatype(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidateDatatype() argument
8627 oldvalue = ctxt->state->value; in xmlRelaxNGValidateDatatype()
8628 oldendvalue = ctxt->state->endvalue; in xmlRelaxNGValidateDatatype()
8629 ctxt->state->value = (xmlChar *) value; in xmlRelaxNGValidateDatatype()
8630 ctxt->state->endvalue = NULL; in xmlRelaxNGValidateDatatype()
8631 ret = xmlRelaxNGValidateValue(ctxt, define->content); in xmlRelaxNGValidateDatatype()
8632 ctxt->state->value = (xmlChar *) oldvalue; in xmlRelaxNGValidateDatatype()
8633 ctxt->state->endvalue = (xmlChar *) oldendvalue; in xmlRelaxNGValidateDatatype()
8649 xmlRelaxNGNextValue(xmlRelaxNGValidCtxtPtr ctxt) in xmlRelaxNGNextValue() argument
8653 cur = ctxt->state->value; in xmlRelaxNGNextValue()
8654 if ((cur == NULL) || (ctxt->state->endvalue == NULL)) { in xmlRelaxNGNextValue()
8655 ctxt->state->value = NULL; in xmlRelaxNGNextValue()
8656 ctxt->state->endvalue = NULL; in xmlRelaxNGNextValue()
8661 while ((cur != ctxt->state->endvalue) && (*cur == 0)) in xmlRelaxNGNextValue()
8663 if (cur == ctxt->state->endvalue) in xmlRelaxNGNextValue()
8664 ctxt->state->value = NULL; in xmlRelaxNGNextValue()
8666 ctxt->state->value = cur; in xmlRelaxNGNextValue()
8680 xmlRelaxNGValidateValueList(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidateValueList() argument
8686 ret = xmlRelaxNGValidateValue(ctxt, defines); in xmlRelaxNGValidateValueList()
8704 xmlRelaxNGValidateValue(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidateValue() argument
8710 value = ctxt->state->value; in xmlRelaxNGValidateValue()
8735 value, ctxt->state->node); in xmlRelaxNGValidateValue()
8754 nval = xmlRelaxNGNormalize(ctxt, define->value); in xmlRelaxNGValidateValue()
8755 nvalue = xmlRelaxNGNormalize(ctxt, value); in xmlRelaxNGValidateValue()
8767 xmlRelaxNGNextValue(ctxt); in xmlRelaxNGValidateValue()
8771 ret = xmlRelaxNGValidateDatatype(ctxt, value, define, in xmlRelaxNGValidateValue()
8772 ctxt->state->seq); in xmlRelaxNGValidateValue()
8774 xmlRelaxNGNextValue(ctxt); in xmlRelaxNGValidateValue()
8782 oldflags = ctxt->flags; in xmlRelaxNGValidateValue()
8783 ctxt->flags |= FLAGS_IGNORABLE; in xmlRelaxNGValidateValue()
8785 oldvalue = ctxt->state->value; in xmlRelaxNGValidateValue()
8787 ret = xmlRelaxNGValidateValue(ctxt, list); in xmlRelaxNGValidateValue()
8791 ctxt->state->value = oldvalue; in xmlRelaxNGValidateValue()
8794 ctxt->flags = oldflags; in xmlRelaxNGValidateValue()
8796 if ((ctxt->flags & FLAGS_IGNORABLE) == 0) in xmlRelaxNGValidateValue()
8797 xmlRelaxNGDumpValidError(ctxt); in xmlRelaxNGValidateValue()
8799 if (ctxt->errNr > 0) in xmlRelaxNGValidateValue()
8800 xmlRelaxNGPopErrors(ctxt, 0); in xmlRelaxNGValidateValue()
8812 oldvalue = ctxt->state->value; in xmlRelaxNGValidateValue()
8813 oldend = ctxt->state->endvalue; in xmlRelaxNGValidateValue()
8842 ctxt->state->endvalue = cur; in xmlRelaxNGValidateValue()
8844 while ((*cur == 0) && (cur != ctxt->state->endvalue)) in xmlRelaxNGValidateValue()
8847 ctxt->state->value = cur; in xmlRelaxNGValidateValue()
8850 if (ctxt->state->value == ctxt->state->endvalue) in xmlRelaxNGValidateValue()
8851 ctxt->state->value = NULL; in xmlRelaxNGValidateValue()
8852 ret = xmlRelaxNGValidateValue(ctxt, list); in xmlRelaxNGValidateValue()
8857 ctxt->state->value, nb_values); in xmlRelaxNGValidateValue()
8867 if ((ret == 0) && (ctxt->state->value != NULL) && in xmlRelaxNGValidateValue()
8868 (ctxt->state->value != ctxt->state->endvalue)) { in xmlRelaxNGValidateValue()
8870 ctxt->state->value); in xmlRelaxNGValidateValue()
8874 ctxt->state->value = oldvalue; in xmlRelaxNGValidateValue()
8875 ctxt->state->endvalue = oldend; in xmlRelaxNGValidateValue()
8879 ret = xmlRelaxNGValidateValueList(ctxt, define->content); in xmlRelaxNGValidateValue()
8887 if ((ctxt->state->value == NULL) || in xmlRelaxNGValidateValue()
8888 (*ctxt->state->value == 0)) { in xmlRelaxNGValidateValue()
8892 oldflags = ctxt->flags; in xmlRelaxNGValidateValue()
8893 ctxt->flags |= FLAGS_IGNORABLE; in xmlRelaxNGValidateValue()
8894 cur = ctxt->state->value; in xmlRelaxNGValidateValue()
8896 while ((cur != NULL) && (cur != ctxt->state->endvalue) && in xmlRelaxNGValidateValue()
8900 xmlRelaxNGValidateValueList(ctxt, define->content); in xmlRelaxNGValidateValue()
8902 ctxt->state->value = temp; in xmlRelaxNGValidateValue()
8906 cur = ctxt->state->value; in xmlRelaxNGValidateValue()
8908 ctxt->flags = oldflags; in xmlRelaxNGValidateValue()
8909 if (ctxt->errNr > 0) in xmlRelaxNGValidateValue()
8910 xmlRelaxNGPopErrors(ctxt, 0); in xmlRelaxNGValidateValue()
8916 if ((ctxt->state->value == NULL) || in xmlRelaxNGValidateValue()
8917 (*ctxt->state->value == 0)) { in xmlRelaxNGValidateValue()
8921 oldflags = ctxt->flags; in xmlRelaxNGValidateValue()
8922 ctxt->flags |= FLAGS_IGNORABLE; in xmlRelaxNGValidateValue()
8923 temp = ctxt->state->value; in xmlRelaxNGValidateValue()
8924 ret = xmlRelaxNGValidateValue(ctxt, define->content); in xmlRelaxNGValidateValue()
8925 ctxt->flags = oldflags; in xmlRelaxNGValidateValue()
8927 ctxt->state->value = temp; in xmlRelaxNGValidateValue()
8928 if (ctxt->errNr > 0) in xmlRelaxNGValidateValue()
8929 xmlRelaxNGPopErrors(ctxt, 0); in xmlRelaxNGValidateValue()
8933 if (ctxt->errNr > 0) in xmlRelaxNGValidateValue()
8934 xmlRelaxNGPopErrors(ctxt, 0); in xmlRelaxNGValidateValue()
8942 ret = xmlRelaxNGValidateValue(ctxt, list); in xmlRelaxNGValidateValue()
8958 ret = xmlRelaxNGValidateValue(ctxt, list); in xmlRelaxNGValidateValue()
8974 ret = xmlRelaxNGValidateValue(ctxt, define->content); in xmlRelaxNGValidateValue()
8993 xmlRelaxNGValidateValueContent(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidateValueContent() argument
8999 ret = xmlRelaxNGValidateValue(ctxt, defines); in xmlRelaxNGValidateValueContent()
9018 xmlRelaxNGAttributeMatch(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGAttributeMatch() argument
9045 ret = xmlRelaxNGAttributeMatch(ctxt, list, prop); in xmlRelaxNGAttributeMatch()
9067 xmlRelaxNGValidateAttribute(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidateAttribute() argument
9075 if (ctxt->state->nbAttrLeft <= 0) in xmlRelaxNGValidateAttribute()
9078 for (i = 0; i < ctxt->state->nbAttrs; i++) { in xmlRelaxNGValidateAttribute()
9079 tmp = ctxt->state->attrs[i]; in xmlRelaxNGValidateAttribute()
9092 oldvalue = ctxt->state->value; in xmlRelaxNGValidateAttribute()
9093 oldseq = ctxt->state->seq; in xmlRelaxNGValidateAttribute()
9094 ctxt->state->seq = (xmlNodePtr) prop; in xmlRelaxNGValidateAttribute()
9095 ctxt->state->value = value; in xmlRelaxNGValidateAttribute()
9096 ctxt->state->endvalue = NULL; in xmlRelaxNGValidateAttribute()
9097 ret = xmlRelaxNGValidateValueContent(ctxt, define->content); in xmlRelaxNGValidateAttribute()
9098 if (ctxt->state->value != NULL) in xmlRelaxNGValidateAttribute()
9099 value = ctxt->state->value; in xmlRelaxNGValidateAttribute()
9102 ctxt->state->value = oldvalue; in xmlRelaxNGValidateAttribute()
9103 ctxt->state->seq = oldseq; in xmlRelaxNGValidateAttribute()
9108 ctxt->state->attrs[i] = NULL; in xmlRelaxNGValidateAttribute()
9109 ctxt->state->nbAttrLeft--; in xmlRelaxNGValidateAttribute()
9120 for (i = 0; i < ctxt->state->nbAttrs; i++) { in xmlRelaxNGValidateAttribute()
9121 tmp = ctxt->state->attrs[i]; in xmlRelaxNGValidateAttribute()
9123 (xmlRelaxNGAttributeMatch(ctxt, define, tmp) == 1)) { in xmlRelaxNGValidateAttribute()
9130 oldvalue = ctxt->state->value; in xmlRelaxNGValidateAttribute()
9131 oldseq = ctxt->state->seq; in xmlRelaxNGValidateAttribute()
9132 ctxt->state->seq = (xmlNodePtr) prop; in xmlRelaxNGValidateAttribute()
9133 ctxt->state->value = value; in xmlRelaxNGValidateAttribute()
9134 ret = xmlRelaxNGValidateValueContent(ctxt, define->content); in xmlRelaxNGValidateAttribute()
9135 if (ctxt->state->value != NULL) in xmlRelaxNGValidateAttribute()
9136 value = ctxt->state->value; in xmlRelaxNGValidateAttribute()
9139 ctxt->state->value = oldvalue; in xmlRelaxNGValidateAttribute()
9140 ctxt->state->seq = oldseq; in xmlRelaxNGValidateAttribute()
9145 ctxt->state->attrs[i] = NULL; in xmlRelaxNGValidateAttribute()
9146 ctxt->state->nbAttrLeft--; in xmlRelaxNGValidateAttribute()
9177 xmlRelaxNGValidateAttributeList(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidateAttributeList() argument
9187 if (xmlRelaxNGValidateAttribute(ctxt, cur) != 0) in xmlRelaxNGValidateAttributeList()
9198 if ((ctxt->state != NULL) || (ctxt->states != NULL)) { in xmlRelaxNGValidateAttributeList()
9199 res = xmlRelaxNGValidateDefinition(ctxt, cur); in xmlRelaxNGValidateAttributeList()
9260 xmlRelaxNGValidateInterleave(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidateInterleave() argument
9264 int errNr = ctxt->errNr; in xmlRelaxNGValidateInterleave()
9283 oldflags = ctxt->flags; in xmlRelaxNGValidateInterleave()
9285 ctxt->flags |= FLAGS_MIXED_CONTENT; in xmlRelaxNGValidateInterleave()
9290 if (ctxt->state != NULL) in xmlRelaxNGValidateInterleave()
9291 ctxt->state->seq = xmlRelaxNGSkipIgnored(ctxt, in xmlRelaxNGValidateInterleave()
9292 ctxt->state->seq); in xmlRelaxNGValidateInterleave()
9294 ret = xmlRelaxNGValidateDefinition(ctxt, in xmlRelaxNGValidateInterleave()
9298 ret = xmlRelaxNGValidateDefinition(ctxt, in xmlRelaxNGValidateInterleave()
9302 if (ctxt->state != NULL) in xmlRelaxNGValidateInterleave()
9303 ctxt->state->seq = xmlRelaxNGSkipIgnored(ctxt, in xmlRelaxNGValidateInterleave()
9304 ctxt->state-> in xmlRelaxNGValidateInterleave()
9307 ctxt->flags = oldflags; in xmlRelaxNGValidateInterleave()
9318 xmlRngVErrMemory(ctxt, "validating\n"); in xmlRelaxNGValidateInterleave()
9324 xmlRngVErrMemory(ctxt, "validating\n"); in xmlRelaxNGValidateInterleave()
9333 cur = ctxt->state->seq; in xmlRelaxNGValidateInterleave()
9334 cur = xmlRelaxNGSkipIgnored(ctxt, cur); in xmlRelaxNGValidateInterleave()
9337 ctxt->state->seq = cur; in xmlRelaxNGValidateInterleave()
9400 cur = xmlRelaxNGSkipIgnored(ctxt, cur->next); in xmlRelaxNGValidateInterleave()
9408 oldstate = ctxt->state; in xmlRelaxNGValidateInterleave()
9410 ctxt->state = xmlRelaxNGCopyValidState(ctxt, oldstate); in xmlRelaxNGValidateInterleave()
9416 ctxt->state->seq = list[i]; in xmlRelaxNGValidateInterleave()
9417 ret = xmlRelaxNGValidateDefinition(ctxt, group->rule); in xmlRelaxNGValidateInterleave()
9420 if (ctxt->state != NULL) { in xmlRelaxNGValidateInterleave()
9421 cur = ctxt->state->seq; in xmlRelaxNGValidateInterleave()
9422 cur = xmlRelaxNGSkipIgnored(ctxt, cur); in xmlRelaxNGValidateInterleave()
9423 xmlRelaxNGFreeValidState(ctxt, oldstate); in xmlRelaxNGValidateInterleave()
9424 oldstate = ctxt->state; in xmlRelaxNGValidateInterleave()
9425 ctxt->state = NULL; in xmlRelaxNGValidateInterleave()
9429 ctxt->state = oldstate; in xmlRelaxNGValidateInterleave()
9432 } else if (ctxt->states != NULL) { in xmlRelaxNGValidateInterleave()
9442 for (j = 0; j < ctxt->states->nbState; j++) { in xmlRelaxNGValidateInterleave()
9443 cur = ctxt->states->tabState[j]->seq; in xmlRelaxNGValidateInterleave()
9444 cur = xmlRelaxNGSkipIgnored(ctxt, cur); in xmlRelaxNGValidateInterleave()
9447 lowattr = ctxt->states->tabState[j]->nbAttrLeft; in xmlRelaxNGValidateInterleave()
9451 if (ctxt->states->tabState[j]->nbAttrLeft <= lowattr) { in xmlRelaxNGValidateInterleave()
9453 lowattr = ctxt->states->tabState[j]->nbAttrLeft; in xmlRelaxNGValidateInterleave()
9460 lowattr = ctxt->states->tabState[j]->nbAttrLeft; in xmlRelaxNGValidateInterleave()
9463 if (ctxt->states->tabState[j]->nbAttrLeft <= lowattr) { in xmlRelaxNGValidateInterleave()
9465 lowattr = ctxt->states->tabState[j]->nbAttrLeft; in xmlRelaxNGValidateInterleave()
9473 if (ctxt->states->nbState > 0) { in xmlRelaxNGValidateInterleave()
9474 xmlRelaxNGFreeValidState(ctxt, oldstate); in xmlRelaxNGValidateInterleave()
9476 oldstate = ctxt->states->tabState[best]; in xmlRelaxNGValidateInterleave()
9477 ctxt->states->tabState[best] = NULL; in xmlRelaxNGValidateInterleave()
9480 ctxt->states->tabState[ctxt->states->nbState - 1]; in xmlRelaxNGValidateInterleave()
9481 ctxt->states->tabState[ctxt->states->nbState - 1] = NULL; in xmlRelaxNGValidateInterleave()
9482 ctxt->states->nbState--; in xmlRelaxNGValidateInterleave()
9485 for (j = 0; j < ctxt->states->nbState ; j++) { in xmlRelaxNGValidateInterleave()
9486 xmlRelaxNGFreeValidState(ctxt, ctxt->states->tabState[j]); in xmlRelaxNGValidateInterleave()
9488 xmlRelaxNGFreeStates(ctxt, ctxt->states); in xmlRelaxNGValidateInterleave()
9489 ctxt->states = NULL; in xmlRelaxNGValidateInterleave()
9498 ctxt->state = oldstate; in xmlRelaxNGValidateInterleave()
9509 if (ctxt->state != NULL) in xmlRelaxNGValidateInterleave()
9510 xmlRelaxNGFreeValidState(ctxt, ctxt->state); in xmlRelaxNGValidateInterleave()
9511 ctxt->state = oldstate; in xmlRelaxNGValidateInterleave()
9512 ctxt->state->seq = lastelem; in xmlRelaxNGValidateInterleave()
9520 ctxt->flags = oldflags; in xmlRelaxNGValidateInterleave()
9532 if (ctxt->errNr > errNr) in xmlRelaxNGValidateInterleave()
9533 xmlRelaxNGPopErrors(ctxt, errNr); in xmlRelaxNGValidateInterleave()
9551 xmlRelaxNGValidateDefinitionList(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidateDefinitionList() argument
9563 if ((ctxt->state != NULL) || (ctxt->states != NULL)) { in xmlRelaxNGValidateDefinitionList()
9564 res = xmlRelaxNGValidateDefinition(ctxt, defines); in xmlRelaxNGValidateDefinitionList()
9590 xmlRelaxNGElementMatch(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGElementMatch() argument
9626 if (ctxt != NULL) { in xmlRelaxNGElementMatch()
9627 oldflags = ctxt->flags; in xmlRelaxNGElementMatch()
9628 ctxt->flags |= FLAGS_IGNORABLE; in xmlRelaxNGElementMatch()
9633 ret = xmlRelaxNGElementMatch(ctxt, list, elem); in xmlRelaxNGElementMatch()
9635 if (ctxt != NULL) in xmlRelaxNGElementMatch()
9636 ctxt->flags = oldflags; in xmlRelaxNGElementMatch()
9640 if (ctxt != NULL) in xmlRelaxNGElementMatch()
9641 ctxt->flags = oldflags; in xmlRelaxNGElementMatch()
9647 if (ctxt != NULL) { in xmlRelaxNGElementMatch()
9648 ctxt->flags = oldflags; in xmlRelaxNGElementMatch()
9653 if (ctxt != NULL) { in xmlRelaxNGElementMatch()
9654 oldflags = ctxt->flags; in xmlRelaxNGElementMatch()
9655 ctxt->flags |= FLAGS_IGNORABLE; in xmlRelaxNGElementMatch()
9660 ret = xmlRelaxNGElementMatch(ctxt, list, elem); in xmlRelaxNGElementMatch()
9662 if (ctxt != NULL) in xmlRelaxNGElementMatch()
9663 ctxt->flags = oldflags; in xmlRelaxNGElementMatch()
9667 if (ctxt != NULL) in xmlRelaxNGElementMatch()
9668 ctxt->flags = oldflags; in xmlRelaxNGElementMatch()
9673 if (ctxt != NULL) { in xmlRelaxNGElementMatch()
9675 if ((ctxt->flags & FLAGS_IGNORABLE) == 0) in xmlRelaxNGElementMatch()
9676 xmlRelaxNGDumpValidError(ctxt); in xmlRelaxNGElementMatch()
9678 if (ctxt->errNr > 0) in xmlRelaxNGElementMatch()
9679 xmlRelaxNGPopErrors(ctxt, 0); in xmlRelaxNGElementMatch()
9683 if (ctxt != NULL) { in xmlRelaxNGElementMatch()
9684 ctxt->flags = oldflags; in xmlRelaxNGElementMatch()
9704 xmlRelaxNGBestState(xmlRelaxNGValidCtxtPtr ctxt) in xmlRelaxNGBestState() argument
9711 if ((ctxt == NULL) || (ctxt->states == NULL) || in xmlRelaxNGBestState()
9712 (ctxt->states->nbState <= 0)) in xmlRelaxNGBestState()
9715 for (i = 0; i < ctxt->states->nbState; i++) { in xmlRelaxNGBestState()
9716 state = ctxt->states->tabState[i]; in xmlRelaxNGBestState()
9743 xmlRelaxNGLogBestError(xmlRelaxNGValidCtxtPtr ctxt) in xmlRelaxNGLogBestError() argument
9747 if ((ctxt == NULL) || (ctxt->states == NULL) || in xmlRelaxNGLogBestError()
9748 (ctxt->states->nbState <= 0)) in xmlRelaxNGLogBestError()
9751 best = xmlRelaxNGBestState(ctxt); in xmlRelaxNGLogBestError()
9752 if ((best >= 0) && (best < ctxt->states->nbState)) { in xmlRelaxNGLogBestError()
9753 ctxt->state = ctxt->states->tabState[best]; in xmlRelaxNGLogBestError()
9755 xmlRelaxNGValidateElementEnd(ctxt, 1); in xmlRelaxNGLogBestError()
9771 xmlRelaxNGValidateElementEnd(xmlRelaxNGValidCtxtPtr ctxt, int dolog) in xmlRelaxNGValidateElementEnd() argument
9776 state = ctxt->state; in xmlRelaxNGValidateElementEnd()
9778 state->seq = xmlRelaxNGSkipIgnored(ctxt, state->seq); in xmlRelaxNGValidateElementEnd()
9809 xmlRelaxNGValidateState(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidateState() argument
9821 if (ctxt->state != NULL) { in xmlRelaxNGValidateState()
9822 node = ctxt->state->seq; in xmlRelaxNGValidateState()
9827 for (i = 0; i < ctxt->depth; i++) in xmlRelaxNGValidateState()
9838 ctxt->depth++; in xmlRelaxNGValidateState()
9841 node = xmlRelaxNGSkipIgnored(ctxt, node); in xmlRelaxNGValidateState()
9854 ctxt->state->seq = node; in xmlRelaxNGValidateState()
9857 errNr = ctxt->errNr; in xmlRelaxNGValidateState()
9858 node = xmlRelaxNGSkipIgnored(ctxt, node); in xmlRelaxNGValidateState()
9862 if ((ctxt->flags & FLAGS_IGNORABLE) == 0) in xmlRelaxNGValidateState()
9863 xmlRelaxNGDumpValidError(ctxt); in xmlRelaxNGValidateState()
9869 if ((ctxt->flags & FLAGS_IGNORABLE) == 0) in xmlRelaxNGValidateState()
9870 xmlRelaxNGDumpValidError(ctxt); in xmlRelaxNGValidateState()
9878 ctxt->state->seq = xmlRelaxNGSkipIgnored(ctxt, node->next); in xmlRelaxNGValidateState()
9879 if (ctxt->errNr > errNr) in xmlRelaxNGValidateState()
9880 xmlRelaxNGPopErrors(ctxt, errNr); in xmlRelaxNGValidateState()
9881 if (ctxt->errNr != 0) { in xmlRelaxNGValidateState()
9882 while ((ctxt->err != NULL) && in xmlRelaxNGValidateState()
9883 (((ctxt->err->err == XML_RELAXNG_ERR_ELEMNAME) in xmlRelaxNGValidateState()
9884 && (xmlStrEqual(ctxt->err->arg2, node->name))) in xmlRelaxNGValidateState()
9886 ((ctxt->err->err == in xmlRelaxNGValidateState()
9888 && (xmlStrEqual(ctxt->err->arg1, node->name))) in xmlRelaxNGValidateState()
9889 || (ctxt->err->err == XML_RELAXNG_ERR_NOELEM) in xmlRelaxNGValidateState()
9890 || (ctxt->err->err == in xmlRelaxNGValidateState()
9892 xmlRelaxNGValidErrorPop(ctxt); in xmlRelaxNGValidateState()
9897 ret = xmlRelaxNGElementMatch(ctxt, define, node); in xmlRelaxNGValidateState()
9900 if ((ctxt->flags & FLAGS_IGNORABLE) == 0) in xmlRelaxNGValidateState()
9901 xmlRelaxNGDumpValidError(ctxt); in xmlRelaxNGValidateState()
9905 if (ctxt->errNr != 0) { in xmlRelaxNGValidateState()
9906 if (ctxt->errNr > errNr) in xmlRelaxNGValidateState()
9907 xmlRelaxNGPopErrors(ctxt, errNr); in xmlRelaxNGValidateState()
9908 while ((ctxt->err != NULL) && in xmlRelaxNGValidateState()
9909 (((ctxt->err->err == XML_RELAXNG_ERR_ELEMNAME) && in xmlRelaxNGValidateState()
9910 (xmlStrEqual(ctxt->err->arg2, node->name))) || in xmlRelaxNGValidateState()
9911 ((ctxt->err->err == XML_RELAXNG_ERR_ELEMEXTRANS) && in xmlRelaxNGValidateState()
9912 (xmlStrEqual(ctxt->err->arg1, node->name))) || in xmlRelaxNGValidateState()
9913 (ctxt->err->err == XML_RELAXNG_ERR_NOELEM) || in xmlRelaxNGValidateState()
9914 (ctxt->err->err == XML_RELAXNG_ERR_NOTELEM))) in xmlRelaxNGValidateState()
9915 xmlRelaxNGValidErrorPop(ctxt); in xmlRelaxNGValidateState()
9917 errNr = ctxt->errNr; in xmlRelaxNGValidateState()
9919 oldflags = ctxt->flags; in xmlRelaxNGValidateState()
9920 if (ctxt->flags & FLAGS_MIXED_CONTENT) { in xmlRelaxNGValidateState()
9921 ctxt->flags -= FLAGS_MIXED_CONTENT; in xmlRelaxNGValidateState()
9923 state = xmlRelaxNGNewValidState(ctxt, node); in xmlRelaxNGValidateState()
9926 if ((ctxt->flags & FLAGS_IGNORABLE) == 0) in xmlRelaxNGValidateState()
9927 xmlRelaxNGDumpValidError(ctxt); in xmlRelaxNGValidateState()
9931 oldstate = ctxt->state; in xmlRelaxNGValidateState()
9932 ctxt->state = state; in xmlRelaxNGValidateState()
9934 tmp = xmlRelaxNGValidateAttributeList(ctxt, define->attrs); in xmlRelaxNGValidateState()
9941 xmlRelaxNGValidStatePtr nstate, tmpstate = ctxt->state; in xmlRelaxNGValidateState()
9942 xmlRelaxNGStatesPtr tmpstates = ctxt->states; in xmlRelaxNGValidateState()
9945 nstate = xmlRelaxNGNewValidState(ctxt, node); in xmlRelaxNGValidateState()
9946 ctxt->state = nstate; in xmlRelaxNGValidateState()
9947 ctxt->states = NULL; in xmlRelaxNGValidateState()
9949 tmp = xmlRelaxNGValidateCompiledContent(ctxt, in xmlRelaxNGValidateState()
9951 ctxt->state->seq); in xmlRelaxNGValidateState()
9952 nseq = ctxt->state->seq; in xmlRelaxNGValidateState()
9953 ctxt->state = tmpstate; in xmlRelaxNGValidateState()
9954 ctxt->states = tmpstates; in xmlRelaxNGValidateState()
9955 xmlRelaxNGFreeValidState(ctxt, nstate); in xmlRelaxNGValidateState()
9965 if (ctxt->states != NULL) { in xmlRelaxNGValidateState()
9968 for (i = 0; i < ctxt->states->nbState; i++) { in xmlRelaxNGValidateState()
9969 state = ctxt->states->tabState[i]; in xmlRelaxNGValidateState()
9970 ctxt->state = state; in xmlRelaxNGValidateState()
9971 ctxt->state->seq = nseq; in xmlRelaxNGValidateState()
9973 if (xmlRelaxNGValidateElementEnd(ctxt, 0) == 0) { in xmlRelaxNGValidateState()
9982 ctxt->flags |= FLAGS_IGNORABLE; in xmlRelaxNGValidateState()
9983 xmlRelaxNGLogBestError(ctxt); in xmlRelaxNGValidateState()
9985 for (i = 0; i < ctxt->states->nbState; i++) { in xmlRelaxNGValidateState()
9986 xmlRelaxNGFreeValidState(ctxt, in xmlRelaxNGValidateState()
9987 ctxt->states-> in xmlRelaxNGValidateState()
9990 xmlRelaxNGFreeStates(ctxt, ctxt->states); in xmlRelaxNGValidateState()
9991 ctxt->flags = oldflags; in xmlRelaxNGValidateState()
9992 ctxt->states = NULL; in xmlRelaxNGValidateState()
9996 state = ctxt->state; in xmlRelaxNGValidateState()
9997 if (ctxt->state != NULL) in xmlRelaxNGValidateState()
9998 ctxt->state->seq = nseq; in xmlRelaxNGValidateState()
10000 ret = xmlRelaxNGValidateElementEnd(ctxt, 1); in xmlRelaxNGValidateState()
10001 xmlRelaxNGFreeValidState(ctxt, state); in xmlRelaxNGValidateState()
10005 tmp = xmlRelaxNGValidateDefinitionList(ctxt, in xmlRelaxNGValidateState()
10010 if (ctxt->state == NULL) { in xmlRelaxNGValidateState()
10011 ctxt->state = oldstate; in xmlRelaxNGValidateState()
10014 ctxt->state = NULL; in xmlRelaxNGValidateState()
10022 if (ctxt->states != NULL) { in xmlRelaxNGValidateState()
10025 for (i = 0; i < ctxt->states->nbState; i++) { in xmlRelaxNGValidateState()
10026 state = ctxt->states->tabState[i]; in xmlRelaxNGValidateState()
10027 ctxt->state = state; in xmlRelaxNGValidateState()
10029 if (xmlRelaxNGValidateElementEnd(ctxt, 0) == 0) { in xmlRelaxNGValidateState()
10038 ctxt->flags |= FLAGS_IGNORABLE; in xmlRelaxNGValidateState()
10039 xmlRelaxNGLogBestError(ctxt); in xmlRelaxNGValidateState()
10041 for (i = 0; i < ctxt->states->nbState; i++) { in xmlRelaxNGValidateState()
10042 xmlRelaxNGFreeValidState(ctxt, in xmlRelaxNGValidateState()
10043 ctxt->states->tabState[i]); in xmlRelaxNGValidateState()
10044 ctxt->states->tabState[i] = NULL; in xmlRelaxNGValidateState()
10046 xmlRelaxNGFreeStates(ctxt, ctxt->states); in xmlRelaxNGValidateState()
10047 ctxt->flags = oldflags; in xmlRelaxNGValidateState()
10048 ctxt->states = NULL; in xmlRelaxNGValidateState()
10052 state = ctxt->state; in xmlRelaxNGValidateState()
10054 ret = xmlRelaxNGValidateElementEnd(ctxt, 1); in xmlRelaxNGValidateState()
10055 xmlRelaxNGFreeValidState(ctxt, state); in xmlRelaxNGValidateState()
10061 ctxt->flags = oldflags; in xmlRelaxNGValidateState()
10062 ctxt->state = oldstate; in xmlRelaxNGValidateState()
10064 oldstate->seq = xmlRelaxNGSkipIgnored(ctxt, node->next); in xmlRelaxNGValidateState()
10066 if ((ctxt->flags & FLAGS_IGNORABLE) == 0) { in xmlRelaxNGValidateState()
10067 xmlRelaxNGDumpValidError(ctxt); in xmlRelaxNGValidateState()
10075 if (ctxt->errNr > errNr) in xmlRelaxNGValidateState()
10076 xmlRelaxNGPopErrors(ctxt, errNr); in xmlRelaxNGValidateState()
10096 errNr = ctxt->errNr; in xmlRelaxNGValidateState()
10097 oldflags = ctxt->flags; in xmlRelaxNGValidateState()
10098 ctxt->flags |= FLAGS_IGNORABLE; in xmlRelaxNGValidateState()
10099 oldstate = xmlRelaxNGCopyValidState(ctxt, ctxt->state); in xmlRelaxNGValidateState()
10101 xmlRelaxNGValidateDefinitionList(ctxt, in xmlRelaxNGValidateState()
10104 if (ctxt->state != NULL) in xmlRelaxNGValidateState()
10105 xmlRelaxNGFreeValidState(ctxt, ctxt->state); in xmlRelaxNGValidateState()
10106 ctxt->state = oldstate; in xmlRelaxNGValidateState()
10107 ctxt->flags = oldflags; in xmlRelaxNGValidateState()
10109 if (ctxt->errNr > errNr) in xmlRelaxNGValidateState()
10110 xmlRelaxNGPopErrors(ctxt, errNr); in xmlRelaxNGValidateState()
10113 if (ctxt->states != NULL) { in xmlRelaxNGValidateState()
10114 xmlRelaxNGAddStates(ctxt, ctxt->states, oldstate); in xmlRelaxNGValidateState()
10116 ctxt->states = xmlRelaxNGNewStates(ctxt, 1); in xmlRelaxNGValidateState()
10117 if (ctxt->states == NULL) { in xmlRelaxNGValidateState()
10118 xmlRelaxNGFreeValidState(ctxt, oldstate); in xmlRelaxNGValidateState()
10119 ctxt->flags = oldflags; in xmlRelaxNGValidateState()
10121 if (ctxt->errNr > errNr) in xmlRelaxNGValidateState()
10122 xmlRelaxNGPopErrors(ctxt, errNr); in xmlRelaxNGValidateState()
10125 xmlRelaxNGAddStates(ctxt, ctxt->states, oldstate); in xmlRelaxNGValidateState()
10126 xmlRelaxNGAddStates(ctxt, ctxt->states, ctxt->state); in xmlRelaxNGValidateState()
10127 ctxt->state = NULL; in xmlRelaxNGValidateState()
10129 ctxt->flags = oldflags; in xmlRelaxNGValidateState()
10131 if (ctxt->errNr > errNr) in xmlRelaxNGValidateState()
10132 xmlRelaxNGPopErrors(ctxt, errNr); in xmlRelaxNGValidateState()
10136 errNr = ctxt->errNr; in xmlRelaxNGValidateState()
10137 ret = xmlRelaxNGValidateDefinitionList(ctxt, define->content); in xmlRelaxNGValidateState()
10141 if (ctxt->errNr > errNr) in xmlRelaxNGValidateState()
10142 xmlRelaxNGPopErrors(ctxt, errNr); in xmlRelaxNGValidateState()
10149 errNr = ctxt->errNr; in xmlRelaxNGValidateState()
10150 res = xmlRelaxNGNewStates(ctxt, 1); in xmlRelaxNGValidateState()
10158 if (ctxt->state != NULL) { in xmlRelaxNGValidateState()
10159 xmlRelaxNGAddStates(ctxt, res, in xmlRelaxNGValidateState()
10160 xmlRelaxNGCopyValidState(ctxt, in xmlRelaxNGValidateState()
10161 ctxt-> in xmlRelaxNGValidateState()
10164 for (j = 0; j < ctxt->states->nbState; j++) { in xmlRelaxNGValidateState()
10165 xmlRelaxNGAddStates(ctxt, res, in xmlRelaxNGValidateState()
10166 xmlRelaxNGCopyValidState(ctxt, in xmlRelaxNGValidateState()
10167 ctxt->states->tabState[j])); in xmlRelaxNGValidateState()
10170 oldflags = ctxt->flags; in xmlRelaxNGValidateState()
10171 ctxt->flags |= FLAGS_IGNORABLE; in xmlRelaxNGValidateState()
10176 if (ctxt->states != NULL) { in xmlRelaxNGValidateState()
10177 states = ctxt->states; in xmlRelaxNGValidateState()
10179 ctxt->state = states->tabState[i]; in xmlRelaxNGValidateState()
10180 ctxt->states = NULL; in xmlRelaxNGValidateState()
10181 ret = xmlRelaxNGValidateDefinitionList(ctxt, in xmlRelaxNGValidateState()
10185 if (ctxt->state != NULL) { in xmlRelaxNGValidateState()
10186 tmp = xmlRelaxNGAddStates(ctxt, res, in xmlRelaxNGValidateState()
10187 ctxt->state); in xmlRelaxNGValidateState()
10188 ctxt->state = NULL; in xmlRelaxNGValidateState()
10191 } else if (ctxt->states != NULL) { in xmlRelaxNGValidateState()
10192 for (j = 0; j < ctxt->states->nbState; in xmlRelaxNGValidateState()
10195 xmlRelaxNGAddStates(ctxt, res, in xmlRelaxNGValidateState()
10196 ctxt->states->tabState[j]); in xmlRelaxNGValidateState()
10200 xmlRelaxNGFreeStates(ctxt, in xmlRelaxNGValidateState()
10201 ctxt->states); in xmlRelaxNGValidateState()
10202 ctxt->states = NULL; in xmlRelaxNGValidateState()
10205 if (ctxt->state != NULL) { in xmlRelaxNGValidateState()
10206 xmlRelaxNGFreeValidState(ctxt, in xmlRelaxNGValidateState()
10207 ctxt->state); in xmlRelaxNGValidateState()
10208 ctxt->state = NULL; in xmlRelaxNGValidateState()
10213 ret = xmlRelaxNGValidateDefinitionList(ctxt, in xmlRelaxNGValidateState()
10217 xmlRelaxNGFreeValidState(ctxt, ctxt->state); in xmlRelaxNGValidateState()
10218 ctxt->state = NULL; in xmlRelaxNGValidateState()
10221 if (ctxt->state != NULL) { in xmlRelaxNGValidateState()
10222 tmp = xmlRelaxNGAddStates(ctxt, res, in xmlRelaxNGValidateState()
10223 ctxt->state); in xmlRelaxNGValidateState()
10224 ctxt->state = NULL; in xmlRelaxNGValidateState()
10227 } else if (ctxt->states != NULL) { in xmlRelaxNGValidateState()
10228 for (j = 0; j < ctxt->states->nbState; j++) { in xmlRelaxNGValidateState()
10229 tmp = xmlRelaxNGAddStates(ctxt, res, in xmlRelaxNGValidateState()
10230 ctxt->states->tabState[j]); in xmlRelaxNGValidateState()
10235 states = ctxt->states; in xmlRelaxNGValidateState()
10237 xmlRelaxNGFreeStates(ctxt, in xmlRelaxNGValidateState()
10238 ctxt->states); in xmlRelaxNGValidateState()
10240 ctxt->states = NULL; in xmlRelaxNGValidateState()
10250 ctxt->state = xmlRelaxNGCopyValidState(ctxt, in xmlRelaxNGValidateState()
10256 xmlRelaxNGNewStates(ctxt, in xmlRelaxNGValidateState()
10258 states = ctxt->states; in xmlRelaxNGValidateState()
10266 xmlRelaxNGAddStates(ctxt, states, in xmlRelaxNGValidateState()
10268 (ctxt, res->tabState[i])); in xmlRelaxNGValidateState()
10269 ctxt->states = states; in xmlRelaxNGValidateState()
10274 xmlRelaxNGFreeStates(ctxt, states); in xmlRelaxNGValidateState()
10276 ctxt->states = res; in xmlRelaxNGValidateState()
10277 ctxt->flags = oldflags; in xmlRelaxNGValidateState()
10282 if (ctxt->errNr > errNr) in xmlRelaxNGValidateState()
10283 xmlRelaxNGPopErrors(ctxt, errNr); in xmlRelaxNGValidateState()
10292 node = xmlRelaxNGSkipIgnored(ctxt, node); in xmlRelaxNGValidateState()
10294 errNr = ctxt->errNr; in xmlRelaxNGValidateState()
10334 ret = xmlRelaxNGValidateDefinition(ctxt, list); in xmlRelaxNGValidateState()
10341 oldflags = ctxt->flags; in xmlRelaxNGValidateState()
10342 ctxt->flags |= FLAGS_IGNORABLE; in xmlRelaxNGValidateState()
10345 oldstate = xmlRelaxNGCopyValidState(ctxt, ctxt->state); in xmlRelaxNGValidateState()
10346 ret = xmlRelaxNGValidateDefinition(ctxt, list); in xmlRelaxNGValidateState()
10349 states = xmlRelaxNGNewStates(ctxt, 1); in xmlRelaxNGValidateState()
10351 if (ctxt->state != NULL) { in xmlRelaxNGValidateState()
10352 xmlRelaxNGAddStates(ctxt, states, ctxt->state); in xmlRelaxNGValidateState()
10353 } else if (ctxt->states != NULL) { in xmlRelaxNGValidateState()
10354 for (i = 0; i < ctxt->states->nbState; i++) { in xmlRelaxNGValidateState()
10355 xmlRelaxNGAddStates(ctxt, states, in xmlRelaxNGValidateState()
10356 ctxt->states-> in xmlRelaxNGValidateState()
10359 xmlRelaxNGFreeStates(ctxt, ctxt->states); in xmlRelaxNGValidateState()
10360 ctxt->states = NULL; in xmlRelaxNGValidateState()
10363 xmlRelaxNGFreeValidState(ctxt, ctxt->state); in xmlRelaxNGValidateState()
10365 ctxt->state = oldstate; in xmlRelaxNGValidateState()
10369 xmlRelaxNGFreeValidState(ctxt, oldstate); in xmlRelaxNGValidateState()
10370 ctxt->states = states; in xmlRelaxNGValidateState()
10371 ctxt->state = NULL; in xmlRelaxNGValidateState()
10374 ctxt->states = NULL; in xmlRelaxNGValidateState()
10376 ctxt->flags = oldflags; in xmlRelaxNGValidateState()
10378 if ((ctxt->flags & FLAGS_IGNORABLE) == 0) { in xmlRelaxNGValidateState()
10379 xmlRelaxNGDumpValidError(ctxt); in xmlRelaxNGValidateState()
10382 if (ctxt->errNr > errNr) in xmlRelaxNGValidateState()
10383 xmlRelaxNGPopErrors(ctxt, errNr); in xmlRelaxNGValidateState()
10389 ret = xmlRelaxNGValidateDefinitionList(ctxt, define->content); in xmlRelaxNGValidateState()
10392 ret = xmlRelaxNGValidateInterleave(ctxt, define); in xmlRelaxNGValidateState()
10395 ret = xmlRelaxNGValidateAttribute(ctxt, define); in xmlRelaxNGValidateState()
10402 ret = xmlRelaxNGValidateDefinition(ctxt, define->content); in xmlRelaxNGValidateState()
10430 xmlRngVErrMemory(ctxt, "validating\n"); in xmlRelaxNGValidateState()
10435 ret = xmlRelaxNGValidateDatatype(ctxt, content, define, in xmlRelaxNGValidateState()
10436 ctxt->state->seq); in xmlRelaxNGValidateState()
10440 ctxt->state->seq = NULL; in xmlRelaxNGValidateState()
10473 xmlRngVErrMemory(ctxt, "validating\n"); in xmlRelaxNGValidateState()
10478 oldvalue = ctxt->state->value; in xmlRelaxNGValidateState()
10479 ctxt->state->value = content; in xmlRelaxNGValidateState()
10480 ret = xmlRelaxNGValidateValue(ctxt, define); in xmlRelaxNGValidateState()
10481 ctxt->state->value = oldvalue; in xmlRelaxNGValidateState()
10485 ctxt->state->seq = NULL; in xmlRelaxNGValidateState()
10524 xmlRngVErrMemory(ctxt, "validating\n"); in xmlRelaxNGValidateState()
10530 oldvalue = ctxt->state->value; in xmlRelaxNGValidateState()
10531 oldendvalue = ctxt->state->endvalue; in xmlRelaxNGValidateState()
10532 ctxt->state->value = content; in xmlRelaxNGValidateState()
10533 ctxt->state->endvalue = content + len; in xmlRelaxNGValidateState()
10534 ret = xmlRelaxNGValidateValue(ctxt, define); in xmlRelaxNGValidateState()
10535 ctxt->state->value = oldvalue; in xmlRelaxNGValidateState()
10536 ctxt->state->endvalue = oldendvalue; in xmlRelaxNGValidateState()
10540 ctxt->state->seq = node->next; in xmlRelaxNGValidateState()
10551 ctxt->depth--; in xmlRelaxNGValidateState()
10553 for (i = 0; i < ctxt->depth; i++) in xmlRelaxNGValidateState()
10577 xmlRelaxNGValidateDefinition(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidateDefinition() argument
10586 if ((ctxt->state != NULL) && (ctxt->states != NULL)) { in xmlRelaxNGValidateDefinition()
10587 TODO xmlRelaxNGFreeValidState(ctxt, ctxt->state); in xmlRelaxNGValidateDefinition()
10588 ctxt->state = NULL; in xmlRelaxNGValidateDefinition()
10591 if ((ctxt->states == NULL) || (ctxt->states->nbState == 1)) { in xmlRelaxNGValidateDefinition()
10592 if (ctxt->states != NULL) { in xmlRelaxNGValidateDefinition()
10593 ctxt->state = ctxt->states->tabState[0]; in xmlRelaxNGValidateDefinition()
10594 xmlRelaxNGFreeStates(ctxt, ctxt->states); in xmlRelaxNGValidateDefinition()
10595 ctxt->states = NULL; in xmlRelaxNGValidateDefinition()
10597 ret = xmlRelaxNGValidateState(ctxt, define); in xmlRelaxNGValidateDefinition()
10598 if ((ctxt->state != NULL) && (ctxt->states != NULL)) { in xmlRelaxNGValidateDefinition()
10599 TODO xmlRelaxNGFreeValidState(ctxt, ctxt->state); in xmlRelaxNGValidateDefinition()
10600 ctxt->state = NULL; in xmlRelaxNGValidateDefinition()
10602 if ((ctxt->states != NULL) && (ctxt->states->nbState == 1)) { in xmlRelaxNGValidateDefinition()
10603 ctxt->state = ctxt->states->tabState[0]; in xmlRelaxNGValidateDefinition()
10604 xmlRelaxNGFreeStates(ctxt, ctxt->states); in xmlRelaxNGValidateDefinition()
10605 ctxt->states = NULL; in xmlRelaxNGValidateDefinition()
10610 states = ctxt->states; in xmlRelaxNGValidateDefinition()
10611 ctxt->states = NULL; in xmlRelaxNGValidateDefinition()
10614 oldflags = ctxt->flags; in xmlRelaxNGValidateDefinition()
10615 ctxt->flags |= FLAGS_IGNORABLE; in xmlRelaxNGValidateDefinition()
10617 ctxt->state = states->tabState[i]; in xmlRelaxNGValidateDefinition()
10618 ctxt->states = NULL; in xmlRelaxNGValidateDefinition()
10619 ret = xmlRelaxNGValidateState(ctxt, define); in xmlRelaxNGValidateDefinition()
10623 if ((ctxt->state != NULL) && (ctxt->states != NULL)) { in xmlRelaxNGValidateDefinition()
10624 TODO xmlRelaxNGFreeValidState(ctxt, ctxt->state); in xmlRelaxNGValidateDefinition()
10625 ctxt->state = NULL; in xmlRelaxNGValidateDefinition()
10628 if (ctxt->states == NULL) { in xmlRelaxNGValidateDefinition()
10631 xmlRelaxNGAddStates(ctxt, res, ctxt->state); in xmlRelaxNGValidateDefinition()
10632 ctxt->state = NULL; in xmlRelaxNGValidateDefinition()
10635 states->tabState[j++] = ctxt->state; in xmlRelaxNGValidateDefinition()
10636 ctxt->state = NULL; in xmlRelaxNGValidateDefinition()
10641 res = ctxt->states; in xmlRelaxNGValidateDefinition()
10642 ctxt->states = NULL; in xmlRelaxNGValidateDefinition()
10644 xmlRelaxNGAddStates(ctxt, res, in xmlRelaxNGValidateDefinition()
10648 for (k = 0; k < ctxt->states->nbState; k++) in xmlRelaxNGValidateDefinition()
10649 xmlRelaxNGAddStates(ctxt, res, in xmlRelaxNGValidateDefinition()
10650 ctxt->states->tabState[k]); in xmlRelaxNGValidateDefinition()
10651 xmlRelaxNGFreeStates(ctxt, ctxt->states); in xmlRelaxNGValidateDefinition()
10652 ctxt->states = NULL; in xmlRelaxNGValidateDefinition()
10656 if (ctxt->state != NULL) { in xmlRelaxNGValidateDefinition()
10657 xmlRelaxNGFreeValidState(ctxt, ctxt->state); in xmlRelaxNGValidateDefinition()
10658 ctxt->state = NULL; in xmlRelaxNGValidateDefinition()
10659 } else if (ctxt->states != NULL) { in xmlRelaxNGValidateDefinition()
10660 for (k = 0; k < ctxt->states->nbState; k++) in xmlRelaxNGValidateDefinition()
10661 xmlRelaxNGFreeValidState(ctxt, in xmlRelaxNGValidateDefinition()
10662 ctxt->states->tabState[k]); in xmlRelaxNGValidateDefinition()
10663 xmlRelaxNGFreeStates(ctxt, ctxt->states); in xmlRelaxNGValidateDefinition()
10664 ctxt->states = NULL; in xmlRelaxNGValidateDefinition()
10668 ctxt->flags = oldflags; in xmlRelaxNGValidateDefinition()
10670 xmlRelaxNGFreeStates(ctxt, states); in xmlRelaxNGValidateDefinition()
10671 ctxt->states = res; in xmlRelaxNGValidateDefinition()
10675 ctxt->states = states; in xmlRelaxNGValidateDefinition()
10678 ctxt->state = states->tabState[0]; in xmlRelaxNGValidateDefinition()
10679 xmlRelaxNGFreeStates(ctxt, states); in xmlRelaxNGValidateDefinition()
10683 xmlRelaxNGFreeStates(ctxt, states); in xmlRelaxNGValidateDefinition()
10684 if (ctxt->states != NULL) { in xmlRelaxNGValidateDefinition()
10685 xmlRelaxNGFreeStates(ctxt, ctxt->states); in xmlRelaxNGValidateDefinition()
10686 ctxt->states = NULL; in xmlRelaxNGValidateDefinition()
10689 if ((ctxt->state != NULL) && (ctxt->states != NULL)) { in xmlRelaxNGValidateDefinition()
10690 TODO xmlRelaxNGFreeValidState(ctxt, ctxt->state); in xmlRelaxNGValidateDefinition()
10691 ctxt->state = NULL; in xmlRelaxNGValidateDefinition()
10706 xmlRelaxNGValidateDocument(xmlRelaxNGValidCtxtPtr ctxt, xmlDocPtr doc) in xmlRelaxNGValidateDocument() argument
10714 if ((ctxt == NULL) || (ctxt->schema == NULL) || (doc == NULL)) in xmlRelaxNGValidateDocument()
10717 ctxt->errNo = XML_RELAXNG_OK; in xmlRelaxNGValidateDocument()
10718 schema = ctxt->schema; in xmlRelaxNGValidateDocument()
10724 state = xmlRelaxNGNewValidState(ctxt, NULL); in xmlRelaxNGValidateDocument()
10725 ctxt->state = state; in xmlRelaxNGValidateDocument()
10726 ret = xmlRelaxNGValidateDefinition(ctxt, grammar->start); in xmlRelaxNGValidateDocument()
10727 if ((ctxt->state != NULL) && (state->seq != NULL)) { in xmlRelaxNGValidateDocument()
10728 state = ctxt->state; in xmlRelaxNGValidateDocument()
10730 node = xmlRelaxNGSkipIgnored(ctxt, node); in xmlRelaxNGValidateDocument()
10737 } else if (ctxt->states != NULL) { in xmlRelaxNGValidateDocument()
10741 for (i = 0; i < ctxt->states->nbState; i++) { in xmlRelaxNGValidateDocument()
10742 state = ctxt->states->tabState[i]; in xmlRelaxNGValidateDocument()
10744 node = xmlRelaxNGSkipIgnored(ctxt, node); in xmlRelaxNGValidateDocument()
10747 xmlRelaxNGFreeValidState(ctxt, state); in xmlRelaxNGValidateDocument()
10756 if (ctxt->state != NULL) { in xmlRelaxNGValidateDocument()
10757 xmlRelaxNGFreeValidState(ctxt, ctxt->state); in xmlRelaxNGValidateDocument()
10758 ctxt->state = NULL; in xmlRelaxNGValidateDocument()
10761 xmlRelaxNGDumpValidError(ctxt); in xmlRelaxNGValidateDocument()
10763 else if (ctxt->errNr != 0) { in xmlRelaxNGValidateDocument()
10764 ctxt->error(ctxt->userData, in xmlRelaxNGValidateDocument()
10766 ctxt->errNr); in xmlRelaxNGValidateDocument()
10767 xmlRelaxNGDumpValidError(ctxt); in xmlRelaxNGValidateDocument()
10771 if (ctxt->idref == 1) { in xmlRelaxNGValidateDocument()
10776 vctxt.error = ctxt->error; in xmlRelaxNGValidateDocument()
10777 vctxt.warning = ctxt->warning; in xmlRelaxNGValidateDocument()
10778 vctxt.userData = ctxt->userData; in xmlRelaxNGValidateDocument()
10784 if ((ret == 0) && (ctxt->errNo != XML_RELAXNG_OK)) in xmlRelaxNGValidateDocument()
10892 xmlRelaxNGFreeValidCtxt(xmlRelaxNGValidCtxtPtr ctxt) in xmlRelaxNGFreeValidCtxt() argument
10896 if (ctxt == NULL) in xmlRelaxNGFreeValidCtxt()
10898 if (ctxt->states != NULL) in xmlRelaxNGFreeValidCtxt()
10899 xmlRelaxNGFreeStates(NULL, ctxt->states); in xmlRelaxNGFreeValidCtxt()
10900 if (ctxt->freeState != NULL) { in xmlRelaxNGFreeValidCtxt()
10901 for (k = 0; k < ctxt->freeState->nbState; k++) { in xmlRelaxNGFreeValidCtxt()
10902 xmlRelaxNGFreeValidState(NULL, ctxt->freeState->tabState[k]); in xmlRelaxNGFreeValidCtxt()
10904 xmlRelaxNGFreeStates(NULL, ctxt->freeState); in xmlRelaxNGFreeValidCtxt()
10906 if (ctxt->freeStates != NULL) { in xmlRelaxNGFreeValidCtxt()
10907 for (k = 0; k < ctxt->freeStatesNr; k++) { in xmlRelaxNGFreeValidCtxt()
10908 xmlRelaxNGFreeStates(NULL, ctxt->freeStates[k]); in xmlRelaxNGFreeValidCtxt()
10910 xmlFree(ctxt->freeStates); in xmlRelaxNGFreeValidCtxt()
10912 if (ctxt->errTab != NULL) in xmlRelaxNGFreeValidCtxt()
10913 xmlFree(ctxt->errTab); in xmlRelaxNGFreeValidCtxt()
10914 if (ctxt->elemTab != NULL) { in xmlRelaxNGFreeValidCtxt()
10917 exec = xmlRelaxNGElemPop(ctxt); in xmlRelaxNGFreeValidCtxt()
10920 exec = xmlRelaxNGElemPop(ctxt); in xmlRelaxNGFreeValidCtxt()
10922 xmlFree(ctxt->elemTab); in xmlRelaxNGFreeValidCtxt()
10924 xmlFree(ctxt); in xmlRelaxNGFreeValidCtxt()
10937 xmlRelaxNGSetValidErrors(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGSetValidErrors() argument
10941 if (ctxt == NULL) in xmlRelaxNGSetValidErrors()
10943 ctxt->error = err; in xmlRelaxNGSetValidErrors()
10944 ctxt->warning = warn; in xmlRelaxNGSetValidErrors()
10945 ctxt->userData = ctx; in xmlRelaxNGSetValidErrors()
10946 ctxt->serror = NULL; in xmlRelaxNGSetValidErrors()
10958 xmlRelaxNGSetValidStructuredErrors(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGSetValidStructuredErrors() argument
10961 if (ctxt == NULL) in xmlRelaxNGSetValidStructuredErrors()
10963 ctxt->serror = serror; in xmlRelaxNGSetValidStructuredErrors()
10964 ctxt->error = NULL; in xmlRelaxNGSetValidStructuredErrors()
10965 ctxt->warning = NULL; in xmlRelaxNGSetValidStructuredErrors()
10966 ctxt->userData = ctx; in xmlRelaxNGSetValidStructuredErrors()
10981 xmlRelaxNGGetValidErrors(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGGetValidErrors() argument
10985 if (ctxt == NULL) in xmlRelaxNGGetValidErrors()
10988 *err = ctxt->error; in xmlRelaxNGGetValidErrors()
10990 *warn = ctxt->warning; in xmlRelaxNGGetValidErrors()
10992 *ctx = ctxt->userData; in xmlRelaxNGGetValidErrors()
11007 xmlRelaxNGValidateDoc(xmlRelaxNGValidCtxtPtr ctxt, xmlDocPtr doc) in xmlRelaxNGValidateDoc() argument
11011 if ((ctxt == NULL) || (doc == NULL)) in xmlRelaxNGValidateDoc()
11014 ctxt->doc = doc; in xmlRelaxNGValidateDoc()
11016 ret = xmlRelaxNGValidateDocument(ctxt, doc); in xmlRelaxNGValidateDoc()