• Home
  • Raw
  • Download

Lines Matching refs:ctxt

438 xmlRngPErrMemory(xmlRelaxNGParserCtxtPtr ctxt, const char *extra)  in xmlRngPErrMemory()  argument
444 if (ctxt != NULL) { in xmlRngPErrMemory()
445 if (ctxt->serror != NULL) in xmlRngPErrMemory()
446 schannel = ctxt->serror; in xmlRngPErrMemory()
448 channel = ctxt->error; in xmlRngPErrMemory()
449 data = ctxt->userData; in xmlRngPErrMemory()
450 ctxt->nbErrors++; in xmlRngPErrMemory()
473 xmlRngVErrMemory(xmlRelaxNGValidCtxtPtr ctxt, const char *extra) in xmlRngVErrMemory() argument
479 if (ctxt != NULL) { in xmlRngVErrMemory()
480 if (ctxt->serror != NULL) in xmlRngVErrMemory()
481 schannel = ctxt->serror; in xmlRngVErrMemory()
483 channel = ctxt->error; in xmlRngVErrMemory()
484 data = ctxt->userData; in xmlRngVErrMemory()
485 ctxt->nbErrors++; in xmlRngVErrMemory()
512 xmlRngPErr(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node, int error, in xmlRngPErr() argument
519 if (ctxt != NULL) { in xmlRngPErr()
520 if (ctxt->serror != NULL) in xmlRngPErr()
521 schannel = ctxt->serror; in xmlRngPErr()
523 channel = ctxt->error; in xmlRngPErr()
524 data = ctxt->userData; in xmlRngPErr()
525 ctxt->nbErrors++; in xmlRngPErr()
546 xmlRngVErr(xmlRelaxNGValidCtxtPtr ctxt, xmlNodePtr node, int error, in xmlRngVErr() argument
553 if (ctxt != NULL) { in xmlRngVErr()
554 if (ctxt->serror != NULL) in xmlRngVErr()
555 schannel = ctxt->serror; in xmlRngVErr()
557 channel = ctxt->error; in xmlRngVErr()
558 data = ctxt->userData; in xmlRngVErr()
559 ctxt->nbErrors++; in xmlRngVErr()
667 static int xmlRelaxNGEqualValidState(xmlRelaxNGValidCtxtPtr ctxt
671 static void xmlRelaxNGFreeValidState(xmlRelaxNGValidCtxtPtr ctxt,
761 xmlRelaxNGNewRelaxNG(xmlRelaxNGParserCtxtPtr ctxt) in xmlRelaxNGNewRelaxNG() argument
767 xmlRngPErrMemory(ctxt, NULL); in xmlRelaxNGNewRelaxNG()
840 xmlRelaxNGNewGrammar(xmlRelaxNGParserCtxtPtr ctxt) in xmlRelaxNGNewGrammar() argument
846 xmlRngPErrMemory(ctxt, NULL); in xmlRelaxNGNewGrammar()
892 xmlRelaxNGNewDefine(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) in xmlRelaxNGNewDefine() argument
896 if (ctxt->defMax == 0) { in xmlRelaxNGNewDefine()
897 ctxt->defMax = 16; in xmlRelaxNGNewDefine()
898 ctxt->defNr = 0; in xmlRelaxNGNewDefine()
899 ctxt->defTab = (xmlRelaxNGDefinePtr *) in xmlRelaxNGNewDefine()
900 xmlMalloc(ctxt->defMax * sizeof(xmlRelaxNGDefinePtr)); in xmlRelaxNGNewDefine()
901 if (ctxt->defTab == NULL) { in xmlRelaxNGNewDefine()
902 xmlRngPErrMemory(ctxt, "allocating define\n"); in xmlRelaxNGNewDefine()
905 } else if (ctxt->defMax <= ctxt->defNr) { in xmlRelaxNGNewDefine()
908 ctxt->defMax *= 2; in xmlRelaxNGNewDefine()
909 tmp = (xmlRelaxNGDefinePtr *) xmlRealloc(ctxt->defTab, in xmlRelaxNGNewDefine()
910 ctxt->defMax * in xmlRelaxNGNewDefine()
914 xmlRngPErrMemory(ctxt, "allocating define\n"); in xmlRelaxNGNewDefine()
917 ctxt->defTab = tmp; in xmlRelaxNGNewDefine()
921 xmlRngPErrMemory(ctxt, "allocating define\n"); in xmlRelaxNGNewDefine()
925 ctxt->defTab[ctxt->defNr++] = ret; in xmlRelaxNGNewDefine()
1008 xmlRelaxNGNewStates(xmlRelaxNGValidCtxtPtr ctxt, int size) in xmlRelaxNGNewStates() argument
1012 if ((ctxt != NULL) && in xmlRelaxNGNewStates()
1013 (ctxt->freeStates != NULL) && (ctxt->freeStatesNr > 0)) { in xmlRelaxNGNewStates()
1014 ctxt->freeStatesNr--; in xmlRelaxNGNewStates()
1015 ret = ctxt->freeStates[ctxt->freeStatesNr]; in xmlRelaxNGNewStates()
1027 xmlRngVErrMemory(ctxt, "allocating states\n"); in xmlRelaxNGNewStates()
1036 xmlRngVErrMemory(ctxt, "allocating states\n"); in xmlRelaxNGNewStates()
1055 xmlRelaxNGAddStatesUniq(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGAddStatesUniq() argument
1072 xmlRngVErrMemory(ctxt, "adding states\n"); in xmlRelaxNGAddStatesUniq()
1093 xmlRelaxNGAddStates(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGAddStates() argument
1112 xmlRngVErrMemory(ctxt, "adding states\n"); in xmlRelaxNGAddStates()
1119 if (xmlRelaxNGEqualValidState(ctxt, state, states->tabState[i])) { in xmlRelaxNGAddStates()
1120 xmlRelaxNGFreeValidState(ctxt, state); in xmlRelaxNGAddStates()
1136 xmlRelaxNGFreeStates(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGFreeStates() argument
1141 if ((ctxt != NULL) && (ctxt->freeStates == NULL)) { in xmlRelaxNGFreeStates()
1142 ctxt->freeStatesMax = 40; in xmlRelaxNGFreeStates()
1143 ctxt->freeStatesNr = 0; in xmlRelaxNGFreeStates()
1144 ctxt->freeStates = (xmlRelaxNGStatesPtr *) in xmlRelaxNGFreeStates()
1145 xmlMalloc(ctxt->freeStatesMax * sizeof(xmlRelaxNGStatesPtr)); in xmlRelaxNGFreeStates()
1146 if (ctxt->freeStates == NULL) { in xmlRelaxNGFreeStates()
1147 xmlRngVErrMemory(ctxt, "storing states\n"); in xmlRelaxNGFreeStates()
1149 } else if ((ctxt != NULL) in xmlRelaxNGFreeStates()
1150 && (ctxt->freeStatesNr >= ctxt->freeStatesMax)) { in xmlRelaxNGFreeStates()
1153 tmp = (xmlRelaxNGStatesPtr *) xmlRealloc(ctxt->freeStates, in xmlRelaxNGFreeStates()
1154 2 * ctxt->freeStatesMax * in xmlRelaxNGFreeStates()
1158 xmlRngVErrMemory(ctxt, "storing states\n"); in xmlRelaxNGFreeStates()
1163 ctxt->freeStates = tmp; in xmlRelaxNGFreeStates()
1164 ctxt->freeStatesMax *= 2; in xmlRelaxNGFreeStates()
1166 if ((ctxt == NULL) || (ctxt->freeStates == NULL)) { in xmlRelaxNGFreeStates()
1170 ctxt->freeStates[ctxt->freeStatesNr++] = states; in xmlRelaxNGFreeStates()
1184 xmlRelaxNGNewValidState(xmlRelaxNGValidCtxtPtr ctxt, xmlNodePtr node) in xmlRelaxNGNewValidState() argument
1193 root = xmlDocGetRootElement(ctxt->doc); in xmlRelaxNGNewValidState()
1206 if ((ctxt->freeState != NULL) && (ctxt->freeState->nbState > 0)) { in xmlRelaxNGNewValidState()
1207 ctxt->freeState->nbState--; in xmlRelaxNGNewValidState()
1208 ret = ctxt->freeState->tabState[ctxt->freeState->nbState]; in xmlRelaxNGNewValidState()
1214 xmlRngVErrMemory(ctxt, "allocating states\n"); in xmlRelaxNGNewValidState()
1222 ret->node = (xmlNodePtr) ctxt->doc; in xmlRelaxNGNewValidState()
1238 xmlRngVErrMemory(ctxt, "allocating states\n"); in xmlRelaxNGNewValidState()
1247 xmlRngVErrMemory(ctxt, "allocating states\n"); in xmlRelaxNGNewValidState()
1279 xmlRelaxNGCopyValidState(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGCopyValidState() argument
1288 if ((ctxt->freeState != NULL) && (ctxt->freeState->nbState > 0)) { in xmlRelaxNGCopyValidState()
1289 ctxt->freeState->nbState--; in xmlRelaxNGCopyValidState()
1290 ret = ctxt->freeState->tabState[ctxt->freeState->nbState]; in xmlRelaxNGCopyValidState()
1296 xmlRngVErrMemory(ctxt, "allocating states\n"); in xmlRelaxNGCopyValidState()
1312 xmlRngVErrMemory(ctxt, "allocating states\n"); in xmlRelaxNGCopyValidState()
1322 xmlRngVErrMemory(ctxt, "allocating states\n"); in xmlRelaxNGCopyValidState()
1346 xmlRelaxNGEqualValidState(xmlRelaxNGValidCtxtPtr ctxt ATTRIBUTE_UNUSED, in xmlRelaxNGEqualValidState()
1383 xmlRelaxNGFreeValidState(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGFreeValidState() argument
1389 if ((ctxt != NULL) && (ctxt->freeState == NULL)) { in xmlRelaxNGFreeValidState()
1390 ctxt->freeState = xmlRelaxNGNewStates(ctxt, 40); in xmlRelaxNGFreeValidState()
1392 if ((ctxt == NULL) || (ctxt->freeState == NULL)) { in xmlRelaxNGFreeValidState()
1397 xmlRelaxNGAddStatesUniq(ctxt, ctxt->freeState, state); in xmlRelaxNGFreeValidState()
1418 xmlRelaxParserSetFlag(xmlRelaxNGParserCtxtPtr ctxt, int flags) in xmlRelaxParserSetFlag() argument
1420 if (ctxt == NULL) return(-1); in xmlRelaxParserSetFlag()
1422 ctxt->crng |= XML_RELAXNGP_FREE_DOC; in xmlRelaxParserSetFlag()
1426 ctxt->crng |= XML_RELAXNGP_CRNG; in xmlRelaxParserSetFlag()
1438 static xmlDocPtr xmlRelaxNGCleanupDoc(xmlRelaxNGParserCtxtPtr ctxt,
1451 xmlRelaxNGIncludePush(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGIncludePush() argument
1454 if (ctxt->incTab == NULL) { in xmlRelaxNGIncludePush()
1455 ctxt->incMax = 4; in xmlRelaxNGIncludePush()
1456 ctxt->incNr = 0; in xmlRelaxNGIncludePush()
1457 ctxt->incTab = in xmlRelaxNGIncludePush()
1458 (xmlRelaxNGIncludePtr *) xmlMalloc(ctxt->incMax * in xmlRelaxNGIncludePush()
1459 sizeof(ctxt->incTab[0])); in xmlRelaxNGIncludePush()
1460 if (ctxt->incTab == NULL) { in xmlRelaxNGIncludePush()
1461 xmlRngPErrMemory(ctxt, "allocating include\n"); in xmlRelaxNGIncludePush()
1465 if (ctxt->incNr >= ctxt->incMax) { in xmlRelaxNGIncludePush()
1466 ctxt->incMax *= 2; in xmlRelaxNGIncludePush()
1467 ctxt->incTab = in xmlRelaxNGIncludePush()
1468 (xmlRelaxNGIncludePtr *) xmlRealloc(ctxt->incTab, in xmlRelaxNGIncludePush()
1469 ctxt->incMax * in xmlRelaxNGIncludePush()
1470 sizeof(ctxt->incTab[0])); in xmlRelaxNGIncludePush()
1471 if (ctxt->incTab == NULL) { in xmlRelaxNGIncludePush()
1472 xmlRngPErrMemory(ctxt, "allocating include\n"); in xmlRelaxNGIncludePush()
1476 ctxt->incTab[ctxt->incNr] = value; in xmlRelaxNGIncludePush()
1477 ctxt->inc = value; in xmlRelaxNGIncludePush()
1478 return (ctxt->incNr++); in xmlRelaxNGIncludePush()
1490 xmlRelaxNGIncludePop(xmlRelaxNGParserCtxtPtr ctxt) in xmlRelaxNGIncludePop() argument
1494 if (ctxt->incNr <= 0) in xmlRelaxNGIncludePop()
1496 ctxt->incNr--; in xmlRelaxNGIncludePop()
1497 if (ctxt->incNr > 0) in xmlRelaxNGIncludePop()
1498 ctxt->inc = ctxt->incTab[ctxt->incNr - 1]; in xmlRelaxNGIncludePop()
1500 ctxt->inc = NULL; in xmlRelaxNGIncludePop()
1501 ret = ctxt->incTab[ctxt->incNr]; in xmlRelaxNGIncludePop()
1502 ctxt->incTab[ctxt->incNr] = NULL; in xmlRelaxNGIncludePop()
1518 xmlRelaxNGRemoveRedefine(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGRemoveRedefine() argument
1565 if (xmlRelaxNGRemoveRedefine(ctxt, href, in xmlRelaxNGRemoveRedefine()
1576 if (xmlRelaxNGRemoveRedefine(ctxt, URL, tmp->children, name) == 1) { in xmlRelaxNGRemoveRedefine()
1599 xmlRelaxNGLoadInclude(xmlRelaxNGParserCtxtPtr ctxt, const xmlChar * URL, in xmlRelaxNGLoadInclude() argument
1615 for (i = 0; i < ctxt->incNr; i++) { in xmlRelaxNGLoadInclude()
1616 if (xmlStrEqual(ctxt->incTab[i]->href, URL)) { in xmlRelaxNGLoadInclude()
1617 xmlRngPErr(ctxt, NULL, XML_RNGP_INCLUDE_RECURSE, in xmlRelaxNGLoadInclude()
1629 xmlRngPErr(ctxt, node, XML_RNGP_PARSE_ERROR, in xmlRelaxNGLoadInclude()
1642 xmlRngPErrMemory(ctxt, "allocating include\n"); in xmlRelaxNGLoadInclude()
1649 ret->next = ctxt->includes; in xmlRelaxNGLoadInclude()
1650 ctxt->includes = ret; in xmlRelaxNGLoadInclude()
1667 xmlRelaxNGIncludePush(ctxt, ret); in xmlRelaxNGLoadInclude()
1677 doc = xmlRelaxNGCleanupDoc(ctxt, doc); in xmlRelaxNGLoadInclude()
1679 ctxt->inc = NULL; in xmlRelaxNGLoadInclude()
1686 xmlRelaxNGIncludePop(ctxt); in xmlRelaxNGLoadInclude()
1696 xmlRngPErr(ctxt, node, XML_RNGP_EMPTY, in xmlRelaxNGLoadInclude()
1702 xmlRngPErr(ctxt, node, XML_RNGP_GRAMMAR_MISSING, in xmlRelaxNGLoadInclude()
1717 xmlRelaxNGRemoveRedefine(ctxt, URL, root->children, NULL); in xmlRelaxNGLoadInclude()
1719 xmlRngPErr(ctxt, node, XML_RNGP_START_MISSING, in xmlRelaxNGLoadInclude()
1728 xmlRngPErr(ctxt, node, XML_RNGP_NAME_MISSING, in xmlRelaxNGLoadInclude()
1735 found = xmlRelaxNGRemoveRedefine(ctxt, URL, in xmlRelaxNGLoadInclude()
1738 xmlRngPErr(ctxt, node, XML_RNGP_DEFINE_MISSING, in xmlRelaxNGLoadInclude()
1776 xmlRelaxNGValidErrorPush(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidErrorPush() argument
1784 "Pushing error %d at %d on stack\n", err, ctxt->errNr); in xmlRelaxNGValidErrorPush()
1786 if (ctxt->errTab == NULL) { in xmlRelaxNGValidErrorPush()
1787 ctxt->errMax = 8; in xmlRelaxNGValidErrorPush()
1788 ctxt->errNr = 0; in xmlRelaxNGValidErrorPush()
1789 ctxt->errTab = in xmlRelaxNGValidErrorPush()
1790 (xmlRelaxNGValidErrorPtr) xmlMalloc(ctxt->errMax * in xmlRelaxNGValidErrorPush()
1793 if (ctxt->errTab == NULL) { in xmlRelaxNGValidErrorPush()
1794 xmlRngVErrMemory(ctxt, "pushing error\n"); in xmlRelaxNGValidErrorPush()
1797 ctxt->err = NULL; in xmlRelaxNGValidErrorPush()
1799 if (ctxt->errNr >= ctxt->errMax) { in xmlRelaxNGValidErrorPush()
1800 ctxt->errMax *= 2; in xmlRelaxNGValidErrorPush()
1801 ctxt->errTab = in xmlRelaxNGValidErrorPush()
1802 (xmlRelaxNGValidErrorPtr) xmlRealloc(ctxt->errTab, in xmlRelaxNGValidErrorPush()
1803 ctxt->errMax * in xmlRelaxNGValidErrorPush()
1806 if (ctxt->errTab == NULL) { in xmlRelaxNGValidErrorPush()
1807 xmlRngVErrMemory(ctxt, "pushing error\n"); in xmlRelaxNGValidErrorPush()
1810 ctxt->err = &ctxt->errTab[ctxt->errNr - 1]; in xmlRelaxNGValidErrorPush()
1812 if ((ctxt->err != NULL) && (ctxt->state != NULL) && in xmlRelaxNGValidErrorPush()
1813 (ctxt->err->node == ctxt->state->node) && (ctxt->err->err == err)) in xmlRelaxNGValidErrorPush()
1814 return (ctxt->errNr); in xmlRelaxNGValidErrorPush()
1815 cur = &ctxt->errTab[ctxt->errNr]; in xmlRelaxNGValidErrorPush()
1826 if (ctxt->state != NULL) { in xmlRelaxNGValidErrorPush()
1827 cur->node = ctxt->state->node; in xmlRelaxNGValidErrorPush()
1828 cur->seq = ctxt->state->seq; in xmlRelaxNGValidErrorPush()
1833 ctxt->err = cur; in xmlRelaxNGValidErrorPush()
1834 return (ctxt->errNr++); in xmlRelaxNGValidErrorPush()
1844 xmlRelaxNGValidErrorPop(xmlRelaxNGValidCtxtPtr ctxt) in xmlRelaxNGValidErrorPop() argument
1848 if (ctxt->errNr <= 0) { in xmlRelaxNGValidErrorPop()
1849 ctxt->err = NULL; in xmlRelaxNGValidErrorPop()
1852 ctxt->errNr--; in xmlRelaxNGValidErrorPop()
1853 if (ctxt->errNr > 0) in xmlRelaxNGValidErrorPop()
1854 ctxt->err = &ctxt->errTab[ctxt->errNr - 1]; in xmlRelaxNGValidErrorPop()
1856 ctxt->err = NULL; in xmlRelaxNGValidErrorPop()
1857 cur = &ctxt->errTab[ctxt->errNr]; in xmlRelaxNGValidErrorPop()
1879 xmlRelaxNGDocumentPush(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGDocumentPush() argument
1882 if (ctxt->docTab == NULL) { in xmlRelaxNGDocumentPush()
1883 ctxt->docMax = 4; in xmlRelaxNGDocumentPush()
1884 ctxt->docNr = 0; in xmlRelaxNGDocumentPush()
1885 ctxt->docTab = in xmlRelaxNGDocumentPush()
1886 (xmlRelaxNGDocumentPtr *) xmlMalloc(ctxt->docMax * in xmlRelaxNGDocumentPush()
1887 sizeof(ctxt->docTab[0])); in xmlRelaxNGDocumentPush()
1888 if (ctxt->docTab == NULL) { in xmlRelaxNGDocumentPush()
1889 xmlRngPErrMemory(ctxt, "adding document\n"); in xmlRelaxNGDocumentPush()
1893 if (ctxt->docNr >= ctxt->docMax) { in xmlRelaxNGDocumentPush()
1894 ctxt->docMax *= 2; in xmlRelaxNGDocumentPush()
1895 ctxt->docTab = in xmlRelaxNGDocumentPush()
1896 (xmlRelaxNGDocumentPtr *) xmlRealloc(ctxt->docTab, in xmlRelaxNGDocumentPush()
1897 ctxt->docMax * in xmlRelaxNGDocumentPush()
1898 sizeof(ctxt->docTab[0])); in xmlRelaxNGDocumentPush()
1899 if (ctxt->docTab == NULL) { in xmlRelaxNGDocumentPush()
1900 xmlRngPErrMemory(ctxt, "adding document\n"); in xmlRelaxNGDocumentPush()
1904 ctxt->docTab[ctxt->docNr] = value; in xmlRelaxNGDocumentPush()
1905 ctxt->doc = value; in xmlRelaxNGDocumentPush()
1906 return (ctxt->docNr++); in xmlRelaxNGDocumentPush()
1918 xmlRelaxNGDocumentPop(xmlRelaxNGParserCtxtPtr ctxt) in xmlRelaxNGDocumentPop() argument
1922 if (ctxt->docNr <= 0) in xmlRelaxNGDocumentPop()
1924 ctxt->docNr--; in xmlRelaxNGDocumentPop()
1925 if (ctxt->docNr > 0) in xmlRelaxNGDocumentPop()
1926 ctxt->doc = ctxt->docTab[ctxt->docNr - 1]; in xmlRelaxNGDocumentPop()
1928 ctxt->doc = NULL; in xmlRelaxNGDocumentPop()
1929 ret = ctxt->docTab[ctxt->docNr]; in xmlRelaxNGDocumentPop()
1930 ctxt->docTab[ctxt->docNr] = NULL; in xmlRelaxNGDocumentPop()
1947 xmlRelaxNGLoadExternalRef(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGLoadExternalRef() argument
1958 for (i = 0; i < ctxt->docNr; i++) { in xmlRelaxNGLoadExternalRef()
1959 if (xmlStrEqual(ctxt->docTab[i]->href, URL)) { in xmlRelaxNGLoadExternalRef()
1960 xmlRngPErr(ctxt, NULL, XML_RNGP_EXTERNALREF_RECURSE, in xmlRelaxNGLoadExternalRef()
1972 xmlRngPErr(ctxt, NULL, XML_RNGP_PARSE_ERROR, in xmlRelaxNGLoadExternalRef()
1982 xmlRngPErr(ctxt, (xmlNodePtr) doc, XML_ERR_NO_MEMORY, in xmlRelaxNGLoadExternalRef()
1990 ret->next = ctxt->documents; in xmlRelaxNGLoadExternalRef()
1992 ctxt->documents = ret; in xmlRelaxNGLoadExternalRef()
2009 xmlRelaxNGDocumentPush(ctxt, ret); in xmlRelaxNGLoadExternalRef()
2014 doc = xmlRelaxNGCleanupDoc(ctxt, doc); in xmlRelaxNGLoadExternalRef()
2016 ctxt->doc = NULL; in xmlRelaxNGLoadExternalRef()
2020 xmlRelaxNGDocumentPop(ctxt); in xmlRelaxNGLoadExternalRef()
2031 #define VALID_ERR(a) xmlRelaxNGAddValidError(ctxt, a, NULL, NULL, 0);
2032 #define VALID_ERR2(a, b) xmlRelaxNGAddValidError(ctxt, a, b, NULL, 0);
2033 #define VALID_ERR3(a, b, c) xmlRelaxNGAddValidError(ctxt, a, b, c, 0);
2034 #define VALID_ERR2P(a, b) xmlRelaxNGAddValidError(ctxt, a, b, NULL, 1);
2035 #define VALID_ERR3P(a, b, c) xmlRelaxNGAddValidError(ctxt, a, b, c, 1);
2250 xmlRelaxNGShowValidError(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGShowValidError() argument
2257 if (ctxt->flags & FLAGS_NOERROR) in xmlRelaxNGShowValidError()
2267 if (ctxt->errNo == XML_RELAXNG_OK) in xmlRelaxNGShowValidError()
2268 ctxt->errNo = err; in xmlRelaxNGShowValidError()
2269 xmlRngVErr(ctxt, (child == NULL ? node : child), err, in xmlRelaxNGShowValidError()
2282 xmlRelaxNGPopErrors(xmlRelaxNGValidCtxtPtr ctxt, int level) in xmlRelaxNGPopErrors() argument
2291 for (i = level; i < ctxt->errNr; i++) { in xmlRelaxNGPopErrors()
2292 err = &ctxt->errTab[i]; in xmlRelaxNGPopErrors()
2303 ctxt->errNr = level; in xmlRelaxNGPopErrors()
2304 if (ctxt->errNr <= 0) in xmlRelaxNGPopErrors()
2305 ctxt->err = NULL; in xmlRelaxNGPopErrors()
2315 xmlRelaxNGDumpValidError(xmlRelaxNGValidCtxtPtr ctxt) in xmlRelaxNGDumpValidError() argument
2322 "Dumping error stack %d errors\n", ctxt->errNr); in xmlRelaxNGDumpValidError()
2324 for (i = 0, k = 0; i < ctxt->errNr; i++) { in xmlRelaxNGDumpValidError()
2325 err = &ctxt->errTab[i]; in xmlRelaxNGDumpValidError()
2328 dup = &ctxt->errTab[j]; in xmlRelaxNGDumpValidError()
2335 xmlRelaxNGShowValidError(ctxt, err->err, err->node, err->seq, in xmlRelaxNGDumpValidError()
2350 ctxt->errNr = 0; in xmlRelaxNGDumpValidError()
2365 xmlRelaxNGAddValidError(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGAddValidError() argument
2369 if (ctxt == NULL) in xmlRelaxNGAddValidError()
2371 if (ctxt->flags & FLAGS_NOERROR) in xmlRelaxNGAddValidError()
2380 if (((ctxt->flags & FLAGS_IGNORABLE) == 0) || in xmlRelaxNGAddValidError()
2381 (ctxt->flags & FLAGS_NEGATIVE)) { in xmlRelaxNGAddValidError()
2388 if (ctxt->errNr != 0) in xmlRelaxNGAddValidError()
2389 xmlRelaxNGDumpValidError(ctxt); in xmlRelaxNGAddValidError()
2390 if (ctxt->state != NULL) { in xmlRelaxNGAddValidError()
2391 node = ctxt->state->node; in xmlRelaxNGAddValidError()
2392 seq = ctxt->state->seq; in xmlRelaxNGAddValidError()
2397 node = ctxt->pnode; in xmlRelaxNGAddValidError()
2399 xmlRelaxNGShowValidError(ctxt, err, node, seq, arg1, arg2); in xmlRelaxNGAddValidError()
2405 xmlRelaxNGValidErrorPush(ctxt, err, arg1, arg2, dup); in xmlRelaxNGAddValidError()
2415 static xmlChar *xmlRelaxNGNormalize(xmlRelaxNGValidCtxtPtr ctxt,
2877 static int xmlRelaxNGTryCompile(xmlRelaxNGParserCtxtPtr ctxt,
3040 xmlRelaxNGCompile(xmlRelaxNGParserCtxtPtr ctxt, xmlRelaxNGDefinePtr def) in xmlRelaxNGCompile() argument
3045 if ((ctxt == NULL) || (def == NULL)) in xmlRelaxNGCompile()
3051 xmlAutomataPtr oldam = ctxt->am; in xmlRelaxNGCompile()
3052 xmlAutomataStatePtr oldstate = ctxt->state; in xmlRelaxNGCompile()
3057 ctxt->am = xmlNewAutomata(); in xmlRelaxNGCompile()
3058 if (ctxt->am == NULL) in xmlRelaxNGCompile()
3069 xmlAutomataSetFlags(ctxt->am, 1); in xmlRelaxNGCompile()
3071 ctxt->state = xmlAutomataGetInitState(ctxt->am); in xmlRelaxNGCompile()
3073 xmlRelaxNGCompile(ctxt, list); in xmlRelaxNGCompile()
3076 xmlAutomataSetFinalState(ctxt->am, ctxt->state); in xmlRelaxNGCompile()
3077 if (xmlAutomataIsDeterminist(ctxt->am)) in xmlRelaxNGCompile()
3078 def->contModel = xmlAutomataCompile(ctxt->am); in xmlRelaxNGCompile()
3080 xmlFreeAutomata(ctxt->am); in xmlRelaxNGCompile()
3081 ctxt->state = oldstate; in xmlRelaxNGCompile()
3082 ctxt->am = oldam; in xmlRelaxNGCompile()
3086 if ((ctxt->am != NULL) && (def->name != NULL)) { in xmlRelaxNGCompile()
3087 ctxt->state = xmlAutomataNewTransition2(ctxt->am, in xmlRelaxNGCompile()
3088 ctxt->state, NULL, in xmlRelaxNGCompile()
3093 xmlAutomataPtr oldam = ctxt->am; in xmlRelaxNGCompile()
3094 xmlAutomataStatePtr oldstate = ctxt->state; in xmlRelaxNGCompile()
3099 ctxt->am = xmlNewAutomata(); in xmlRelaxNGCompile()
3100 if (ctxt->am == NULL) in xmlRelaxNGCompile()
3102 xmlAutomataSetFlags(ctxt->am, 1); in xmlRelaxNGCompile()
3103 ctxt->state = xmlAutomataGetInitState(ctxt->am); in xmlRelaxNGCompile()
3105 xmlRelaxNGCompile(ctxt, list); in xmlRelaxNGCompile()
3108 xmlAutomataSetFinalState(ctxt->am, ctxt->state); in xmlRelaxNGCompile()
3109 def->contModel = xmlAutomataCompile(ctxt->am); in xmlRelaxNGCompile()
3122 xmlFreeAutomata(ctxt->am); in xmlRelaxNGCompile()
3123 ctxt->state = oldstate; in xmlRelaxNGCompile()
3124 ctxt->am = oldam; in xmlRelaxNGCompile()
3126 xmlAutomataPtr oldam = ctxt->am; in xmlRelaxNGCompile()
3133 ret = xmlRelaxNGTryCompile(ctxt, def); in xmlRelaxNGCompile()
3134 ctxt->am = oldam; in xmlRelaxNGCompile()
3138 ret = xmlRelaxNGCompile(ctxt, def->content); in xmlRelaxNGCompile()
3141 xmlAutomataStatePtr oldstate = ctxt->state; in xmlRelaxNGCompile()
3145 xmlRelaxNGCompile(ctxt, list); in xmlRelaxNGCompile()
3148 xmlAutomataNewEpsilon(ctxt->am, oldstate, ctxt->state); in xmlRelaxNGCompile()
3154 ctxt->state = in xmlRelaxNGCompile()
3155 xmlAutomataNewEpsilon(ctxt->am, ctxt->state, NULL); in xmlRelaxNGCompile()
3156 oldstate = ctxt->state; in xmlRelaxNGCompile()
3159 xmlRelaxNGCompile(ctxt, list); in xmlRelaxNGCompile()
3162 xmlAutomataNewEpsilon(ctxt->am, ctxt->state, oldstate); in xmlRelaxNGCompile()
3163 ctxt->state = in xmlRelaxNGCompile()
3164 xmlAutomataNewEpsilon(ctxt->am, oldstate, NULL); in xmlRelaxNGCompile()
3172 xmlRelaxNGCompile(ctxt, list); in xmlRelaxNGCompile()
3175 oldstate = ctxt->state; in xmlRelaxNGCompile()
3178 xmlRelaxNGCompile(ctxt, list); in xmlRelaxNGCompile()
3181 xmlAutomataNewEpsilon(ctxt->am, ctxt->state, oldstate); in xmlRelaxNGCompile()
3182 ctxt->state = in xmlRelaxNGCompile()
3183 xmlAutomataNewEpsilon(ctxt->am, oldstate, NULL); in xmlRelaxNGCompile()
3188 xmlAutomataStatePtr oldstate = ctxt->state; in xmlRelaxNGCompile()
3192 ctxt->state = oldstate; in xmlRelaxNGCompile()
3193 ret = xmlRelaxNGCompile(ctxt, list); in xmlRelaxNGCompile()
3197 target = ctxt->state; in xmlRelaxNGCompile()
3199 xmlAutomataNewEpsilon(ctxt->am, ctxt->state, in xmlRelaxNGCompile()
3204 ctxt->state = target; in xmlRelaxNGCompile()
3215 ret = xmlRelaxNGCompile(ctxt, list); in xmlRelaxNGCompile()
3224 ctxt->state = in xmlRelaxNGCompile()
3225 xmlAutomataNewEpsilon(ctxt->am, ctxt->state, NULL); in xmlRelaxNGCompile()
3226 oldstate = ctxt->state; in xmlRelaxNGCompile()
3227 xmlRelaxNGCompile(ctxt, def->content); in xmlRelaxNGCompile()
3228 xmlAutomataNewTransition(ctxt->am, ctxt->state, in xmlRelaxNGCompile()
3229 ctxt->state, BAD_CAST "#text", in xmlRelaxNGCompile()
3231 ctxt->state = in xmlRelaxNGCompile()
3232 xmlAutomataNewEpsilon(ctxt->am, oldstate, NULL); in xmlRelaxNGCompile()
3236 ctxt->state = in xmlRelaxNGCompile()
3237 xmlAutomataNewEpsilon(ctxt->am, ctxt->state, NULL); in xmlRelaxNGCompile()
3266 xmlRelaxNGTryCompile(xmlRelaxNGParserCtxtPtr ctxt, xmlRelaxNGDefinePtr def) in xmlRelaxNGTryCompile() argument
3271 if ((ctxt == NULL) || (def == NULL)) in xmlRelaxNGTryCompile()
3278 ctxt->am = NULL; in xmlRelaxNGTryCompile()
3279 ret = xmlRelaxNGCompile(ctxt, def); in xmlRelaxNGTryCompile()
3303 ret = xmlRelaxNGTryCompile(ctxt, def->content); in xmlRelaxNGTryCompile()
3326 ret = xmlRelaxNGTryCompile(ctxt, list); in xmlRelaxNGTryCompile()
3349 ctxt, xmlNodePtr node);
3351 ctxt, xmlNodePtr node);
3353 ctxt, xmlNodePtr nodes,
3356 ctxt, xmlNodePtr node);
3357 static xmlRelaxNGPtr xmlRelaxNGParseDocument(xmlRelaxNGParserCtxtPtr ctxt,
3359 static int xmlRelaxNGParseGrammarContent(xmlRelaxNGParserCtxtPtr ctxt,
3362 ctxt, xmlNodePtr node,
3366 ctxt, xmlNodePtr nodes);
3367 static int xmlRelaxNGElementMatch(xmlRelaxNGValidCtxtPtr ctxt,
3484 xmlRelaxNGGetDataTypeLibrary(xmlRelaxNGParserCtxtPtr ctxt ATTRIBUTE_UNUSED, in xmlRelaxNGGetDataTypeLibrary()
3537 xmlRelaxNGParseValue(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) in xmlRelaxNGParseValue() argument
3545 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParseValue()
3554 xmlRngPErr(ctxt, node, XML_RNGP_TYPE_VALUE, in xmlRelaxNGParseValue()
3557 library = xmlRelaxNGGetDataTypeLibrary(ctxt, node); in xmlRelaxNGParseValue()
3568 xmlRngPErr(ctxt, node, XML_RNGP_UNKNOWN_TYPE_LIB, in xmlRelaxNGParseValue()
3575 xmlRngPErr(ctxt, node, XML_RNGP_ERROR_TYPE_LIB, in xmlRelaxNGParseValue()
3581 xmlRngPErr(ctxt, node, XML_RNGP_TYPE_NOT_FOUND, in xmlRelaxNGParseValue()
3593 xmlRngPErr(ctxt, node, XML_RNGP_TEXT_EXPECTED, in xmlRelaxNGParseValue()
3599 xmlRngPErr(ctxt, node, XML_RNGP_VALUE_NO_CONTENT, in xmlRelaxNGParseValue()
3607 xmlRngPErr(ctxt, node, XML_RNGP_INVALID_VALUE, in xmlRelaxNGParseValue()
3629 xmlRelaxNGParseData(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) in xmlRelaxNGParseData() argument
3641 xmlRngPErr(ctxt, node, XML_RNGP_TYPE_MISSING, "data has no type\n", NULL, in xmlRelaxNGParseData()
3647 xmlRngPErr(ctxt, node, XML_RNGP_TYPE_VALUE, in xmlRelaxNGParseData()
3650 library = xmlRelaxNGGetDataTypeLibrary(ctxt, node); in xmlRelaxNGParseData()
3655 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParseData()
3668 xmlRngPErr(ctxt, node, XML_RNGP_UNKNOWN_TYPE_LIB, in xmlRelaxNGParseData()
3675 xmlRngPErr(ctxt, node, XML_RNGP_ERROR_TYPE_LIB, in xmlRelaxNGParseData()
3681 xmlRngPErr(ctxt, node, XML_RNGP_TYPE_NOT_FOUND, in xmlRelaxNGParseData()
3691 ctxt->idref = 1; in xmlRelaxNGParseData()
3705 xmlRngPErr(ctxt, node, XML_RNGP_PARAM_FORBIDDEN, in xmlRelaxNGParseData()
3713 param = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParseData()
3718 xmlRngPErr(ctxt, node, XML_RNGP_PARAM_NAME_MISSING, in xmlRelaxNGParseData()
3742 except = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParseData()
3750 xmlRngPErr(ctxt, content, XML_RNGP_EXCEPT_NO_CONTENT, in xmlRelaxNGParseData()
3754 tmp2 = xmlRelaxNGParsePattern(ctxt, child); in xmlRelaxNGParseData()
3771 xmlRngPErr(ctxt, content, XML_RNGP_DATA_CONTENT, in xmlRelaxNGParseData()
3801 xmlRelaxNGValidCtxt ctxt; in xmlRelaxNGCompareNameClasses() local
3803 memset(&ctxt, 0, sizeof(xmlRelaxNGValidCtxt)); in xmlRelaxNGCompareNameClasses()
3805 ctxt.flags = FLAGS_IGNORABLE | FLAGS_NOERROR; in xmlRelaxNGCompareNameClasses()
3826 if (xmlRelaxNGElementMatch(&ctxt, def2, &node)) { in xmlRelaxNGCompareNameClasses()
3867 if (xmlRelaxNGElementMatch(&ctxt, def1, &node)) { in xmlRelaxNGCompareNameClasses()
3896 xmlRelaxNGCompareElemDefLists(xmlRelaxNGParserCtxtPtr ctxt in xmlRelaxNGCompareElemDefLists()
3928 xmlRelaxNGGenerateAttributes(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGGenerateAttributes() argument
3937 if (ctxt->nbErrors != 0) in xmlRelaxNGGenerateAttributes()
4004 xmlRelaxNGGetElements(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGGetElements() argument
4015 if (ctxt->nbErrors != 0) in xmlRelaxNGGetElements()
4034 xmlRngPErrMemory(ctxt, "getting element list\n"); in xmlRelaxNGGetElements()
4044 xmlRngPErrMemory(ctxt, "getting element list\n"); in xmlRelaxNGGetElements()
4106 xmlRelaxNGCheckChoiceDeterminism(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGCheckChoiceDeterminism() argument
4127 if (ctxt->nbErrors != 0) in xmlRelaxNGCheckChoiceDeterminism()
4142 xmlRngPErrMemory(ctxt, "building choice\n"); in xmlRelaxNGCheckChoiceDeterminism()
4156 list[i] = xmlRelaxNGGetElements(ctxt, cur, 0); in xmlRelaxNGCheckChoiceDeterminism()
4210 ret = xmlRelaxNGCompareElemDefLists(ctxt, list[i], list[j]); in xmlRelaxNGCheckChoiceDeterminism()
4242 xmlRelaxNGCheckGroupAttrs(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGCheckGroupAttrs() argument
4261 if (ctxt->nbErrors != 0) in xmlRelaxNGCheckGroupAttrs()
4279 xmlRngPErrMemory(ctxt, "building group\n"); in xmlRelaxNGCheckGroupAttrs()
4285 list[i] = xmlRelaxNGGetElements(ctxt, cur, 1); in xmlRelaxNGCheckGroupAttrs()
4291 list[i] = xmlRelaxNGGetElements(ctxt, cur, 1); in xmlRelaxNGCheckGroupAttrs()
4302 ret = xmlRelaxNGCompareElemDefLists(ctxt, list[i], list[j]); in xmlRelaxNGCheckGroupAttrs()
4304 xmlRngPErr(ctxt, def->node, XML_RNGP_GROUP_ATTR_CONFLICT, in xmlRelaxNGCheckGroupAttrs()
4338 xmlRelaxNGParserCtxtPtr ctxt = (xmlRelaxNGParserCtxtPtr) data; in xmlRelaxNGComputeInterleaves() local
4354 if (ctxt->nbErrors != 0) in xmlRelaxNGComputeInterleaves()
4383 groups[nbgroups]->defs = xmlRelaxNGGetElements(ctxt, cur, 2); in xmlRelaxNGComputeInterleaves()
4384 groups[nbgroups]->attrs = xmlRelaxNGGetElements(ctxt, cur, 1); in xmlRelaxNGComputeInterleaves()
4408 ret = xmlRelaxNGCompareElemDefLists(ctxt, group->defs, in xmlRelaxNGComputeInterleaves()
4411 xmlRngPErr(ctxt, def->node, XML_RNGP_ELEM_TEXT_CONFLICT, in xmlRelaxNGComputeInterleaves()
4415 ret = xmlRelaxNGCompareElemDefLists(ctxt, group->attrs, in xmlRelaxNGComputeInterleaves()
4418 xmlRngPErr(ctxt, def->node, XML_RNGP_ATTR_CONFLICT, in xmlRelaxNGComputeInterleaves()
4481 xmlRngPErrMemory(ctxt, "in interleave computation\n"); in xmlRelaxNGComputeInterleaves()
4504 xmlRelaxNGParseInterleave(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) in xmlRelaxNGParseInterleave() argument
4510 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParseInterleave()
4516 if (ctxt->interleaves == NULL) in xmlRelaxNGParseInterleave()
4517 ctxt->interleaves = xmlHashCreate(10); in xmlRelaxNGParseInterleave()
4518 if (ctxt->interleaves == NULL) { in xmlRelaxNGParseInterleave()
4519 xmlRngPErrMemory(ctxt, "create interleaves\n"); in xmlRelaxNGParseInterleave()
4523 snprintf(name, 32, "interleave%d", ctxt->nbInterleaves++); in xmlRelaxNGParseInterleave()
4524 if (xmlHashAddEntry(ctxt->interleaves, BAD_CAST name, def) < 0) { in xmlRelaxNGParseInterleave()
4525 xmlRngPErr(ctxt, node, XML_RNGP_INTERLEAVE_ADD, in xmlRelaxNGParseInterleave()
4532 xmlRngPErr(ctxt, node, XML_RNGP_INTERLEAVE_NO_CONTENT, in xmlRelaxNGParseInterleave()
4537 cur = xmlRelaxNGParseElement(ctxt, child); in xmlRelaxNGParseInterleave()
4539 cur = xmlRelaxNGParsePattern(ctxt, child); in xmlRelaxNGParseInterleave()
4566 xmlRelaxNGParseInclude(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) in xmlRelaxNGParseInclude() argument
4574 xmlRngPErr(ctxt, node, XML_RNGP_INCLUDE_EMPTY, in xmlRelaxNGParseInclude()
4580 xmlRngPErr(ctxt, node, XML_RNGP_EMPTY, "Include document is empty\n", in xmlRelaxNGParseInclude()
4585 xmlRngPErr(ctxt, node, XML_RNGP_GRAMMAR_MISSING, in xmlRelaxNGParseInclude()
4594 tmp = xmlRelaxNGParseGrammarContent(ctxt, root->children); in xmlRelaxNGParseInclude()
4599 tmp = xmlRelaxNGParseGrammarContent(ctxt, node->children); in xmlRelaxNGParseInclude()
4616 xmlRelaxNGParseDefine(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) in xmlRelaxNGParseDefine() argument
4625 xmlRngPErr(ctxt, node, XML_RNGP_DEFINE_NAME_MISSING, in xmlRelaxNGParseDefine()
4630 xmlRngPErr(ctxt, node, XML_RNGP_INVALID_DEFINE_NAME, in xmlRelaxNGParseDefine()
4633 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParseDefine()
4641 xmlRngPErr(ctxt, node, XML_RNGP_DEFINE_EMPTY, in xmlRelaxNGParseDefine()
4644 olddefine = ctxt->define; in xmlRelaxNGParseDefine()
4645 ctxt->define = name; in xmlRelaxNGParseDefine()
4647 xmlRelaxNGParsePatterns(ctxt, node->children, 0); in xmlRelaxNGParseDefine()
4648 ctxt->define = olddefine; in xmlRelaxNGParseDefine()
4650 if (ctxt->grammar->defs == NULL) in xmlRelaxNGParseDefine()
4651 ctxt->grammar->defs = xmlHashCreate(10); in xmlRelaxNGParseDefine()
4652 if (ctxt->grammar->defs == NULL) { in xmlRelaxNGParseDefine()
4653 xmlRngPErr(ctxt, node, XML_RNGP_DEFINE_CREATE_FAILED, in xmlRelaxNGParseDefine()
4657 tmp = xmlHashAddEntry(ctxt->grammar->defs, name, def); in xmlRelaxNGParseDefine()
4661 prev = xmlHashLookup(ctxt->grammar->defs, name); in xmlRelaxNGParseDefine()
4663 xmlRngPErr(ctxt, node, XML_RNGP_DEFINE_CREATE_FAILED, in xmlRelaxNGParseDefine()
4688 xmlRelaxNGParserCtxtPtr ctxt = (xmlRelaxNGParserCtxtPtr) data; in xmlRelaxNGParseImportRef() local
4694 tmp = xmlHashAddEntry(ctxt->grammar->refs, name, def); in xmlRelaxNGParseImportRef()
4699 xmlHashLookup(ctxt->grammar->refs, def->name); in xmlRelaxNGParseImportRef()
4702 xmlRngPErr(ctxt, NULL, XML_RNGP_REF_CREATE_FAILED, in xmlRelaxNGParseImportRef()
4706 xmlRngPErr(ctxt, NULL, XML_RNGP_REF_CREATE_FAILED, in xmlRelaxNGParseImportRef()
4727 xmlRelaxNGParseImportRefs(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGParseImportRefs() argument
4729 if ((ctxt == NULL) || (grammar == NULL) || (ctxt->grammar == NULL)) in xmlRelaxNGParseImportRefs()
4733 if (ctxt->grammar->refs == NULL) in xmlRelaxNGParseImportRefs()
4734 ctxt->grammar->refs = xmlHashCreate(10); in xmlRelaxNGParseImportRefs()
4735 if (ctxt->grammar->refs == NULL) { in xmlRelaxNGParseImportRefs()
4736 xmlRngPErr(ctxt, NULL, XML_RNGP_REF_CREATE_FAILED, in xmlRelaxNGParseImportRefs()
4740 xmlHashScan(grammar->refs, xmlRelaxNGParseImportRef, ctxt); in xmlRelaxNGParseImportRefs()
4754 xmlRelaxNGProcessExternalRef(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) in xmlRelaxNGProcessExternalRef() argument
4764 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGProcessExternalRef()
4775 xmlRngPErr(ctxt, node, XML_RNGP_EXTERNALREF_EMTPY, in xmlRelaxNGProcessExternalRef()
4776 "xmlRelaxNGParse: %s is empty\n", ctxt->URL, in xmlRelaxNGProcessExternalRef()
4805 oldflags = ctxt->flags; in xmlRelaxNGProcessExternalRef()
4806 ctxt->flags |= XML_RELAXNG_IN_EXTERNALREF; in xmlRelaxNGProcessExternalRef()
4807 docu->schema = xmlRelaxNGParseDocument(ctxt, root); in xmlRelaxNGProcessExternalRef()
4808 ctxt->flags = oldflags; in xmlRelaxNGProcessExternalRef()
4813 xmlRelaxNGParseImportRefs(ctxt, docu->schema->topgrammar); in xmlRelaxNGProcessExternalRef()
4841 xmlRelaxNGParsePattern(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) in xmlRelaxNGParsePattern() argument
4849 def = xmlRelaxNGParseElement(ctxt, node); in xmlRelaxNGParsePattern()
4851 def = xmlRelaxNGParseAttribute(ctxt, node); in xmlRelaxNGParsePattern()
4853 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParsePattern()
4858 xmlRngPErr(ctxt, node, XML_RNGP_EMPTY_NOT_EMPTY, in xmlRelaxNGParsePattern()
4862 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParsePattern()
4867 xmlRngPErr(ctxt, node, XML_RNGP_TEXT_HAS_CHILD, in xmlRelaxNGParsePattern()
4871 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParsePattern()
4876 xmlRngPErr(ctxt, node, XML_RNGP_EMPTY_CONSTRUCT, in xmlRelaxNGParsePattern()
4880 xmlRelaxNGParsePatterns(ctxt, node->children, 1); in xmlRelaxNGParsePattern()
4883 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParsePattern()
4888 xmlRngPErr(ctxt, node, XML_RNGP_EMPTY_CONSTRUCT, in xmlRelaxNGParsePattern()
4892 xmlRelaxNGParsePatterns(ctxt, node->children, 1); in xmlRelaxNGParsePattern()
4895 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParsePattern()
4900 xmlRngPErr(ctxt, node, XML_RNGP_EMPTY_CONSTRUCT, in xmlRelaxNGParsePattern()
4904 xmlRelaxNGParsePatterns(ctxt, node->children, 1); in xmlRelaxNGParsePattern()
4907 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParsePattern()
4912 xmlRngPErr(ctxt, node, XML_RNGP_EMPTY_CONSTRUCT, in xmlRelaxNGParsePattern()
4916 xmlRelaxNGParsePatterns(ctxt, node->children, 0); in xmlRelaxNGParsePattern()
4919 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParsePattern()
4924 xmlRngPErr(ctxt, node, XML_RNGP_EMPTY_CONSTRUCT, in xmlRelaxNGParsePattern()
4928 xmlRelaxNGParsePatterns(ctxt, node->children, 0); in xmlRelaxNGParsePattern()
4931 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParsePattern()
4937 xmlRngPErr(ctxt, node, XML_RNGP_REF_NO_NAME, "ref has no name\n", in xmlRelaxNGParsePattern()
4942 xmlRngPErr(ctxt, node, XML_RNGP_REF_NAME_INVALID, in xmlRelaxNGParsePattern()
4948 xmlRngPErr(ctxt, node, XML_RNGP_REF_NOT_EMPTY, "ref is not empty\n", in xmlRelaxNGParsePattern()
4951 if (ctxt->grammar->refs == NULL) in xmlRelaxNGParsePattern()
4952 ctxt->grammar->refs = xmlHashCreate(10); in xmlRelaxNGParsePattern()
4953 if (ctxt->grammar->refs == NULL) { in xmlRelaxNGParsePattern()
4954 xmlRngPErr(ctxt, node, XML_RNGP_REF_CREATE_FAILED, in xmlRelaxNGParsePattern()
4960 tmp = xmlHashAddEntry(ctxt->grammar->refs, def->name, def); in xmlRelaxNGParsePattern()
4965 xmlHashLookup(ctxt->grammar->refs, def->name); in xmlRelaxNGParsePattern()
4968 xmlRngPErr(ctxt, node, XML_RNGP_REF_CREATE_FAILED, in xmlRelaxNGParsePattern()
4972 xmlRngPErr(ctxt, node, XML_RNGP_REF_CREATE_FAILED, in xmlRelaxNGParsePattern()
4984 def = xmlRelaxNGParseData(ctxt, node); in xmlRelaxNGParsePattern()
4986 def = xmlRelaxNGParseValue(ctxt, node); in xmlRelaxNGParsePattern()
4988 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParsePattern()
4993 xmlRngPErr(ctxt, node, XML_RNGP_EMPTY_CONSTRUCT, in xmlRelaxNGParsePattern()
4997 xmlRelaxNGParsePatterns(ctxt, node->children, 0); in xmlRelaxNGParsePattern()
5000 def = xmlRelaxNGParseInterleave(ctxt, node); in xmlRelaxNGParsePattern()
5002 def = xmlRelaxNGProcessExternalRef(ctxt, node); in xmlRelaxNGParsePattern()
5004 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParsePattern()
5009 xmlRngPErr(ctxt, node, XML_RNGP_NOTALLOWED_NOT_EMPTY, in xmlRelaxNGParsePattern()
5022 oldparent = ctxt->parentgrammar; in xmlRelaxNGParsePattern()
5023 old = ctxt->grammar; in xmlRelaxNGParsePattern()
5024 ctxt->parentgrammar = old; in xmlRelaxNGParsePattern()
5025 grammar = xmlRelaxNGParseGrammar(ctxt, node->children); in xmlRelaxNGParsePattern()
5027 ctxt->grammar = old; in xmlRelaxNGParsePattern()
5028 ctxt->parentgrammar = oldparent; in xmlRelaxNGParsePattern()
5041 if (ctxt->parentgrammar == NULL) { in xmlRelaxNGParsePattern()
5042 xmlRngPErr(ctxt, node, XML_RNGP_PARENTREF_NO_PARENT, in xmlRelaxNGParsePattern()
5047 def = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParsePattern()
5053 xmlRngPErr(ctxt, node, XML_RNGP_PARENTREF_NO_NAME, in xmlRelaxNGParsePattern()
5058 xmlRngPErr(ctxt, node, XML_RNGP_PARENTREF_NAME_INVALID, in xmlRelaxNGParsePattern()
5064 xmlRngPErr(ctxt, node, XML_RNGP_PARENTREF_NOT_EMPTY, in xmlRelaxNGParsePattern()
5067 if (ctxt->parentgrammar->refs == NULL) in xmlRelaxNGParsePattern()
5068 ctxt->parentgrammar->refs = xmlHashCreate(10); in xmlRelaxNGParsePattern()
5069 if (ctxt->parentgrammar->refs == NULL) { in xmlRelaxNGParsePattern()
5070 xmlRngPErr(ctxt, node, XML_RNGP_PARENTREF_CREATE_FAILED, in xmlRelaxNGParsePattern()
5077 xmlHashAddEntry(ctxt->parentgrammar->refs, def->name, def); in xmlRelaxNGParsePattern()
5082 xmlHashLookup(ctxt->parentgrammar->refs, def->name); in xmlRelaxNGParsePattern()
5084 xmlRngPErr(ctxt, node, XML_RNGP_PARENTREF_CREATE_FAILED, in xmlRelaxNGParsePattern()
5096 xmlRngPErr(ctxt, node, XML_RNGP_EMPTY_CONSTRUCT, "Mixed is empty\n", in xmlRelaxNGParsePattern()
5100 def = xmlRelaxNGParseInterleave(ctxt, node); in xmlRelaxNGParsePattern()
5105 tmp = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParsePattern()
5113 tmp = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParsePattern()
5122 xmlRngPErr(ctxt, node, XML_RNGP_UNKNOWN_CONSTRUCT, in xmlRelaxNGParsePattern()
5140 xmlRelaxNGParseAttribute(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) in xmlRelaxNGParseAttribute() argument
5146 ret = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParseAttribute()
5150 ret->parent = ctxt->def; in xmlRelaxNGParseAttribute()
5153 xmlRngPErr(ctxt, node, XML_RNGP_ATTRIBUTE_EMPTY, in xmlRelaxNGParseAttribute()
5158 old_flags = ctxt->flags; in xmlRelaxNGParseAttribute()
5159 ctxt->flags |= XML_RELAXNG_IN_ATTRIBUTE; in xmlRelaxNGParseAttribute()
5160 cur = xmlRelaxNGParseNameClass(ctxt, child, ret); in xmlRelaxNGParseAttribute()
5165 cur = xmlRelaxNGParsePattern(ctxt, child); in xmlRelaxNGParseAttribute()
5192 xmlRngPErr(ctxt, node, XML_RNGP_ATTRIBUTE_CONTENT, in xmlRelaxNGParseAttribute()
5197 xmlRngPErr(ctxt, node, XML_RNGP_ATTRIBUTE_NOOP, in xmlRelaxNGParseAttribute()
5206 xmlRngPErr(ctxt, node, XML_RNGP_ATTRIBUTE_CHILDREN, in xmlRelaxNGParseAttribute()
5209 ctxt->flags = old_flags; in xmlRelaxNGParseAttribute()
5224 xmlRelaxNGParseExceptNameClass(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGParseExceptNameClass() argument
5231 xmlRngPErr(ctxt, node, XML_RNGP_EXCEPT_MISSING, in xmlRelaxNGParseExceptNameClass()
5236 xmlRngPErr(ctxt, node, XML_RNGP_EXCEPT_MULTIPLE, in xmlRelaxNGParseExceptNameClass()
5241 xmlRngPErr(ctxt, node, XML_RNGP_EXCEPT_EMPTY, "except has no content\n", in xmlRelaxNGParseExceptNameClass()
5246 ret = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParseExceptNameClass()
5252 cur = xmlRelaxNGNewDefine(ctxt, child); in xmlRelaxNGParseExceptNameClass()
5260 if (xmlRelaxNGParseNameClass(ctxt, child, cur) != NULL) { in xmlRelaxNGParseExceptNameClass()
5285 xmlRelaxNGParseNameClass(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node, in xmlRelaxNGParseNameClass() argument
5296 ret = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParseNameClass()
5300 if (ctxt->flags & XML_RELAXNG_IN_ATTRIBUTE) in xmlRelaxNGParseNameClass()
5311 xmlRngPErr(ctxt, node, XML_RNGP_ELEMENT_NAME, in xmlRelaxNGParseNameClass()
5315 xmlRngPErr(ctxt, node, XML_RNGP_ELEMENT_NAME, in xmlRelaxNGParseNameClass()
5322 if ((ctxt->flags & XML_RELAXNG_IN_ATTRIBUTE) && in xmlRelaxNGParseNameClass()
5325 xmlRngPErr(ctxt, node, XML_RNGP_XML_NS, in xmlRelaxNGParseNameClass()
5329 if ((ctxt->flags & XML_RELAXNG_IN_ATTRIBUTE) && in xmlRelaxNGParseNameClass()
5332 xmlRngPErr(ctxt, node, XML_RNGP_XMLNS_NAME, in xmlRelaxNGParseNameClass()
5341 xmlRelaxNGParseExceptNameClass(ctxt, node->children, in xmlRelaxNGParseNameClass()
5349 xmlRngPErr(ctxt, node, XML_RNGP_NSNAME_NO_NS, in xmlRelaxNGParseNameClass()
5352 if ((ctxt->flags & XML_RELAXNG_IN_ATTRIBUTE) && in xmlRelaxNGParseNameClass()
5356 xmlRngPErr(ctxt, node, XML_RNGP_XML_NS, in xmlRelaxNGParseNameClass()
5362 xmlRelaxNGParseExceptNameClass(ctxt, node->children, in xmlRelaxNGParseNameClass()
5373 ret = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParseNameClass()
5381 xmlRngPErr(ctxt, node, XML_RNGP_CHOICE_EMPTY, in xmlRelaxNGParseNameClass()
5387 tmp = xmlRelaxNGParseNameClass(ctxt, child, ret); in xmlRelaxNGParseNameClass()
5400 xmlRngPErr(ctxt, node, XML_RNGP_CHOICE_CONTENT, in xmlRelaxNGParseNameClass()
5430 xmlRelaxNGParseElement(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) in xmlRelaxNGParseElement() argument
5436 ret = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParseElement()
5440 ret->parent = ctxt->def; in xmlRelaxNGParseElement()
5443 xmlRngPErr(ctxt, node, XML_RNGP_ELEMENT_EMPTY, in xmlRelaxNGParseElement()
5448 cur = xmlRelaxNGParseNameClass(ctxt, child, ret); in xmlRelaxNGParseElement()
5453 xmlRngPErr(ctxt, node, XML_RNGP_ELEMENT_NO_CONTENT, in xmlRelaxNGParseElement()
5458 olddefine = ctxt->define; in xmlRelaxNGParseElement()
5459 ctxt->define = NULL; in xmlRelaxNGParseElement()
5462 cur = xmlRelaxNGParsePattern(ctxt, child); in xmlRelaxNGParseElement()
5488 ret->content = xmlRelaxNGNewDefine(ctxt, node); in xmlRelaxNGParseElement()
5505 xmlRngPErr(ctxt, node, XML_RNGP_ELEMENT_CONTENT, in xmlRelaxNGParseElement()
5510 xmlRngPErr(ctxt, node, XML_RNGP_ELEMENT_CONTENT, in xmlRelaxNGParseElement()
5515 xmlRngPErr(ctxt, node, XML_RNGP_ELEMENT_CONTENT, in xmlRelaxNGParseElement()
5520 xmlRngPErr(ctxt, node, XML_RNGP_ELEMENT_CONTENT, in xmlRelaxNGParseElement()
5528 ctxt->define = olddefine; in xmlRelaxNGParseElement()
5543 xmlRelaxNGParsePatterns(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr nodes, in xmlRelaxNGParsePatterns() argument
5548 parent = ctxt->def; in xmlRelaxNGParsePatterns()
5551 cur = xmlRelaxNGParseElement(ctxt, nodes); in xmlRelaxNGParsePatterns()
5559 def = xmlRelaxNGNewDefine(ctxt, nodes); in xmlRelaxNGParsePatterns()
5570 cur = xmlRelaxNGParsePattern(ctxt, nodes); in xmlRelaxNGParsePatterns()
5595 xmlRelaxNGParseStart(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr nodes) in xmlRelaxNGParseStart() argument
5601 xmlRngPErr(ctxt, nodes, XML_RNGP_START_EMPTY, "start has no children\n", in xmlRelaxNGParseStart()
5606 def = xmlRelaxNGNewDefine(ctxt, nodes); in xmlRelaxNGParseStart()
5611 xmlRngPErr(ctxt, nodes, XML_RNGP_EMPTY_CONTENT, in xmlRelaxNGParseStart()
5615 def = xmlRelaxNGNewDefine(ctxt, nodes); in xmlRelaxNGParseStart()
5620 xmlRngPErr(ctxt, nodes, XML_RNGP_NOTALLOWED_NOT_EMPTY, in xmlRelaxNGParseStart()
5624 def = xmlRelaxNGParsePatterns(ctxt, nodes, 1); in xmlRelaxNGParseStart()
5626 if (ctxt->grammar->start != NULL) { in xmlRelaxNGParseStart()
5627 last = ctxt->grammar->start; in xmlRelaxNGParseStart()
5632 ctxt->grammar->start = def; in xmlRelaxNGParseStart()
5636 xmlRngPErr(ctxt, nodes, XML_RNGP_START_CONTENT, in xmlRelaxNGParseStart()
5653 xmlRelaxNGParseGrammarContent(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGParseGrammarContent() argument
5659 xmlRngPErr(ctxt, nodes, XML_RNGP_GRAMMAR_EMPTY, in xmlRelaxNGParseGrammarContent()
5666 xmlRngPErr(ctxt, nodes, XML_RNGP_START_EMPTY, in xmlRelaxNGParseGrammarContent()
5669 tmp = xmlRelaxNGParseStart(ctxt, nodes->children); in xmlRelaxNGParseGrammarContent()
5674 tmp = xmlRelaxNGParseDefine(ctxt, nodes); in xmlRelaxNGParseGrammarContent()
5678 tmp = xmlRelaxNGParseInclude(ctxt, nodes); in xmlRelaxNGParseGrammarContent()
5682 xmlRngPErr(ctxt, nodes, XML_RNGP_GRAMMAR_CONTENT, in xmlRelaxNGParseGrammarContent()
5705 xmlRelaxNGParserCtxtPtr ctxt = (xmlRelaxNGParserCtxtPtr) data; in xmlRelaxNGCheckReference() local
5715 grammar = ctxt->grammar; in xmlRelaxNGCheckReference()
5717 xmlRngPErr(ctxt, ref->node, XML_ERR_INTERNAL_ERROR, in xmlRelaxNGCheckReference()
5723 xmlRngPErr(ctxt, ref->node, XML_ERR_INTERNAL_ERROR, in xmlRelaxNGCheckReference()
5737 xmlRngPErr(ctxt, ref->node, XML_RNGP_REF_NO_DEF, in xmlRelaxNGCheckReference()
5742 xmlRngPErr(ctxt, ref->node, XML_RNGP_REF_NO_DEF, in xmlRelaxNGCheckReference()
5761 xmlRelaxNGParserCtxtPtr ctxt = (xmlRelaxNGParserCtxtPtr) data; in xmlRelaxNGCheckCombine() local
5777 xmlRngPErr(ctxt, define->node, XML_RNGP_DEF_CHOICE_AND_INTERLEAVE, in xmlRelaxNGCheckCombine()
5785 xmlRngPErr(ctxt, define->node, XML_RNGP_DEF_CHOICE_AND_INTERLEAVE, in xmlRelaxNGCheckCombine()
5790 xmlRngPErr(ctxt, define->node, XML_RNGP_UNKNOWN_COMBINE, in xmlRelaxNGCheckCombine()
5799 xmlRngPErr(ctxt, define->node, XML_RNGP_NEED_COMBINE, in xmlRelaxNGCheckCombine()
5814 cur = xmlRelaxNGNewDefine(ctxt, define->node); in xmlRelaxNGCheckCombine()
5829 tmp2 = xmlRelaxNGNewDefine(ctxt, tmp->content->node); in xmlRelaxNGCheckCombine()
5849 if (ctxt->interleaves == NULL) in xmlRelaxNGCheckCombine()
5850 ctxt->interleaves = xmlHashCreate(10); in xmlRelaxNGCheckCombine()
5851 if (ctxt->interleaves == NULL) { in xmlRelaxNGCheckCombine()
5852 xmlRngPErr(ctxt, define->node, XML_RNGP_INTERLEAVE_CREATE_FAILED, in xmlRelaxNGCheckCombine()
5858 snprintf(tmpname, 32, "interleave%d", ctxt->nbInterleaves++); in xmlRelaxNGCheckCombine()
5859 if (xmlHashAddEntry(ctxt->interleaves, BAD_CAST tmpname, cur) < in xmlRelaxNGCheckCombine()
5861 xmlRngPErr(ctxt, define->node, XML_RNGP_INTERLEAVE_CREATE_FAILED, in xmlRelaxNGCheckCombine()
5878 xmlRelaxNGCombineStart(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGCombineStart() argument
5895 xmlRngPErr(ctxt, cur->node, XML_RNGP_START_MISSING, in xmlRelaxNGCombineStart()
5907 xmlRngPErr(ctxt, cur->node, XML_RNGP_START_CHOICE_AND_INTERLEAVE, in xmlRelaxNGCombineStart()
5915 xmlRngPErr(ctxt, cur->node, XML_RNGP_START_CHOICE_AND_INTERLEAVE, in xmlRelaxNGCombineStart()
5920 xmlRngPErr(ctxt, cur->node, XML_RNGP_UNKNOWN_COMBINE, in xmlRelaxNGCombineStart()
5929 xmlRngPErr(ctxt, cur->node, XML_RNGP_NEED_COMBINE, in xmlRelaxNGCombineStart()
5944 cur = xmlRelaxNGNewDefine(ctxt, starts->node); in xmlRelaxNGCombineStart()
5954 if (ctxt->interleaves == NULL) in xmlRelaxNGCombineStart()
5955 ctxt->interleaves = xmlHashCreate(10); in xmlRelaxNGCombineStart()
5956 if (ctxt->interleaves == NULL) { in xmlRelaxNGCombineStart()
5957 xmlRngPErr(ctxt, cur->node, XML_RNGP_INTERLEAVE_CREATE_FAILED, in xmlRelaxNGCombineStart()
5963 snprintf(tmpname, 32, "interleave%d", ctxt->nbInterleaves++); in xmlRelaxNGCombineStart()
5964 if (xmlHashAddEntry(ctxt->interleaves, BAD_CAST tmpname, cur) < in xmlRelaxNGCombineStart()
5966 xmlRngPErr(ctxt, cur->node, XML_RNGP_INTERLEAVE_CREATE_FAILED, in xmlRelaxNGCombineStart()
5985 xmlRelaxNGCheckCycles(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGCheckCycles() argument
5995 ret = xmlRelaxNGCheckCycles(ctxt, cur->content, depth); in xmlRelaxNGCheckCycles()
5998 xmlRngPErr(ctxt, cur->node, XML_RNGP_REF_CYCLE, in xmlRelaxNGCheckCycles()
6004 ret = xmlRelaxNGCheckCycles(ctxt, cur->content, depth + 1); in xmlRelaxNGCheckCycles()
6006 ret = xmlRelaxNGCheckCycles(ctxt, cur->content, depth); in xmlRelaxNGCheckCycles()
6025 xmlRelaxNGTryUnlink(xmlRelaxNGParserCtxtPtr ctxt ATTRIBUTE_UNUSED, in xmlRelaxNGTryUnlink()
6055 xmlRelaxNGSimplify(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGSimplify() argument
6065 xmlRelaxNGSimplify(ctxt, cur->content, cur); in xmlRelaxNGSimplify()
6080 prev = xmlRelaxNGTryUnlink(ctxt, cur, parent, prev); in xmlRelaxNGSimplify()
6094 prev = xmlRelaxNGTryUnlink(ctxt, cur, parent, prev); in xmlRelaxNGSimplify()
6100 xmlRelaxNGSimplify(ctxt, cur->content, cur); in xmlRelaxNGSimplify()
6102 xmlRelaxNGSimplify(ctxt, cur->attrs, cur); in xmlRelaxNGSimplify()
6104 xmlRelaxNGSimplify(ctxt, cur->nameClass, cur); in xmlRelaxNGSimplify()
6115 xmlRelaxNGGenerateAttributes(ctxt, cur->content); in xmlRelaxNGSimplify()
6134 attronly = xmlRelaxNGGenerateAttributes(ctxt, tmp); in xmlRelaxNGSimplify()
6174 prev = xmlRelaxNGTryUnlink(ctxt, cur, parent, prev); in xmlRelaxNGSimplify()
6188 prev = xmlRelaxNGTryUnlink(ctxt, cur, parent, prev); in xmlRelaxNGSimplify()
6202 prev = xmlRelaxNGTryUnlink(ctxt, cur, parent, prev); in xmlRelaxNGSimplify()
6276 xmlRelaxNGCheckRules(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGCheckRules() argument
6294 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_LIST_REF, in xmlRelaxNGCheckRules()
6300 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_DATA_EXCEPT_REF, in xmlRelaxNGCheckRules()
6306 xmlRngPErr(ctxt, cur->node, XML_RNGP_REF_NO_DEF, in xmlRelaxNGCheckRules()
6310 xmlRngPErr(ctxt, cur->node, XML_RNGP_REF_NO_DEF, in xmlRelaxNGCheckRules()
6316 ret = xmlRelaxNGCheckRules(ctxt, cur->content, in xmlRelaxNGCheckRules()
6328 xmlRelaxNGCheckGroupAttrs(ctxt, cur); in xmlRelaxNGCheckRules()
6330 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_DATA_EXCEPT_ELEM, in xmlRelaxNGCheckRules()
6335 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_LIST_ELEM, in xmlRelaxNGCheckRules()
6340 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_ATTR_ELEM, in xmlRelaxNGCheckRules()
6345 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_ATTR_ELEM, in xmlRelaxNGCheckRules()
6355 xmlRelaxNGCheckRules(ctxt, cur->attrs, nflags, cur->type); in xmlRelaxNGCheckRules()
6357 xmlRngPErr(ctxt, cur->node, XML_RNGP_ELEM_CONTENT_EMPTY, in xmlRelaxNGCheckRules()
6362 xmlRelaxNGCheckRules(ctxt, cur->content, nflags, in xmlRelaxNGCheckRules()
6365 xmlRngPErr(ctxt, cur->node, XML_RNGP_ELEM_CONTENT_ERROR, in xmlRelaxNGCheckRules()
6373 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_ATTR_ATTR, in xmlRelaxNGCheckRules()
6378 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_LIST_ATTR, in xmlRelaxNGCheckRules()
6383 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_ONEMORE_GROUP_ATTR, in xmlRelaxNGCheckRules()
6388 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR, in xmlRelaxNGCheckRules()
6393 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_DATA_EXCEPT_ATTR, in xmlRelaxNGCheckRules()
6398 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_START_ATTR, in xmlRelaxNGCheckRules()
6408 xmlRngPErr(ctxt, cur->node, XML_RNGP_ANYNAME_ATTR_ANCESTOR, in xmlRelaxNGCheckRules()
6412 xmlRngPErr(ctxt, cur->node, XML_RNGP_NSNAME_ATTR_ANCESTOR, in xmlRelaxNGCheckRules()
6418 xmlRelaxNGCheckRules(ctxt, cur->content, nflags, cur->type); in xmlRelaxNGCheckRules()
6423 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_DATA_EXCEPT_ONEMORE, in xmlRelaxNGCheckRules()
6428 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_START_ONEMORE, in xmlRelaxNGCheckRules()
6434 xmlRelaxNGCheckRules(ctxt, cur->content, nflags, in xmlRelaxNGCheckRules()
6439 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_LIST_LIST, in xmlRelaxNGCheckRules()
6444 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_DATA_EXCEPT_LIST, in xmlRelaxNGCheckRules()
6449 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_START_LIST, in xmlRelaxNGCheckRules()
6455 xmlRelaxNGCheckRules(ctxt, cur->content, nflags, in xmlRelaxNGCheckRules()
6459 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_DATA_EXCEPT_GROUP, in xmlRelaxNGCheckRules()
6464 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_START_GROUP, in xmlRelaxNGCheckRules()
6473 xmlRelaxNGCheckRules(ctxt, cur->content, nflags, in xmlRelaxNGCheckRules()
6478 xmlRelaxNGCheckGroupAttrs(ctxt, cur); in xmlRelaxNGCheckRules()
6481 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_LIST_INTERLEAVE, in xmlRelaxNGCheckRules()
6486 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE, in xmlRelaxNGCheckRules()
6491 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE, in xmlRelaxNGCheckRules()
6500 xmlRelaxNGCheckRules(ctxt, cur->content, nflags, in xmlRelaxNGCheckRules()
6509 xmlRelaxNGCheckRules(ctxt, cur->content, nflags, in xmlRelaxNGCheckRules()
6513 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_START_DATA, in xmlRelaxNGCheckRules()
6517 xmlRelaxNGCheckRules(ctxt, cur->content, flags, cur->type); in xmlRelaxNGCheckRules()
6521 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_START_VALUE, in xmlRelaxNGCheckRules()
6525 xmlRelaxNGCheckRules(ctxt, cur->content, flags, cur->type); in xmlRelaxNGCheckRules()
6529 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_LIST_TEXT, in xmlRelaxNGCheckRules()
6534 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_DATA_EXCEPT_TEXT, in xmlRelaxNGCheckRules()
6539 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_START_TEXT, in xmlRelaxNGCheckRules()
6546 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_DATA_EXCEPT_EMPTY, in xmlRelaxNGCheckRules()
6551 xmlRngPErr(ctxt, cur->node, XML_RNGP_PAT_START_EMPTY, in xmlRelaxNGCheckRules()
6557 xmlRelaxNGCheckChoiceDeterminism(ctxt, cur); in xmlRelaxNGCheckRules()
6559 xmlRelaxNGCheckRules(ctxt, cur->content, flags, cur->type); in xmlRelaxNGCheckRules()
6562 xmlRelaxNGCheckRules(ctxt, cur->content, flags, cur->type); in xmlRelaxNGCheckRules()
6603 xmlRelaxNGParseGrammar(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr nodes) in xmlRelaxNGParseGrammar() argument
6611 ret = xmlRelaxNGNewGrammar(ctxt); in xmlRelaxNGParseGrammar()
6618 ret->parent = ctxt->grammar; in xmlRelaxNGParseGrammar()
6619 if (ctxt->grammar != NULL) { in xmlRelaxNGParseGrammar()
6620 tmp = ctxt->grammar->children; in xmlRelaxNGParseGrammar()
6622 ctxt->grammar->children = ret; in xmlRelaxNGParseGrammar()
6630 old = ctxt->grammar; in xmlRelaxNGParseGrammar()
6631 ctxt->grammar = ret; in xmlRelaxNGParseGrammar()
6632 xmlRelaxNGParseGrammarContent(ctxt, nodes); in xmlRelaxNGParseGrammar()
6633 ctxt->grammar = ret; in xmlRelaxNGParseGrammar()
6634 if (ctxt->grammar == NULL) { in xmlRelaxNGParseGrammar()
6635 xmlRngPErr(ctxt, nodes, XML_RNGP_GRAMMAR_CONTENT, in xmlRelaxNGParseGrammar()
6637 } else if (ctxt->grammar->start == NULL) { in xmlRelaxNGParseGrammar()
6638 xmlRngPErr(ctxt, nodes, XML_RNGP_GRAMMAR_NO_START, in xmlRelaxNGParseGrammar()
6645 xmlRelaxNGCombineStart(ctxt, ret); in xmlRelaxNGParseGrammar()
6647 xmlHashScan(ret->defs, xmlRelaxNGCheckCombine, ctxt); in xmlRelaxNGParseGrammar()
6654 xmlHashScan(ret->refs, xmlRelaxNGCheckReference, ctxt); in xmlRelaxNGParseGrammar()
6660 ctxt->grammar = old; in xmlRelaxNGParseGrammar()
6676 xmlRelaxNGParseDocument(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) in xmlRelaxNGParseDocument() argument
6682 if ((ctxt == NULL) || (node == NULL)) in xmlRelaxNGParseDocument()
6685 schema = xmlRelaxNGNewRelaxNG(ctxt); in xmlRelaxNGParseDocument()
6689 olddefine = ctxt->define; in xmlRelaxNGParseDocument()
6690 ctxt->define = NULL; in xmlRelaxNGParseDocument()
6692 schema->topgrammar = xmlRelaxNGParseGrammar(ctxt, node->children); in xmlRelaxNGParseDocument()
6700 schema->topgrammar = ret = xmlRelaxNGNewGrammar(ctxt); in xmlRelaxNGParseDocument()
6708 ret->parent = ctxt->grammar; in xmlRelaxNGParseDocument()
6709 if (ctxt->grammar != NULL) { in xmlRelaxNGParseDocument()
6710 tmp = ctxt->grammar->children; in xmlRelaxNGParseDocument()
6712 ctxt->grammar->children = ret; in xmlRelaxNGParseDocument()
6719 old = ctxt->grammar; in xmlRelaxNGParseDocument()
6720 ctxt->grammar = ret; in xmlRelaxNGParseDocument()
6721 xmlRelaxNGParseStart(ctxt, node); in xmlRelaxNGParseDocument()
6723 ctxt->grammar = old; in xmlRelaxNGParseDocument()
6725 ctxt->define = olddefine; in xmlRelaxNGParseDocument()
6727 xmlRelaxNGCheckCycles(ctxt, schema->topgrammar->start, 0); in xmlRelaxNGParseDocument()
6728 if ((ctxt->flags & XML_RELAXNG_IN_EXTERNALREF) == 0) { in xmlRelaxNGParseDocument()
6729 xmlRelaxNGSimplify(ctxt, schema->topgrammar->start, NULL); in xmlRelaxNGParseDocument()
6735 xmlRelaxNGCheckRules(ctxt, schema->topgrammar->start, in xmlRelaxNGParseDocument()
6859 xmlRelaxNGFreeParserCtxt(xmlRelaxNGParserCtxtPtr ctxt) in xmlRelaxNGFreeParserCtxt() argument
6861 if (ctxt == NULL) in xmlRelaxNGFreeParserCtxt()
6863 if (ctxt->URL != NULL) in xmlRelaxNGFreeParserCtxt()
6864 xmlFree(ctxt->URL); in xmlRelaxNGFreeParserCtxt()
6865 if (ctxt->doc != NULL) in xmlRelaxNGFreeParserCtxt()
6866 xmlRelaxNGFreeDocument(ctxt->doc); in xmlRelaxNGFreeParserCtxt()
6867 if (ctxt->interleaves != NULL) in xmlRelaxNGFreeParserCtxt()
6868 xmlHashFree(ctxt->interleaves, NULL); in xmlRelaxNGFreeParserCtxt()
6869 if (ctxt->documents != NULL) in xmlRelaxNGFreeParserCtxt()
6870 xmlRelaxNGFreeDocumentList(ctxt->documents); in xmlRelaxNGFreeParserCtxt()
6871 if (ctxt->includes != NULL) in xmlRelaxNGFreeParserCtxt()
6872 xmlRelaxNGFreeIncludeList(ctxt->includes); in xmlRelaxNGFreeParserCtxt()
6873 if (ctxt->docTab != NULL) in xmlRelaxNGFreeParserCtxt()
6874 xmlFree(ctxt->docTab); in xmlRelaxNGFreeParserCtxt()
6875 if (ctxt->incTab != NULL) in xmlRelaxNGFreeParserCtxt()
6876 xmlFree(ctxt->incTab); in xmlRelaxNGFreeParserCtxt()
6877 if (ctxt->defTab != NULL) { in xmlRelaxNGFreeParserCtxt()
6880 for (i = 0; i < ctxt->defNr; i++) in xmlRelaxNGFreeParserCtxt()
6881 xmlRelaxNGFreeDefine(ctxt->defTab[i]); in xmlRelaxNGFreeParserCtxt()
6882 xmlFree(ctxt->defTab); in xmlRelaxNGFreeParserCtxt()
6884 if ((ctxt->document != NULL) && (ctxt->freedoc)) in xmlRelaxNGFreeParserCtxt()
6885 xmlFreeDoc(ctxt->document); in xmlRelaxNGFreeParserCtxt()
6886 xmlFree(ctxt); in xmlRelaxNGFreeParserCtxt()
6949 xmlRelaxNGCleanupAttributes(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) in xmlRelaxNGCleanupAttributes() argument
6965 xmlRngPErr(ctxt, node, XML_RNGP_FORBIDDEN_ATTRIBUTE, in xmlRelaxNGCleanupAttributes()
6972 xmlRngPErr(ctxt, node, XML_RNGP_FORBIDDEN_ATTRIBUTE, in xmlRelaxNGCleanupAttributes()
6979 xmlRngPErr(ctxt, node, XML_RNGP_FORBIDDEN_ATTRIBUTE, in xmlRelaxNGCleanupAttributes()
6986 xmlRngPErr(ctxt, node, XML_RNGP_FORBIDDEN_ATTRIBUTE, in xmlRelaxNGCleanupAttributes()
6999 xmlRngPErr(ctxt, node, XML_RNGP_INVALID_URI, in xmlRelaxNGCleanupAttributes()
7004 xmlRngPErr(ctxt, node, XML_RNGP_URI_NOT_ABSOLUTE, in xmlRelaxNGCleanupAttributes()
7009 xmlRngPErr(ctxt, node, XML_RNGP_URI_FRAGMENT, in xmlRelaxNGCleanupAttributes()
7019 xmlRngPErr(ctxt, node, XML_RNGP_UNKNOWN_ATTRIBUTE, in xmlRelaxNGCleanupAttributes()
7037 xmlRelaxNGCleanupTree(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr root) in xmlRelaxNGCleanupTree() argument
7060 xmlRngPErr(ctxt, cur, XML_RNGP_FOREIGN_ELEMENT, in xmlRelaxNGCleanupTree()
7067 xmlRelaxNGCleanupAttributes(ctxt, cur); in xmlRelaxNGCleanupTree()
7087 xmlRngPErr(ctxt, cur, XML_RNGP_MISSING_HREF, in xmlRelaxNGCleanupTree()
7097 xmlRngPErr(ctxt, cur, XML_RNGP_HREF_ERROR, in xmlRelaxNGCleanupTree()
7108 xmlRngPErr(ctxt, cur, XML_RNGP_HREF_ERROR, in xmlRelaxNGCleanupTree()
7123 xmlRngPErr(ctxt, cur, XML_RNGP_HREF_ERROR, in xmlRelaxNGCleanupTree()
7139 docu = xmlRelaxNGLoadExternalRef(ctxt, URL, ns); in xmlRelaxNGCleanupTree()
7141 xmlRngPErr(ctxt, cur, XML_RNGP_EXTERNAL_REF_FAILURE, in xmlRelaxNGCleanupTree()
7161 xmlRngPErr(ctxt, cur, XML_RNGP_MISSING_HREF, in xmlRelaxNGCleanupTree()
7170 xmlRngPErr(ctxt, cur, XML_RNGP_HREF_ERROR, in xmlRelaxNGCleanupTree()
7195 incl = xmlRelaxNGLoadInclude(ctxt, URL, cur, ns); in xmlRelaxNGCleanupTree()
7199 xmlRngPErr(ctxt, cur, XML_RNGP_INCLUDE_FAILURE, in xmlRelaxNGCleanupTree()
7237 xmlRngPErr(ctxt, cur, XML_RNGP_CREATE_FAILURE, in xmlRelaxNGCleanupTree()
7296 xmlRngPErr(ctxt, cur, in xmlRelaxNGCleanupTree()
7315 if (ctxt->flags & XML_RELAXNG_IN_NSEXCEPT) { in xmlRelaxNGCleanupTree()
7316 xmlRngPErr(ctxt, cur, in xmlRelaxNGCleanupTree()
7324 int oldflags = ctxt->flags; in xmlRelaxNGCleanupTree()
7332 ctxt->flags |= XML_RELAXNG_IN_ANYEXCEPT; in xmlRelaxNGCleanupTree()
7333 xmlRelaxNGCleanupTree(ctxt, cur); in xmlRelaxNGCleanupTree()
7334 ctxt->flags = oldflags; in xmlRelaxNGCleanupTree()
7339 ctxt->flags |= XML_RELAXNG_IN_NSEXCEPT; in xmlRelaxNGCleanupTree()
7340 xmlRelaxNGCleanupTree(ctxt, cur); in xmlRelaxNGCleanupTree()
7341 ctxt->flags = oldflags; in xmlRelaxNGCleanupTree()
7348 if (ctxt->flags & XML_RELAXNG_IN_ANYEXCEPT) { in xmlRelaxNGCleanupTree()
7349 xmlRngPErr(ctxt, cur, in xmlRelaxNGCleanupTree()
7353 } else if (ctxt->flags & XML_RELAXNG_IN_NSEXCEPT) { in xmlRelaxNGCleanupTree()
7354 xmlRngPErr(ctxt, cur, in xmlRelaxNGCleanupTree()
7480 xmlRelaxNGCleanupDoc(xmlRelaxNGParserCtxtPtr ctxt, xmlDocPtr doc) in xmlRelaxNGCleanupDoc() argument
7489 xmlRngPErr(ctxt, (xmlNodePtr) doc, XML_RNGP_EMPTY, "xmlRelaxNGParse: %s is empty\n", in xmlRelaxNGCleanupDoc()
7490 ctxt->URL, NULL); in xmlRelaxNGCleanupDoc()
7493 xmlRelaxNGCleanupTree(ctxt, root); in xmlRelaxNGCleanupDoc()
7508 xmlRelaxNGParse(xmlRelaxNGParserCtxtPtr ctxt) in xmlRelaxNGParse() argument
7516 if (ctxt == NULL) in xmlRelaxNGParse()
7522 if (ctxt->URL != NULL) { in xmlRelaxNGParse()
7523 doc = xmlReadFile((const char *) ctxt->URL,NULL,0); in xmlRelaxNGParse()
7525 xmlRngPErr(ctxt, NULL, XML_RNGP_PARSE_ERROR, in xmlRelaxNGParse()
7526 "xmlRelaxNGParse: could not load %s\n", ctxt->URL, in xmlRelaxNGParse()
7530 } else if (ctxt->buffer != NULL) { in xmlRelaxNGParse()
7531 doc = xmlReadMemory(ctxt->buffer, ctxt->size,NULL,NULL,0); in xmlRelaxNGParse()
7533 xmlRngPErr(ctxt, NULL, XML_RNGP_PARSE_ERROR, in xmlRelaxNGParse()
7539 ctxt->URL = xmlStrdup(BAD_CAST "in_memory_buffer"); in xmlRelaxNGParse()
7540 } else if (ctxt->document != NULL) { in xmlRelaxNGParse()
7541 doc = ctxt->document; in xmlRelaxNGParse()
7543 xmlRngPErr(ctxt, NULL, XML_RNGP_EMPTY, in xmlRelaxNGParse()
7547 ctxt->document = doc; in xmlRelaxNGParse()
7552 doc = xmlRelaxNGCleanupDoc(ctxt, doc); in xmlRelaxNGParse()
7554 xmlFreeDoc(ctxt->document); in xmlRelaxNGParse()
7555 ctxt->document = NULL; in xmlRelaxNGParse()
7564 xmlRngPErr(ctxt, (xmlNodePtr) doc, in xmlRelaxNGParse()
7566 (ctxt->URL ? ctxt->URL : BAD_CAST "schemas"), NULL); in xmlRelaxNGParse()
7568 xmlFreeDoc(ctxt->document); in xmlRelaxNGParse()
7569 ctxt->document = NULL; in xmlRelaxNGParse()
7572 ret = xmlRelaxNGParseDocument(ctxt, root); in xmlRelaxNGParse()
7574 xmlFreeDoc(ctxt->document); in xmlRelaxNGParse()
7575 ctxt->document = NULL; in xmlRelaxNGParse()
7585 if (ctxt->interleaves != NULL) { in xmlRelaxNGParse()
7586 xmlHashScan(ctxt->interleaves, xmlRelaxNGComputeInterleaves, ctxt); in xmlRelaxNGParse()
7592 if (ctxt->nbErrors > 0) { in xmlRelaxNGParse()
7594 ctxt->document = NULL; in xmlRelaxNGParse()
7606 def = xmlRelaxNGNewDefine(ctxt, NULL); in xmlRelaxNGParse()
7613 xmlRelaxNGTryCompile(ctxt, ret->topgrammar->start); in xmlRelaxNGParse()
7620 ctxt->document = NULL; in xmlRelaxNGParse()
7621 ret->documents = ctxt->documents; in xmlRelaxNGParse()
7622 ctxt->documents = NULL; in xmlRelaxNGParse()
7624 ret->includes = ctxt->includes; in xmlRelaxNGParse()
7625 ctxt->includes = NULL; in xmlRelaxNGParse()
7626 ret->defNr = ctxt->defNr; in xmlRelaxNGParse()
7627 ret->defTab = ctxt->defTab; in xmlRelaxNGParse()
7628 ctxt->defTab = NULL; in xmlRelaxNGParse()
7629 if (ctxt->idref == 1) in xmlRelaxNGParse()
7645 xmlRelaxNGSetParserErrors(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGSetParserErrors() argument
7649 if (ctxt == NULL) in xmlRelaxNGSetParserErrors()
7651 ctxt->error = err; in xmlRelaxNGSetParserErrors()
7652 ctxt->warning = warn; in xmlRelaxNGSetParserErrors()
7653 ctxt->serror = NULL; in xmlRelaxNGSetParserErrors()
7654 ctxt->userData = ctx; in xmlRelaxNGSetParserErrors()
7669 xmlRelaxNGGetParserErrors(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGGetParserErrors() argument
7673 if (ctxt == NULL) in xmlRelaxNGGetParserErrors()
7676 *err = ctxt->error; in xmlRelaxNGGetParserErrors()
7678 *warn = ctxt->warning; in xmlRelaxNGGetParserErrors()
7680 *ctx = ctxt->userData; in xmlRelaxNGGetParserErrors()
7693 xmlRelaxNGSetParserStructuredErrors(xmlRelaxNGParserCtxtPtr ctxt, in xmlRelaxNGSetParserStructuredErrors() argument
7697 if (ctxt == NULL) in xmlRelaxNGSetParserStructuredErrors()
7699 ctxt->serror = serror; in xmlRelaxNGSetParserStructuredErrors()
7700 ctxt->error = NULL; in xmlRelaxNGSetParserStructuredErrors()
7701 ctxt->warning = NULL; in xmlRelaxNGSetParserStructuredErrors()
7702 ctxt->userData = ctx; in xmlRelaxNGSetParserStructuredErrors()
7948 static int xmlRelaxNGValidateDefinition(xmlRelaxNGValidCtxtPtr ctxt,
7965 xmlRelaxNGValidCtxtPtr ctxt = (xmlRelaxNGValidCtxtPtr) inputdata; in xmlRelaxNGValidateCompiledCallback() local
7973 if (ctxt == NULL) { in xmlRelaxNGValidateCompiledCallback()
7981 if ((ctxt != NULL) && (ctxt->errNo == XML_RELAXNG_OK)) in xmlRelaxNGValidateCompiledCallback()
7982 ctxt->errNo = XML_RELAXNG_ERR_INTERNAL; in xmlRelaxNGValidateCompiledCallback()
7985 if ((ctxt == NULL) || (define == NULL)) { in xmlRelaxNGValidateCompiledCallback()
7987 if ((ctxt != NULL) && (ctxt->errNo == XML_RELAXNG_OK)) in xmlRelaxNGValidateCompiledCallback()
7988 ctxt->errNo = XML_RELAXNG_ERR_INTERNAL; in xmlRelaxNGValidateCompiledCallback()
7992 if (ctxt->errNo == XML_RELAXNG_OK) in xmlRelaxNGValidateCompiledCallback()
7993 ctxt->errNo = XML_RELAXNG_ERR_INTERNAL; in xmlRelaxNGValidateCompiledCallback()
7996 ret = xmlRelaxNGValidateDefinition(ctxt, define); in xmlRelaxNGValidateCompiledCallback()
7998 ctxt->perr = ret; in xmlRelaxNGValidateCompiledCallback()
8012 xmlRelaxNGValidateCompiledContent(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidateCompiledContent() argument
8020 if ((ctxt == NULL) || (regexp == NULL)) in xmlRelaxNGValidateCompiledContent()
8022 oldperr = ctxt->perr; in xmlRelaxNGValidateCompiledContent()
8024 xmlRelaxNGValidateCompiledCallback, ctxt); in xmlRelaxNGValidateCompiledContent()
8025 ctxt->perr = 0; in xmlRelaxNGValidateCompiledContent()
8028 ctxt->state->seq = cur; in xmlRelaxNGValidateCompiledContent()
8034 ret = xmlRegExecPushString(exec, BAD_CAST "#text", ctxt); in xmlRelaxNGValidateCompiledContent()
8043 cur->ns->href, ctxt); in xmlRelaxNGValidateCompiledContent()
8045 ret = xmlRegExecPushString(exec, cur->name, ctxt); in xmlRelaxNGValidateCompiledContent()
8064 ctxt->state->seq = NULL; in xmlRelaxNGValidateCompiledContent()
8071 if ((ctxt->flags & FLAGS_IGNORABLE) == 0) in xmlRelaxNGValidateCompiledContent()
8072 xmlRelaxNGDumpValidError(ctxt); in xmlRelaxNGValidateCompiledContent()
8081 if ((ret == 0) && (ctxt->perr != 0)) { in xmlRelaxNGValidateCompiledContent()
8082 ret = ctxt->perr; in xmlRelaxNGValidateCompiledContent()
8084 ctxt->perr = oldperr; in xmlRelaxNGValidateCompiledContent()
8093 static int xmlRelaxNGValidateAttributeList(xmlRelaxNGValidCtxtPtr ctxt,
8095 static int xmlRelaxNGValidateElementEnd(xmlRelaxNGValidCtxtPtr ctxt,
8097 static void xmlRelaxNGLogBestError(xmlRelaxNGValidCtxtPtr ctxt);
8109 xmlRelaxNGElemPush(xmlRelaxNGValidCtxtPtr ctxt, xmlRegExecCtxtPtr exec) in xmlRelaxNGElemPush() argument
8111 if (ctxt->elemTab == NULL) { in xmlRelaxNGElemPush()
8112 ctxt->elemMax = 10; in xmlRelaxNGElemPush()
8113 ctxt->elemTab = (xmlRegExecCtxtPtr *) xmlMalloc(ctxt->elemMax * in xmlRelaxNGElemPush()
8116 if (ctxt->elemTab == NULL) { in xmlRelaxNGElemPush()
8117 xmlRngVErrMemory(ctxt, "validating\n"); in xmlRelaxNGElemPush()
8121 if (ctxt->elemNr >= ctxt->elemMax) { in xmlRelaxNGElemPush()
8122 ctxt->elemMax *= 2; in xmlRelaxNGElemPush()
8123 ctxt->elemTab = (xmlRegExecCtxtPtr *) xmlRealloc(ctxt->elemTab, in xmlRelaxNGElemPush()
8124 ctxt->elemMax * in xmlRelaxNGElemPush()
8127 if (ctxt->elemTab == NULL) { in xmlRelaxNGElemPush()
8128 xmlRngVErrMemory(ctxt, "validating\n"); in xmlRelaxNGElemPush()
8132 ctxt->elemTab[ctxt->elemNr++] = exec; in xmlRelaxNGElemPush()
8133 ctxt->elem = exec; in xmlRelaxNGElemPush()
8146 xmlRelaxNGElemPop(xmlRelaxNGValidCtxtPtr ctxt) in xmlRelaxNGElemPop() argument
8150 if (ctxt->elemNr <= 0) in xmlRelaxNGElemPop()
8152 ctxt->elemNr--; in xmlRelaxNGElemPop()
8153 ret = ctxt->elemTab[ctxt->elemNr]; in xmlRelaxNGElemPop()
8154 ctxt->elemTab[ctxt->elemNr] = NULL; in xmlRelaxNGElemPop()
8155 if (ctxt->elemNr > 0) in xmlRelaxNGElemPop()
8156 ctxt->elem = ctxt->elemTab[ctxt->elemNr - 1]; in xmlRelaxNGElemPop()
8158 ctxt->elem = NULL; in xmlRelaxNGElemPop()
8178 xmlRelaxNGValidCtxtPtr ctxt = (xmlRelaxNGValidCtxtPtr) inputdata; in xmlRelaxNGValidateProgressiveCallback() local
8188 if (ctxt == NULL) { in xmlRelaxNGValidateProgressiveCallback()
8192 node = ctxt->pnode; in xmlRelaxNGValidateProgressiveCallback()
8193 ctxt->pstate = 1; in xmlRelaxNGValidateProgressiveCallback()
8198 if ((ctxt != NULL) && (ctxt->errNo == XML_RELAXNG_OK)) in xmlRelaxNGValidateProgressiveCallback()
8199 ctxt->errNo = XML_RELAXNG_ERR_INTERNAL; in xmlRelaxNGValidateProgressiveCallback()
8200 ctxt->pstate = -1; in xmlRelaxNGValidateProgressiveCallback()
8203 if ((ctxt == NULL) || (define == NULL)) { in xmlRelaxNGValidateProgressiveCallback()
8205 if ((ctxt != NULL) && (ctxt->errNo == XML_RELAXNG_OK)) in xmlRelaxNGValidateProgressiveCallback()
8206 ctxt->errNo = XML_RELAXNG_ERR_INTERNAL; in xmlRelaxNGValidateProgressiveCallback()
8207 ctxt->pstate = -1; in xmlRelaxNGValidateProgressiveCallback()
8211 if (ctxt->errNo == XML_RELAXNG_OK) in xmlRelaxNGValidateProgressiveCallback()
8212 ctxt->errNo = XML_RELAXNG_ERR_INTERNAL; in xmlRelaxNGValidateProgressiveCallback()
8213 ctxt->pstate = -1; in xmlRelaxNGValidateProgressiveCallback()
8218 if ((ctxt->flags & FLAGS_IGNORABLE) == 0) in xmlRelaxNGValidateProgressiveCallback()
8219 xmlRelaxNGDumpValidError(ctxt); in xmlRelaxNGValidateProgressiveCallback()
8220 ctxt->pstate = -1; in xmlRelaxNGValidateProgressiveCallback()
8232 ctxt->pstate = 0; in xmlRelaxNGValidateProgressiveCallback()
8233 ctxt->pdef = define; in xmlRelaxNGValidateProgressiveCallback()
8237 xmlRelaxNGValidateProgressiveCallback, ctxt); in xmlRelaxNGValidateProgressiveCallback()
8239 ctxt->pstate = -1; in xmlRelaxNGValidateProgressiveCallback()
8242 xmlRelaxNGElemPush(ctxt, exec); in xmlRelaxNGValidateProgressiveCallback()
8247 state = xmlRelaxNGNewValidState(ctxt, node); in xmlRelaxNGValidateProgressiveCallback()
8249 ctxt->pstate = -1; in xmlRelaxNGValidateProgressiveCallback()
8252 oldstate = ctxt->state; in xmlRelaxNGValidateProgressiveCallback()
8253 ctxt->state = state; in xmlRelaxNGValidateProgressiveCallback()
8255 ret = xmlRelaxNGValidateAttributeList(ctxt, define->attrs); in xmlRelaxNGValidateProgressiveCallback()
8257 ctxt->pstate = -1; in xmlRelaxNGValidateProgressiveCallback()
8261 if (ctxt->state != NULL) { in xmlRelaxNGValidateProgressiveCallback()
8262 ctxt->state->seq = NULL; in xmlRelaxNGValidateProgressiveCallback()
8263 ret = xmlRelaxNGValidateElementEnd(ctxt, 1); in xmlRelaxNGValidateProgressiveCallback()
8265 ctxt->pstate = -1; in xmlRelaxNGValidateProgressiveCallback()
8267 xmlRelaxNGFreeValidState(ctxt, ctxt->state); in xmlRelaxNGValidateProgressiveCallback()
8268 } else if (ctxt->states != NULL) { in xmlRelaxNGValidateProgressiveCallback()
8271 oldflags = ctxt->flags; in xmlRelaxNGValidateProgressiveCallback()
8273 for (i = 0; i < ctxt->states->nbState; i++) { in xmlRelaxNGValidateProgressiveCallback()
8274 state = ctxt->states->tabState[i]; in xmlRelaxNGValidateProgressiveCallback()
8275 ctxt->state = state; in xmlRelaxNGValidateProgressiveCallback()
8276 ctxt->state->seq = NULL; in xmlRelaxNGValidateProgressiveCallback()
8278 if (xmlRelaxNGValidateElementEnd(ctxt, 0) == 0) { in xmlRelaxNGValidateProgressiveCallback()
8287 ctxt->flags |= FLAGS_IGNORABLE; in xmlRelaxNGValidateProgressiveCallback()
8288 xmlRelaxNGLogBestError(ctxt); in xmlRelaxNGValidateProgressiveCallback()
8290 for (i = 0; i < ctxt->states->nbState; i++) { in xmlRelaxNGValidateProgressiveCallback()
8291 xmlRelaxNGFreeValidState(ctxt, ctxt->states->tabState[i]); in xmlRelaxNGValidateProgressiveCallback()
8293 xmlRelaxNGFreeStates(ctxt, ctxt->states); in xmlRelaxNGValidateProgressiveCallback()
8294 ctxt->states = NULL; in xmlRelaxNGValidateProgressiveCallback()
8296 ctxt->pstate = -1; in xmlRelaxNGValidateProgressiveCallback()
8297 ctxt->flags = oldflags; in xmlRelaxNGValidateProgressiveCallback()
8299 if (ctxt->pstate == -1) { in xmlRelaxNGValidateProgressiveCallback()
8300 if ((ctxt->flags & FLAGS_IGNORABLE) == 0) { in xmlRelaxNGValidateProgressiveCallback()
8301 xmlRelaxNGDumpValidError(ctxt); in xmlRelaxNGValidateProgressiveCallback()
8304 ctxt->state = oldstate; in xmlRelaxNGValidateProgressiveCallback()
8319 xmlRelaxNGValidatePushElement(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidatePushElement() argument
8325 if ((ctxt == NULL) || (elem == NULL)) in xmlRelaxNGValidatePushElement()
8331 if (ctxt->elem == 0) { in xmlRelaxNGValidatePushElement()
8337 schema = ctxt->schema; in xmlRelaxNGValidatePushElement()
8349 ctxt->pdef = define; in xmlRelaxNGValidatePushElement()
8354 ctxt); in xmlRelaxNGValidatePushElement()
8358 xmlRelaxNGElemPush(ctxt, exec); in xmlRelaxNGValidatePushElement()
8360 ctxt->pnode = elem; in xmlRelaxNGValidatePushElement()
8361 ctxt->pstate = 0; in xmlRelaxNGValidatePushElement()
8364 xmlRegExecPushString2(ctxt->elem, elem->name, elem->ns->href, in xmlRelaxNGValidatePushElement()
8365 ctxt); in xmlRelaxNGValidatePushElement()
8367 ret = xmlRegExecPushString(ctxt->elem, elem->name, ctxt); in xmlRelaxNGValidatePushElement()
8372 if (ctxt->pstate == 0) in xmlRelaxNGValidatePushElement()
8374 else if (ctxt->pstate < 0) in xmlRelaxNGValidatePushElement()
8398 xmlRelaxNGValidatePushCData(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidatePushCData() argument
8403 if ((ctxt == NULL) || (ctxt->elem == NULL) || (data == NULL)) in xmlRelaxNGValidatePushCData()
8418 ret = xmlRegExecPushString(ctxt->elem, BAD_CAST "#text", ctxt); in xmlRelaxNGValidatePushCData()
8441 xmlRelaxNGValidatePopElement(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidatePopElement() argument
8448 if ((ctxt == NULL) || (ctxt->elem == NULL) || (elem == NULL)) in xmlRelaxNGValidatePopElement()
8456 exec = xmlRelaxNGElemPop(ctxt); in xmlRelaxNGValidatePopElement()
8490 xmlRelaxNGValidateFullElement(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidateFullElement() argument
8497 if ((ctxt == NULL) || (ctxt->pdef == NULL) || (elem == NULL)) in xmlRelaxNGValidateFullElement()
8502 state = xmlRelaxNGNewValidState(ctxt, elem->parent); in xmlRelaxNGValidateFullElement()
8507 ctxt->state = state; in xmlRelaxNGValidateFullElement()
8508 ctxt->errNo = XML_RELAXNG_OK; in xmlRelaxNGValidateFullElement()
8509 ret = xmlRelaxNGValidateDefinition(ctxt, ctxt->pdef); in xmlRelaxNGValidateFullElement()
8510 if ((ret != 0) || (ctxt->errNo != XML_RELAXNG_OK)) in xmlRelaxNGValidateFullElement()
8514 xmlRelaxNGFreeValidState(ctxt, ctxt->state); in xmlRelaxNGValidateFullElement()
8515 ctxt->state = NULL; in xmlRelaxNGValidateFullElement()
8529 static int xmlRelaxNGValidateValue(xmlRelaxNGValidCtxtPtr ctxt,
8542 xmlRelaxNGSkipIgnored(xmlRelaxNGValidCtxtPtr ctxt ATTRIBUTE_UNUSED, in xmlRelaxNGSkipIgnored()
8555 ((ctxt->flags & FLAGS_MIXED_CONTENT) || in xmlRelaxNGSkipIgnored()
8573 xmlRelaxNGNormalize(xmlRelaxNGValidCtxtPtr ctxt, const xmlChar * str) in xmlRelaxNGNormalize() argument
8588 xmlRngVErrMemory(ctxt, "validating\n"); in xmlRelaxNGNormalize()
8620 xmlRelaxNGValidateDatatype(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidateDatatype() argument
8669 oldvalue = ctxt->state->value; in xmlRelaxNGValidateDatatype()
8670 oldendvalue = ctxt->state->endvalue; in xmlRelaxNGValidateDatatype()
8671 ctxt->state->value = (xmlChar *) value; in xmlRelaxNGValidateDatatype()
8672 ctxt->state->endvalue = NULL; in xmlRelaxNGValidateDatatype()
8673 ret = xmlRelaxNGValidateValue(ctxt, define->content); in xmlRelaxNGValidateDatatype()
8674 ctxt->state->value = (xmlChar *) oldvalue; in xmlRelaxNGValidateDatatype()
8675 ctxt->state->endvalue = (xmlChar *) oldendvalue; in xmlRelaxNGValidateDatatype()
8691 xmlRelaxNGNextValue(xmlRelaxNGValidCtxtPtr ctxt) in xmlRelaxNGNextValue() argument
8695 cur = ctxt->state->value; in xmlRelaxNGNextValue()
8696 if ((cur == NULL) || (ctxt->state->endvalue == NULL)) { in xmlRelaxNGNextValue()
8697 ctxt->state->value = NULL; in xmlRelaxNGNextValue()
8698 ctxt->state->endvalue = NULL; in xmlRelaxNGNextValue()
8703 while ((cur != ctxt->state->endvalue) && (*cur == 0)) in xmlRelaxNGNextValue()
8705 if (cur == ctxt->state->endvalue) in xmlRelaxNGNextValue()
8706 ctxt->state->value = NULL; in xmlRelaxNGNextValue()
8708 ctxt->state->value = cur; in xmlRelaxNGNextValue()
8722 xmlRelaxNGValidateValueList(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidateValueList() argument
8728 ret = xmlRelaxNGValidateValue(ctxt, defines); in xmlRelaxNGValidateValueList()
8746 xmlRelaxNGValidateValue(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidateValue() argument
8752 value = ctxt->state->value; in xmlRelaxNGValidateValue()
8777 value, ctxt->state->node); in xmlRelaxNGValidateValue()
8796 nval = xmlRelaxNGNormalize(ctxt, define->value); in xmlRelaxNGValidateValue()
8797 nvalue = xmlRelaxNGNormalize(ctxt, value); in xmlRelaxNGValidateValue()
8809 xmlRelaxNGNextValue(ctxt); in xmlRelaxNGValidateValue()
8813 ret = xmlRelaxNGValidateDatatype(ctxt, value, define, in xmlRelaxNGValidateValue()
8814 ctxt->state->seq); in xmlRelaxNGValidateValue()
8816 xmlRelaxNGNextValue(ctxt); in xmlRelaxNGValidateValue()
8824 oldflags = ctxt->flags; in xmlRelaxNGValidateValue()
8825 ctxt->flags |= FLAGS_IGNORABLE; in xmlRelaxNGValidateValue()
8827 oldvalue = ctxt->state->value; in xmlRelaxNGValidateValue()
8829 ret = xmlRelaxNGValidateValue(ctxt, list); in xmlRelaxNGValidateValue()
8833 ctxt->state->value = oldvalue; in xmlRelaxNGValidateValue()
8836 ctxt->flags = oldflags; in xmlRelaxNGValidateValue()
8838 if ((ctxt->flags & FLAGS_IGNORABLE) == 0) in xmlRelaxNGValidateValue()
8839 xmlRelaxNGDumpValidError(ctxt); in xmlRelaxNGValidateValue()
8841 if (ctxt->errNr > 0) in xmlRelaxNGValidateValue()
8842 xmlRelaxNGPopErrors(ctxt, 0); in xmlRelaxNGValidateValue()
8854 oldvalue = ctxt->state->value; in xmlRelaxNGValidateValue()
8855 oldend = ctxt->state->endvalue; in xmlRelaxNGValidateValue()
8884 ctxt->state->endvalue = cur; in xmlRelaxNGValidateValue()
8886 while ((*cur == 0) && (cur != ctxt->state->endvalue)) in xmlRelaxNGValidateValue()
8889 ctxt->state->value = cur; in xmlRelaxNGValidateValue()
8892 if (ctxt->state->value == ctxt->state->endvalue) in xmlRelaxNGValidateValue()
8893 ctxt->state->value = NULL; in xmlRelaxNGValidateValue()
8894 ret = xmlRelaxNGValidateValue(ctxt, list); in xmlRelaxNGValidateValue()
8899 ctxt->state->value, nb_values); in xmlRelaxNGValidateValue()
8909 if ((ret == 0) && (ctxt->state->value != NULL) && in xmlRelaxNGValidateValue()
8910 (ctxt->state->value != ctxt->state->endvalue)) { in xmlRelaxNGValidateValue()
8912 ctxt->state->value); in xmlRelaxNGValidateValue()
8916 ctxt->state->value = oldvalue; in xmlRelaxNGValidateValue()
8917 ctxt->state->endvalue = oldend; in xmlRelaxNGValidateValue()
8921 ret = xmlRelaxNGValidateValueList(ctxt, define->content); in xmlRelaxNGValidateValue()
8929 if ((ctxt->state->value == NULL) || in xmlRelaxNGValidateValue()
8930 (*ctxt->state->value == 0)) { in xmlRelaxNGValidateValue()
8934 oldflags = ctxt->flags; in xmlRelaxNGValidateValue()
8935 ctxt->flags |= FLAGS_IGNORABLE; in xmlRelaxNGValidateValue()
8936 cur = ctxt->state->value; in xmlRelaxNGValidateValue()
8938 while ((cur != NULL) && (cur != ctxt->state->endvalue) && in xmlRelaxNGValidateValue()
8942 xmlRelaxNGValidateValueList(ctxt, define->content); in xmlRelaxNGValidateValue()
8944 ctxt->state->value = temp; in xmlRelaxNGValidateValue()
8948 cur = ctxt->state->value; in xmlRelaxNGValidateValue()
8950 ctxt->flags = oldflags; in xmlRelaxNGValidateValue()
8951 if (ctxt->errNr > 0) in xmlRelaxNGValidateValue()
8952 xmlRelaxNGPopErrors(ctxt, 0); in xmlRelaxNGValidateValue()
8958 if ((ctxt->state->value == NULL) || in xmlRelaxNGValidateValue()
8959 (*ctxt->state->value == 0)) { in xmlRelaxNGValidateValue()
8963 oldflags = ctxt->flags; in xmlRelaxNGValidateValue()
8964 ctxt->flags |= FLAGS_IGNORABLE; in xmlRelaxNGValidateValue()
8965 temp = ctxt->state->value; in xmlRelaxNGValidateValue()
8966 ret = xmlRelaxNGValidateValue(ctxt, define->content); in xmlRelaxNGValidateValue()
8967 ctxt->flags = oldflags; in xmlRelaxNGValidateValue()
8969 ctxt->state->value = temp; in xmlRelaxNGValidateValue()
8970 if (ctxt->errNr > 0) in xmlRelaxNGValidateValue()
8971 xmlRelaxNGPopErrors(ctxt, 0); in xmlRelaxNGValidateValue()
8975 if (ctxt->errNr > 0) in xmlRelaxNGValidateValue()
8976 xmlRelaxNGPopErrors(ctxt, 0); in xmlRelaxNGValidateValue()
8984 ret = xmlRelaxNGValidateValue(ctxt, list); in xmlRelaxNGValidateValue()
9000 ret = xmlRelaxNGValidateValue(ctxt, list); in xmlRelaxNGValidateValue()
9016 ret = xmlRelaxNGValidateValue(ctxt, define->content); in xmlRelaxNGValidateValue()
9035 xmlRelaxNGValidateValueContent(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidateValueContent() argument
9041 ret = xmlRelaxNGValidateValue(ctxt, defines); in xmlRelaxNGValidateValueContent()
9060 xmlRelaxNGAttributeMatch(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGAttributeMatch() argument
9087 ret = xmlRelaxNGAttributeMatch(ctxt, list, prop); in xmlRelaxNGAttributeMatch()
9099 ret = xmlRelaxNGAttributeMatch(ctxt, list, prop); in xmlRelaxNGAttributeMatch()
9122 xmlRelaxNGValidateAttribute(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidateAttribute() argument
9130 if (ctxt->state->nbAttrLeft <= 0) in xmlRelaxNGValidateAttribute()
9133 for (i = 0; i < ctxt->state->nbAttrs; i++) { in xmlRelaxNGValidateAttribute()
9134 tmp = ctxt->state->attrs[i]; in xmlRelaxNGValidateAttribute()
9147 oldvalue = ctxt->state->value; in xmlRelaxNGValidateAttribute()
9148 oldseq = ctxt->state->seq; in xmlRelaxNGValidateAttribute()
9149 ctxt->state->seq = (xmlNodePtr) prop; in xmlRelaxNGValidateAttribute()
9150 ctxt->state->value = value; in xmlRelaxNGValidateAttribute()
9151 ctxt->state->endvalue = NULL; in xmlRelaxNGValidateAttribute()
9152 ret = xmlRelaxNGValidateValueContent(ctxt, define->content); in xmlRelaxNGValidateAttribute()
9153 if (ctxt->state->value != NULL) in xmlRelaxNGValidateAttribute()
9154 value = ctxt->state->value; in xmlRelaxNGValidateAttribute()
9157 ctxt->state->value = oldvalue; in xmlRelaxNGValidateAttribute()
9158 ctxt->state->seq = oldseq; in xmlRelaxNGValidateAttribute()
9163 ctxt->state->attrs[i] = NULL; in xmlRelaxNGValidateAttribute()
9164 ctxt->state->nbAttrLeft--; in xmlRelaxNGValidateAttribute()
9175 for (i = 0; i < ctxt->state->nbAttrs; i++) { in xmlRelaxNGValidateAttribute()
9176 tmp = ctxt->state->attrs[i]; in xmlRelaxNGValidateAttribute()
9178 (xmlRelaxNGAttributeMatch(ctxt, define, tmp) == 1)) { in xmlRelaxNGValidateAttribute()
9185 oldvalue = ctxt->state->value; in xmlRelaxNGValidateAttribute()
9186 oldseq = ctxt->state->seq; in xmlRelaxNGValidateAttribute()
9187 ctxt->state->seq = (xmlNodePtr) prop; in xmlRelaxNGValidateAttribute()
9188 ctxt->state->value = value; in xmlRelaxNGValidateAttribute()
9189 ret = xmlRelaxNGValidateValueContent(ctxt, define->content); in xmlRelaxNGValidateAttribute()
9190 if (ctxt->state->value != NULL) in xmlRelaxNGValidateAttribute()
9191 value = ctxt->state->value; in xmlRelaxNGValidateAttribute()
9194 ctxt->state->value = oldvalue; in xmlRelaxNGValidateAttribute()
9195 ctxt->state->seq = oldseq; in xmlRelaxNGValidateAttribute()
9200 ctxt->state->attrs[i] = NULL; in xmlRelaxNGValidateAttribute()
9201 ctxt->state->nbAttrLeft--; in xmlRelaxNGValidateAttribute()
9232 xmlRelaxNGValidateAttributeList(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidateAttributeList() argument
9242 if (xmlRelaxNGValidateAttribute(ctxt, cur) != 0) in xmlRelaxNGValidateAttributeList()
9253 if ((ctxt->state != NULL) || (ctxt->states != NULL)) { in xmlRelaxNGValidateAttributeList()
9254 res = xmlRelaxNGValidateDefinition(ctxt, cur); in xmlRelaxNGValidateAttributeList()
9318 xmlRelaxNGValidateInterleave(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidateInterleave() argument
9322 int errNr = ctxt->errNr; in xmlRelaxNGValidateInterleave()
9341 oldflags = ctxt->flags; in xmlRelaxNGValidateInterleave()
9343 ctxt->flags |= FLAGS_MIXED_CONTENT; in xmlRelaxNGValidateInterleave()
9348 if (ctxt->state != NULL) in xmlRelaxNGValidateInterleave()
9349 ctxt->state->seq = xmlRelaxNGSkipIgnored(ctxt, in xmlRelaxNGValidateInterleave()
9350 ctxt->state->seq); in xmlRelaxNGValidateInterleave()
9352 ret = xmlRelaxNGValidateDefinition(ctxt, in xmlRelaxNGValidateInterleave()
9356 ret = xmlRelaxNGValidateDefinition(ctxt, in xmlRelaxNGValidateInterleave()
9360 if (ctxt->state != NULL) in xmlRelaxNGValidateInterleave()
9361 ctxt->state->seq = xmlRelaxNGSkipIgnored(ctxt, in xmlRelaxNGValidateInterleave()
9362 ctxt->state-> in xmlRelaxNGValidateInterleave()
9365 ctxt->flags = oldflags; in xmlRelaxNGValidateInterleave()
9376 xmlRngVErrMemory(ctxt, "validating\n"); in xmlRelaxNGValidateInterleave()
9382 xmlRngVErrMemory(ctxt, "validating\n"); in xmlRelaxNGValidateInterleave()
9391 cur = ctxt->state->seq; in xmlRelaxNGValidateInterleave()
9392 cur = xmlRelaxNGSkipIgnored(ctxt, cur); in xmlRelaxNGValidateInterleave()
9395 ctxt->state->seq = cur; in xmlRelaxNGValidateInterleave()
9458 cur = xmlRelaxNGSkipIgnored(ctxt, cur->next); in xmlRelaxNGValidateInterleave()
9466 oldstate = ctxt->state; in xmlRelaxNGValidateInterleave()
9468 ctxt->state = xmlRelaxNGCopyValidState(ctxt, oldstate); in xmlRelaxNGValidateInterleave()
9469 if (ctxt->state == NULL) { in xmlRelaxNGValidateInterleave()
9478 ctxt->state->seq = list[i]; in xmlRelaxNGValidateInterleave()
9479 ret = xmlRelaxNGValidateDefinition(ctxt, group->rule); in xmlRelaxNGValidateInterleave()
9482 if (ctxt->state != NULL) { in xmlRelaxNGValidateInterleave()
9483 cur = ctxt->state->seq; in xmlRelaxNGValidateInterleave()
9484 cur = xmlRelaxNGSkipIgnored(ctxt, cur); in xmlRelaxNGValidateInterleave()
9485 xmlRelaxNGFreeValidState(ctxt, oldstate); in xmlRelaxNGValidateInterleave()
9486 oldstate = ctxt->state; in xmlRelaxNGValidateInterleave()
9487 ctxt->state = NULL; in xmlRelaxNGValidateInterleave()
9501 ctxt->state = oldstate; in xmlRelaxNGValidateInterleave()
9504 } else if (ctxt->states != NULL) { in xmlRelaxNGValidateInterleave()
9514 for (j = 0; j < ctxt->states->nbState; j++) { in xmlRelaxNGValidateInterleave()
9515 cur = ctxt->states->tabState[j]->seq; in xmlRelaxNGValidateInterleave()
9516 cur = xmlRelaxNGSkipIgnored(ctxt, cur); in xmlRelaxNGValidateInterleave()
9519 lowattr = ctxt->states->tabState[j]->nbAttrLeft; in xmlRelaxNGValidateInterleave()
9523 if (ctxt->states->tabState[j]->nbAttrLeft <= lowattr) { in xmlRelaxNGValidateInterleave()
9525 lowattr = ctxt->states->tabState[j]->nbAttrLeft; in xmlRelaxNGValidateInterleave()
9532 lowattr = ctxt->states->tabState[j]->nbAttrLeft; in xmlRelaxNGValidateInterleave()
9535 if (ctxt->states->tabState[j]->nbAttrLeft <= lowattr) { in xmlRelaxNGValidateInterleave()
9537 lowattr = ctxt->states->tabState[j]->nbAttrLeft; in xmlRelaxNGValidateInterleave()
9545 if (ctxt->states->nbState > 0) { in xmlRelaxNGValidateInterleave()
9546 xmlRelaxNGFreeValidState(ctxt, oldstate); in xmlRelaxNGValidateInterleave()
9548 oldstate = ctxt->states->tabState[best]; in xmlRelaxNGValidateInterleave()
9549 ctxt->states->tabState[best] = NULL; in xmlRelaxNGValidateInterleave()
9552 ctxt->states->tabState[ctxt->states->nbState - 1]; in xmlRelaxNGValidateInterleave()
9553 ctxt->states->tabState[ctxt->states->nbState - 1] = NULL; in xmlRelaxNGValidateInterleave()
9554 ctxt->states->nbState--; in xmlRelaxNGValidateInterleave()
9557 for (j = 0; j < ctxt->states->nbState ; j++) { in xmlRelaxNGValidateInterleave()
9558 xmlRelaxNGFreeValidState(ctxt, ctxt->states->tabState[j]); in xmlRelaxNGValidateInterleave()
9560 xmlRelaxNGFreeStates(ctxt, ctxt->states); in xmlRelaxNGValidateInterleave()
9561 ctxt->states = NULL; in xmlRelaxNGValidateInterleave()
9570 ctxt->state = oldstate; in xmlRelaxNGValidateInterleave()
9581 if (ctxt->state != NULL) in xmlRelaxNGValidateInterleave()
9582 xmlRelaxNGFreeValidState(ctxt, ctxt->state); in xmlRelaxNGValidateInterleave()
9583 ctxt->state = oldstate; in xmlRelaxNGValidateInterleave()
9584 ctxt->state->seq = lastelem; in xmlRelaxNGValidateInterleave()
9592 ctxt->flags = oldflags; in xmlRelaxNGValidateInterleave()
9604 if (ctxt->errNr > errNr) in xmlRelaxNGValidateInterleave()
9605 xmlRelaxNGPopErrors(ctxt, errNr); in xmlRelaxNGValidateInterleave()
9623 xmlRelaxNGValidateDefinitionList(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidateDefinitionList() argument
9635 if ((ctxt->state != NULL) || (ctxt->states != NULL)) { in xmlRelaxNGValidateDefinitionList()
9636 res = xmlRelaxNGValidateDefinition(ctxt, defines); in xmlRelaxNGValidateDefinitionList()
9662 xmlRelaxNGElementMatch(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGElementMatch() argument
9698 if (ctxt != NULL) { in xmlRelaxNGElementMatch()
9699 oldflags = ctxt->flags; in xmlRelaxNGElementMatch()
9700 ctxt->flags |= FLAGS_IGNORABLE; in xmlRelaxNGElementMatch()
9705 ret = xmlRelaxNGElementMatch(ctxt, list, elem); in xmlRelaxNGElementMatch()
9707 if (ctxt != NULL) in xmlRelaxNGElementMatch()
9708 ctxt->flags = oldflags; in xmlRelaxNGElementMatch()
9712 if (ctxt != NULL) in xmlRelaxNGElementMatch()
9713 ctxt->flags = oldflags; in xmlRelaxNGElementMatch()
9719 if (ctxt != NULL) { in xmlRelaxNGElementMatch()
9720 ctxt->flags = oldflags; in xmlRelaxNGElementMatch()
9725 if (ctxt != NULL) { in xmlRelaxNGElementMatch()
9726 oldflags = ctxt->flags; in xmlRelaxNGElementMatch()
9727 ctxt->flags |= FLAGS_IGNORABLE; in xmlRelaxNGElementMatch()
9732 ret = xmlRelaxNGElementMatch(ctxt, list, elem); in xmlRelaxNGElementMatch()
9734 if (ctxt != NULL) in xmlRelaxNGElementMatch()
9735 ctxt->flags = oldflags; in xmlRelaxNGElementMatch()
9739 if (ctxt != NULL) in xmlRelaxNGElementMatch()
9740 ctxt->flags = oldflags; in xmlRelaxNGElementMatch()
9745 if (ctxt != NULL) { in xmlRelaxNGElementMatch()
9747 if ((ctxt->flags & FLAGS_IGNORABLE) == 0) in xmlRelaxNGElementMatch()
9748 xmlRelaxNGDumpValidError(ctxt); in xmlRelaxNGElementMatch()
9750 if (ctxt->errNr > 0) in xmlRelaxNGElementMatch()
9751 xmlRelaxNGPopErrors(ctxt, 0); in xmlRelaxNGElementMatch()
9755 if (ctxt != NULL) { in xmlRelaxNGElementMatch()
9756 ctxt->flags = oldflags; in xmlRelaxNGElementMatch()
9776 xmlRelaxNGBestState(xmlRelaxNGValidCtxtPtr ctxt) in xmlRelaxNGBestState() argument
9783 if ((ctxt == NULL) || (ctxt->states == NULL) || in xmlRelaxNGBestState()
9784 (ctxt->states->nbState <= 0)) in xmlRelaxNGBestState()
9787 for (i = 0; i < ctxt->states->nbState; i++) { in xmlRelaxNGBestState()
9788 state = ctxt->states->tabState[i]; in xmlRelaxNGBestState()
9815 xmlRelaxNGLogBestError(xmlRelaxNGValidCtxtPtr ctxt) in xmlRelaxNGLogBestError() argument
9819 if ((ctxt == NULL) || (ctxt->states == NULL) || in xmlRelaxNGLogBestError()
9820 (ctxt->states->nbState <= 0)) in xmlRelaxNGLogBestError()
9823 best = xmlRelaxNGBestState(ctxt); in xmlRelaxNGLogBestError()
9824 if ((best >= 0) && (best < ctxt->states->nbState)) { in xmlRelaxNGLogBestError()
9825 ctxt->state = ctxt->states->tabState[best]; in xmlRelaxNGLogBestError()
9827 xmlRelaxNGValidateElementEnd(ctxt, 1); in xmlRelaxNGLogBestError()
9843 xmlRelaxNGValidateElementEnd(xmlRelaxNGValidCtxtPtr ctxt, int dolog) in xmlRelaxNGValidateElementEnd() argument
9848 state = ctxt->state; in xmlRelaxNGValidateElementEnd()
9850 state->seq = xmlRelaxNGSkipIgnored(ctxt, state->seq); in xmlRelaxNGValidateElementEnd()
9881 xmlRelaxNGValidateState(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidateState() argument
9893 if (ctxt->state != NULL) { in xmlRelaxNGValidateState()
9894 node = ctxt->state->seq; in xmlRelaxNGValidateState()
9899 for (i = 0; i < ctxt->depth; i++) in xmlRelaxNGValidateState()
9910 ctxt->depth++; in xmlRelaxNGValidateState()
9925 ctxt->state->seq = node; in xmlRelaxNGValidateState()
9928 errNr = ctxt->errNr; in xmlRelaxNGValidateState()
9929 node = xmlRelaxNGSkipIgnored(ctxt, node); in xmlRelaxNGValidateState()
9933 if ((ctxt->flags & FLAGS_IGNORABLE) == 0) in xmlRelaxNGValidateState()
9934 xmlRelaxNGDumpValidError(ctxt); in xmlRelaxNGValidateState()
9940 if ((ctxt->flags & FLAGS_IGNORABLE) == 0) in xmlRelaxNGValidateState()
9941 xmlRelaxNGDumpValidError(ctxt); in xmlRelaxNGValidateState()
9949 ctxt->state->seq = xmlRelaxNGSkipIgnored(ctxt, node->next); in xmlRelaxNGValidateState()
9950 if (ctxt->errNr > errNr) in xmlRelaxNGValidateState()
9951 xmlRelaxNGPopErrors(ctxt, errNr); in xmlRelaxNGValidateState()
9952 if (ctxt->errNr != 0) { in xmlRelaxNGValidateState()
9953 while ((ctxt->err != NULL) && in xmlRelaxNGValidateState()
9954 (((ctxt->err->err == XML_RELAXNG_ERR_ELEMNAME) in xmlRelaxNGValidateState()
9955 && (xmlStrEqual(ctxt->err->arg2, node->name))) in xmlRelaxNGValidateState()
9957 ((ctxt->err->err == in xmlRelaxNGValidateState()
9959 && (xmlStrEqual(ctxt->err->arg1, node->name))) in xmlRelaxNGValidateState()
9960 || (ctxt->err->err == XML_RELAXNG_ERR_NOELEM) in xmlRelaxNGValidateState()
9961 || (ctxt->err->err == in xmlRelaxNGValidateState()
9963 xmlRelaxNGValidErrorPop(ctxt); in xmlRelaxNGValidateState()
9968 ret = xmlRelaxNGElementMatch(ctxt, define, node); in xmlRelaxNGValidateState()
9971 if ((ctxt->flags & FLAGS_IGNORABLE) == 0) in xmlRelaxNGValidateState()
9972 xmlRelaxNGDumpValidError(ctxt); in xmlRelaxNGValidateState()
9976 if (ctxt->errNr != 0) { in xmlRelaxNGValidateState()
9977 if (ctxt->errNr > errNr) in xmlRelaxNGValidateState()
9978 xmlRelaxNGPopErrors(ctxt, errNr); in xmlRelaxNGValidateState()
9979 while ((ctxt->err != NULL) && in xmlRelaxNGValidateState()
9980 (((ctxt->err->err == XML_RELAXNG_ERR_ELEMNAME) && in xmlRelaxNGValidateState()
9981 (xmlStrEqual(ctxt->err->arg2, node->name))) || in xmlRelaxNGValidateState()
9982 ((ctxt->err->err == XML_RELAXNG_ERR_ELEMEXTRANS) && in xmlRelaxNGValidateState()
9983 (xmlStrEqual(ctxt->err->arg1, node->name))) || in xmlRelaxNGValidateState()
9984 (ctxt->err->err == XML_RELAXNG_ERR_NOELEM) || in xmlRelaxNGValidateState()
9985 (ctxt->err->err == XML_RELAXNG_ERR_NOTELEM))) in xmlRelaxNGValidateState()
9986 xmlRelaxNGValidErrorPop(ctxt); in xmlRelaxNGValidateState()
9988 errNr = ctxt->errNr; in xmlRelaxNGValidateState()
9990 oldflags = ctxt->flags; in xmlRelaxNGValidateState()
9991 if (ctxt->flags & FLAGS_MIXED_CONTENT) { in xmlRelaxNGValidateState()
9992 ctxt->flags -= FLAGS_MIXED_CONTENT; in xmlRelaxNGValidateState()
9994 state = xmlRelaxNGNewValidState(ctxt, node); in xmlRelaxNGValidateState()
9997 if ((ctxt->flags & FLAGS_IGNORABLE) == 0) in xmlRelaxNGValidateState()
9998 xmlRelaxNGDumpValidError(ctxt); in xmlRelaxNGValidateState()
10002 oldstate = ctxt->state; in xmlRelaxNGValidateState()
10003 ctxt->state = state; in xmlRelaxNGValidateState()
10005 tmp = xmlRelaxNGValidateAttributeList(ctxt, define->attrs); in xmlRelaxNGValidateState()
10012 xmlRelaxNGValidStatePtr nstate, tmpstate = ctxt->state; in xmlRelaxNGValidateState()
10013 xmlRelaxNGStatesPtr tmpstates = ctxt->states; in xmlRelaxNGValidateState()
10016 nstate = xmlRelaxNGNewValidState(ctxt, node); in xmlRelaxNGValidateState()
10017 ctxt->state = nstate; in xmlRelaxNGValidateState()
10018 ctxt->states = NULL; in xmlRelaxNGValidateState()
10020 tmp = xmlRelaxNGValidateCompiledContent(ctxt, in xmlRelaxNGValidateState()
10022 ctxt->state->seq); in xmlRelaxNGValidateState()
10023 nseq = ctxt->state->seq; in xmlRelaxNGValidateState()
10024 ctxt->state = tmpstate; in xmlRelaxNGValidateState()
10025 ctxt->states = tmpstates; in xmlRelaxNGValidateState()
10026 xmlRelaxNGFreeValidState(ctxt, nstate); in xmlRelaxNGValidateState()
10036 if (ctxt->states != NULL) { in xmlRelaxNGValidateState()
10039 for (i = 0; i < ctxt->states->nbState; i++) { in xmlRelaxNGValidateState()
10040 state = ctxt->states->tabState[i]; in xmlRelaxNGValidateState()
10041 ctxt->state = state; in xmlRelaxNGValidateState()
10042 ctxt->state->seq = nseq; in xmlRelaxNGValidateState()
10044 if (xmlRelaxNGValidateElementEnd(ctxt, 0) == 0) { in xmlRelaxNGValidateState()
10053 ctxt->flags |= FLAGS_IGNORABLE; in xmlRelaxNGValidateState()
10054 xmlRelaxNGLogBestError(ctxt); in xmlRelaxNGValidateState()
10056 for (i = 0; i < ctxt->states->nbState; i++) { in xmlRelaxNGValidateState()
10057 xmlRelaxNGFreeValidState(ctxt, in xmlRelaxNGValidateState()
10058 ctxt->states-> in xmlRelaxNGValidateState()
10061 xmlRelaxNGFreeStates(ctxt, ctxt->states); in xmlRelaxNGValidateState()
10062 ctxt->flags = oldflags; in xmlRelaxNGValidateState()
10063 ctxt->states = NULL; in xmlRelaxNGValidateState()
10067 state = ctxt->state; in xmlRelaxNGValidateState()
10068 if (ctxt->state != NULL) in xmlRelaxNGValidateState()
10069 ctxt->state->seq = nseq; in xmlRelaxNGValidateState()
10071 ret = xmlRelaxNGValidateElementEnd(ctxt, 1); in xmlRelaxNGValidateState()
10072 xmlRelaxNGFreeValidState(ctxt, state); in xmlRelaxNGValidateState()
10076 tmp = xmlRelaxNGValidateDefinitionList(ctxt, in xmlRelaxNGValidateState()
10081 if (ctxt->state == NULL) { in xmlRelaxNGValidateState()
10082 ctxt->state = oldstate; in xmlRelaxNGValidateState()
10085 ctxt->state = NULL; in xmlRelaxNGValidateState()
10093 if (ctxt->states != NULL) { in xmlRelaxNGValidateState()
10096 for (i = 0; i < ctxt->states->nbState; i++) { in xmlRelaxNGValidateState()
10097 state = ctxt->states->tabState[i]; in xmlRelaxNGValidateState()
10098 ctxt->state = state; in xmlRelaxNGValidateState()
10100 if (xmlRelaxNGValidateElementEnd(ctxt, 0) == 0) { in xmlRelaxNGValidateState()
10109 ctxt->flags |= FLAGS_IGNORABLE; in xmlRelaxNGValidateState()
10110 xmlRelaxNGLogBestError(ctxt); in xmlRelaxNGValidateState()
10112 for (i = 0; i < ctxt->states->nbState; i++) { in xmlRelaxNGValidateState()
10113 xmlRelaxNGFreeValidState(ctxt, in xmlRelaxNGValidateState()
10114 ctxt->states->tabState[i]); in xmlRelaxNGValidateState()
10115 ctxt->states->tabState[i] = NULL; in xmlRelaxNGValidateState()
10117 xmlRelaxNGFreeStates(ctxt, ctxt->states); in xmlRelaxNGValidateState()
10118 ctxt->flags = oldflags; in xmlRelaxNGValidateState()
10119 ctxt->states = NULL; in xmlRelaxNGValidateState()
10123 state = ctxt->state; in xmlRelaxNGValidateState()
10125 ret = xmlRelaxNGValidateElementEnd(ctxt, 1); in xmlRelaxNGValidateState()
10126 xmlRelaxNGFreeValidState(ctxt, state); in xmlRelaxNGValidateState()
10132 ctxt->flags = oldflags; in xmlRelaxNGValidateState()
10133 ctxt->state = oldstate; in xmlRelaxNGValidateState()
10135 oldstate->seq = xmlRelaxNGSkipIgnored(ctxt, node->next); in xmlRelaxNGValidateState()
10137 if ((ctxt->flags & FLAGS_IGNORABLE) == 0) { in xmlRelaxNGValidateState()
10138 xmlRelaxNGDumpValidError(ctxt); in xmlRelaxNGValidateState()
10146 if (ctxt->errNr > errNr) in xmlRelaxNGValidateState()
10147 xmlRelaxNGPopErrors(ctxt, errNr); in xmlRelaxNGValidateState()
10167 errNr = ctxt->errNr; in xmlRelaxNGValidateState()
10168 oldflags = ctxt->flags; in xmlRelaxNGValidateState()
10169 ctxt->flags |= FLAGS_IGNORABLE; in xmlRelaxNGValidateState()
10170 oldstate = xmlRelaxNGCopyValidState(ctxt, ctxt->state); in xmlRelaxNGValidateState()
10172 xmlRelaxNGValidateDefinitionList(ctxt, in xmlRelaxNGValidateState()
10175 if (ctxt->state != NULL) in xmlRelaxNGValidateState()
10176 xmlRelaxNGFreeValidState(ctxt, ctxt->state); in xmlRelaxNGValidateState()
10177 ctxt->state = oldstate; in xmlRelaxNGValidateState()
10178 ctxt->flags = oldflags; in xmlRelaxNGValidateState()
10180 if (ctxt->errNr > errNr) in xmlRelaxNGValidateState()
10181 xmlRelaxNGPopErrors(ctxt, errNr); in xmlRelaxNGValidateState()
10184 if (ctxt->states != NULL) { in xmlRelaxNGValidateState()
10185 xmlRelaxNGAddStates(ctxt, ctxt->states, oldstate); in xmlRelaxNGValidateState()
10187 ctxt->states = xmlRelaxNGNewStates(ctxt, 1); in xmlRelaxNGValidateState()
10188 if (ctxt->states == NULL) { in xmlRelaxNGValidateState()
10189 xmlRelaxNGFreeValidState(ctxt, oldstate); in xmlRelaxNGValidateState()
10190 ctxt->flags = oldflags; in xmlRelaxNGValidateState()
10192 if (ctxt->errNr > errNr) in xmlRelaxNGValidateState()
10193 xmlRelaxNGPopErrors(ctxt, errNr); in xmlRelaxNGValidateState()
10196 xmlRelaxNGAddStates(ctxt, ctxt->states, oldstate); in xmlRelaxNGValidateState()
10197 xmlRelaxNGAddStates(ctxt, ctxt->states, ctxt->state); in xmlRelaxNGValidateState()
10198 ctxt->state = NULL; in xmlRelaxNGValidateState()
10200 ctxt->flags = oldflags; in xmlRelaxNGValidateState()
10202 if (ctxt->errNr > errNr) in xmlRelaxNGValidateState()
10203 xmlRelaxNGPopErrors(ctxt, errNr); in xmlRelaxNGValidateState()
10207 errNr = ctxt->errNr; in xmlRelaxNGValidateState()
10208 ret = xmlRelaxNGValidateDefinitionList(ctxt, define->content); in xmlRelaxNGValidateState()
10212 if (ctxt->errNr > errNr) in xmlRelaxNGValidateState()
10213 xmlRelaxNGPopErrors(ctxt, errNr); in xmlRelaxNGValidateState()
10220 errNr = ctxt->errNr; in xmlRelaxNGValidateState()
10221 res = xmlRelaxNGNewStates(ctxt, 1); in xmlRelaxNGValidateState()
10229 if (ctxt->state != NULL) { in xmlRelaxNGValidateState()
10230 xmlRelaxNGAddStates(ctxt, res, in xmlRelaxNGValidateState()
10231 xmlRelaxNGCopyValidState(ctxt, in xmlRelaxNGValidateState()
10232 ctxt-> in xmlRelaxNGValidateState()
10235 for (j = 0; j < ctxt->states->nbState; j++) { in xmlRelaxNGValidateState()
10236 xmlRelaxNGAddStates(ctxt, res, in xmlRelaxNGValidateState()
10237 xmlRelaxNGCopyValidState(ctxt, in xmlRelaxNGValidateState()
10238 ctxt->states->tabState[j])); in xmlRelaxNGValidateState()
10241 oldflags = ctxt->flags; in xmlRelaxNGValidateState()
10242 ctxt->flags |= FLAGS_IGNORABLE; in xmlRelaxNGValidateState()
10247 if (ctxt->states != NULL) { in xmlRelaxNGValidateState()
10248 states = ctxt->states; in xmlRelaxNGValidateState()
10250 ctxt->state = states->tabState[i]; in xmlRelaxNGValidateState()
10251 ctxt->states = NULL; in xmlRelaxNGValidateState()
10252 ret = xmlRelaxNGValidateDefinitionList(ctxt, in xmlRelaxNGValidateState()
10256 if (ctxt->state != NULL) { in xmlRelaxNGValidateState()
10257 tmp = xmlRelaxNGAddStates(ctxt, res, in xmlRelaxNGValidateState()
10258 ctxt->state); in xmlRelaxNGValidateState()
10259 ctxt->state = NULL; in xmlRelaxNGValidateState()
10262 } else if (ctxt->states != NULL) { in xmlRelaxNGValidateState()
10263 for (j = 0; j < ctxt->states->nbState; in xmlRelaxNGValidateState()
10266 xmlRelaxNGAddStates(ctxt, res, in xmlRelaxNGValidateState()
10267 ctxt->states->tabState[j]); in xmlRelaxNGValidateState()
10271 xmlRelaxNGFreeStates(ctxt, in xmlRelaxNGValidateState()
10272 ctxt->states); in xmlRelaxNGValidateState()
10273 ctxt->states = NULL; in xmlRelaxNGValidateState()
10276 if (ctxt->state != NULL) { in xmlRelaxNGValidateState()
10277 xmlRelaxNGFreeValidState(ctxt, in xmlRelaxNGValidateState()
10278 ctxt->state); in xmlRelaxNGValidateState()
10279 ctxt->state = NULL; in xmlRelaxNGValidateState()
10284 ret = xmlRelaxNGValidateDefinitionList(ctxt, in xmlRelaxNGValidateState()
10288 xmlRelaxNGFreeValidState(ctxt, ctxt->state); in xmlRelaxNGValidateState()
10289 ctxt->state = NULL; in xmlRelaxNGValidateState()
10292 if (ctxt->state != NULL) { in xmlRelaxNGValidateState()
10293 tmp = xmlRelaxNGAddStates(ctxt, res, in xmlRelaxNGValidateState()
10294 ctxt->state); in xmlRelaxNGValidateState()
10295 ctxt->state = NULL; in xmlRelaxNGValidateState()
10298 } else if (ctxt->states != NULL) { in xmlRelaxNGValidateState()
10299 for (j = 0; j < ctxt->states->nbState; j++) { in xmlRelaxNGValidateState()
10300 tmp = xmlRelaxNGAddStates(ctxt, res, in xmlRelaxNGValidateState()
10301 ctxt->states->tabState[j]); in xmlRelaxNGValidateState()
10306 states = ctxt->states; in xmlRelaxNGValidateState()
10308 xmlRelaxNGFreeStates(ctxt, in xmlRelaxNGValidateState()
10309 ctxt->states); in xmlRelaxNGValidateState()
10311 ctxt->states = NULL; in xmlRelaxNGValidateState()
10321 ctxt->state = xmlRelaxNGCopyValidState(ctxt, in xmlRelaxNGValidateState()
10327 xmlRelaxNGNewStates(ctxt, in xmlRelaxNGValidateState()
10329 states = ctxt->states; in xmlRelaxNGValidateState()
10337 xmlRelaxNGAddStates(ctxt, states, in xmlRelaxNGValidateState()
10339 (ctxt, res->tabState[i])); in xmlRelaxNGValidateState()
10340 ctxt->states = states; in xmlRelaxNGValidateState()
10345 xmlRelaxNGFreeStates(ctxt, states); in xmlRelaxNGValidateState()
10347 ctxt->states = res; in xmlRelaxNGValidateState()
10348 ctxt->flags = oldflags; in xmlRelaxNGValidateState()
10353 if (ctxt->errNr > errNr) in xmlRelaxNGValidateState()
10354 xmlRelaxNGPopErrors(ctxt, errNr); in xmlRelaxNGValidateState()
10363 node = xmlRelaxNGSkipIgnored(ctxt, node); in xmlRelaxNGValidateState()
10365 errNr = ctxt->errNr; in xmlRelaxNGValidateState()
10405 ret = xmlRelaxNGValidateDefinition(ctxt, list); in xmlRelaxNGValidateState()
10412 oldflags = ctxt->flags; in xmlRelaxNGValidateState()
10413 ctxt->flags |= FLAGS_IGNORABLE; in xmlRelaxNGValidateState()
10416 oldstate = xmlRelaxNGCopyValidState(ctxt, ctxt->state); in xmlRelaxNGValidateState()
10417 ret = xmlRelaxNGValidateDefinition(ctxt, list); in xmlRelaxNGValidateState()
10420 states = xmlRelaxNGNewStates(ctxt, 1); in xmlRelaxNGValidateState()
10422 if (ctxt->state != NULL) { in xmlRelaxNGValidateState()
10423 xmlRelaxNGAddStates(ctxt, states, ctxt->state); in xmlRelaxNGValidateState()
10424 } else if (ctxt->states != NULL) { in xmlRelaxNGValidateState()
10425 for (i = 0; i < ctxt->states->nbState; i++) { in xmlRelaxNGValidateState()
10426 xmlRelaxNGAddStates(ctxt, states, in xmlRelaxNGValidateState()
10427 ctxt->states-> in xmlRelaxNGValidateState()
10430 xmlRelaxNGFreeStates(ctxt, ctxt->states); in xmlRelaxNGValidateState()
10431 ctxt->states = NULL; in xmlRelaxNGValidateState()
10434 xmlRelaxNGFreeValidState(ctxt, ctxt->state); in xmlRelaxNGValidateState()
10436 ctxt->state = oldstate; in xmlRelaxNGValidateState()
10440 xmlRelaxNGFreeValidState(ctxt, oldstate); in xmlRelaxNGValidateState()
10441 ctxt->states = states; in xmlRelaxNGValidateState()
10442 ctxt->state = NULL; in xmlRelaxNGValidateState()
10445 ctxt->states = NULL; in xmlRelaxNGValidateState()
10447 ctxt->flags = oldflags; in xmlRelaxNGValidateState()
10449 if ((ctxt->flags & FLAGS_IGNORABLE) == 0) { in xmlRelaxNGValidateState()
10450 xmlRelaxNGDumpValidError(ctxt); in xmlRelaxNGValidateState()
10453 if (ctxt->errNr > errNr) in xmlRelaxNGValidateState()
10454 xmlRelaxNGPopErrors(ctxt, errNr); in xmlRelaxNGValidateState()
10460 ret = xmlRelaxNGValidateDefinitionList(ctxt, define->content); in xmlRelaxNGValidateState()
10463 ret = xmlRelaxNGValidateInterleave(ctxt, define); in xmlRelaxNGValidateState()
10466 ret = xmlRelaxNGValidateAttribute(ctxt, define); in xmlRelaxNGValidateState()
10473 ret = xmlRelaxNGValidateDefinition(ctxt, define->content); in xmlRelaxNGValidateState()
10501 xmlRngVErrMemory(ctxt, "validating\n"); in xmlRelaxNGValidateState()
10506 ret = xmlRelaxNGValidateDatatype(ctxt, content, define, in xmlRelaxNGValidateState()
10507 ctxt->state->seq); in xmlRelaxNGValidateState()
10511 ctxt->state->seq = NULL; in xmlRelaxNGValidateState()
10544 xmlRngVErrMemory(ctxt, "validating\n"); in xmlRelaxNGValidateState()
10549 oldvalue = ctxt->state->value; in xmlRelaxNGValidateState()
10550 ctxt->state->value = content; in xmlRelaxNGValidateState()
10551 ret = xmlRelaxNGValidateValue(ctxt, define); in xmlRelaxNGValidateState()
10552 ctxt->state->value = oldvalue; in xmlRelaxNGValidateState()
10556 ctxt->state->seq = NULL; in xmlRelaxNGValidateState()
10595 xmlRngVErrMemory(ctxt, "validating\n"); in xmlRelaxNGValidateState()
10601 oldvalue = ctxt->state->value; in xmlRelaxNGValidateState()
10602 oldendvalue = ctxt->state->endvalue; in xmlRelaxNGValidateState()
10603 ctxt->state->value = content; in xmlRelaxNGValidateState()
10604 ctxt->state->endvalue = content + len; in xmlRelaxNGValidateState()
10605 ret = xmlRelaxNGValidateValue(ctxt, define); in xmlRelaxNGValidateState()
10606 ctxt->state->value = oldvalue; in xmlRelaxNGValidateState()
10607 ctxt->state->endvalue = oldendvalue; in xmlRelaxNGValidateState()
10611 ctxt->state->seq = node->next; in xmlRelaxNGValidateState()
10622 ctxt->depth--; in xmlRelaxNGValidateState()
10624 for (i = 0; i < ctxt->depth; i++) in xmlRelaxNGValidateState()
10648 xmlRelaxNGValidateDefinition(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGValidateDefinition() argument
10657 if ((ctxt->state != NULL) && (ctxt->states != NULL)) { in xmlRelaxNGValidateDefinition()
10658 TODO xmlRelaxNGFreeValidState(ctxt, ctxt->state); in xmlRelaxNGValidateDefinition()
10659 ctxt->state = NULL; in xmlRelaxNGValidateDefinition()
10662 if ((ctxt->states == NULL) || (ctxt->states->nbState == 1)) { in xmlRelaxNGValidateDefinition()
10663 if (ctxt->states != NULL) { in xmlRelaxNGValidateDefinition()
10664 ctxt->state = ctxt->states->tabState[0]; in xmlRelaxNGValidateDefinition()
10665 xmlRelaxNGFreeStates(ctxt, ctxt->states); in xmlRelaxNGValidateDefinition()
10666 ctxt->states = NULL; in xmlRelaxNGValidateDefinition()
10668 ret = xmlRelaxNGValidateState(ctxt, define); in xmlRelaxNGValidateDefinition()
10669 if ((ctxt->state != NULL) && (ctxt->states != NULL)) { in xmlRelaxNGValidateDefinition()
10670 TODO xmlRelaxNGFreeValidState(ctxt, ctxt->state); in xmlRelaxNGValidateDefinition()
10671 ctxt->state = NULL; in xmlRelaxNGValidateDefinition()
10673 if ((ctxt->states != NULL) && (ctxt->states->nbState == 1)) { in xmlRelaxNGValidateDefinition()
10674 ctxt->state = ctxt->states->tabState[0]; in xmlRelaxNGValidateDefinition()
10675 xmlRelaxNGFreeStates(ctxt, ctxt->states); in xmlRelaxNGValidateDefinition()
10676 ctxt->states = NULL; in xmlRelaxNGValidateDefinition()
10681 states = ctxt->states; in xmlRelaxNGValidateDefinition()
10682 ctxt->states = NULL; in xmlRelaxNGValidateDefinition()
10685 oldflags = ctxt->flags; in xmlRelaxNGValidateDefinition()
10686 ctxt->flags |= FLAGS_IGNORABLE; in xmlRelaxNGValidateDefinition()
10688 ctxt->state = states->tabState[i]; in xmlRelaxNGValidateDefinition()
10689 ctxt->states = NULL; in xmlRelaxNGValidateDefinition()
10690 ret = xmlRelaxNGValidateState(ctxt, define); in xmlRelaxNGValidateDefinition()
10694 if ((ctxt->state != NULL) && (ctxt->states != NULL)) { in xmlRelaxNGValidateDefinition()
10695 TODO xmlRelaxNGFreeValidState(ctxt, ctxt->state); in xmlRelaxNGValidateDefinition()
10696 ctxt->state = NULL; in xmlRelaxNGValidateDefinition()
10699 if (ctxt->states == NULL) { in xmlRelaxNGValidateDefinition()
10702 xmlRelaxNGAddStates(ctxt, res, ctxt->state); in xmlRelaxNGValidateDefinition()
10703 ctxt->state = NULL; in xmlRelaxNGValidateDefinition()
10706 states->tabState[j++] = ctxt->state; in xmlRelaxNGValidateDefinition()
10707 ctxt->state = NULL; in xmlRelaxNGValidateDefinition()
10712 res = ctxt->states; in xmlRelaxNGValidateDefinition()
10713 ctxt->states = NULL; in xmlRelaxNGValidateDefinition()
10715 xmlRelaxNGAddStates(ctxt, res, in xmlRelaxNGValidateDefinition()
10719 for (k = 0; k < ctxt->states->nbState; k++) in xmlRelaxNGValidateDefinition()
10720 xmlRelaxNGAddStates(ctxt, res, in xmlRelaxNGValidateDefinition()
10721 ctxt->states->tabState[k]); in xmlRelaxNGValidateDefinition()
10722 xmlRelaxNGFreeStates(ctxt, ctxt->states); in xmlRelaxNGValidateDefinition()
10723 ctxt->states = NULL; in xmlRelaxNGValidateDefinition()
10727 if (ctxt->state != NULL) { in xmlRelaxNGValidateDefinition()
10728 xmlRelaxNGFreeValidState(ctxt, ctxt->state); in xmlRelaxNGValidateDefinition()
10729 ctxt->state = NULL; in xmlRelaxNGValidateDefinition()
10730 } else if (ctxt->states != NULL) { in xmlRelaxNGValidateDefinition()
10731 for (k = 0; k < ctxt->states->nbState; k++) in xmlRelaxNGValidateDefinition()
10732 xmlRelaxNGFreeValidState(ctxt, in xmlRelaxNGValidateDefinition()
10733 ctxt->states->tabState[k]); in xmlRelaxNGValidateDefinition()
10734 xmlRelaxNGFreeStates(ctxt, ctxt->states); in xmlRelaxNGValidateDefinition()
10735 ctxt->states = NULL; in xmlRelaxNGValidateDefinition()
10739 ctxt->flags = oldflags; in xmlRelaxNGValidateDefinition()
10741 xmlRelaxNGFreeStates(ctxt, states); in xmlRelaxNGValidateDefinition()
10742 ctxt->states = res; in xmlRelaxNGValidateDefinition()
10746 ctxt->states = states; in xmlRelaxNGValidateDefinition()
10749 ctxt->state = states->tabState[0]; in xmlRelaxNGValidateDefinition()
10750 xmlRelaxNGFreeStates(ctxt, states); in xmlRelaxNGValidateDefinition()
10754 xmlRelaxNGFreeStates(ctxt, states); in xmlRelaxNGValidateDefinition()
10755 if (ctxt->states != NULL) { in xmlRelaxNGValidateDefinition()
10756 xmlRelaxNGFreeStates(ctxt, ctxt->states); in xmlRelaxNGValidateDefinition()
10757 ctxt->states = NULL; in xmlRelaxNGValidateDefinition()
10760 if ((ctxt->state != NULL) && (ctxt->states != NULL)) { in xmlRelaxNGValidateDefinition()
10761 TODO xmlRelaxNGFreeValidState(ctxt, ctxt->state); in xmlRelaxNGValidateDefinition()
10762 ctxt->state = NULL; in xmlRelaxNGValidateDefinition()
10777 xmlRelaxNGValidateDocument(xmlRelaxNGValidCtxtPtr ctxt, xmlDocPtr doc) in xmlRelaxNGValidateDocument() argument
10785 if ((ctxt == NULL) || (ctxt->schema == NULL) || (doc == NULL)) in xmlRelaxNGValidateDocument()
10788 ctxt->errNo = XML_RELAXNG_OK; in xmlRelaxNGValidateDocument()
10789 schema = ctxt->schema; in xmlRelaxNGValidateDocument()
10795 state = xmlRelaxNGNewValidState(ctxt, NULL); in xmlRelaxNGValidateDocument()
10796 ctxt->state = state; in xmlRelaxNGValidateDocument()
10797 ret = xmlRelaxNGValidateDefinition(ctxt, grammar->start); in xmlRelaxNGValidateDocument()
10798 if ((ctxt->state != NULL) && (state->seq != NULL)) { in xmlRelaxNGValidateDocument()
10799 state = ctxt->state; in xmlRelaxNGValidateDocument()
10801 node = xmlRelaxNGSkipIgnored(ctxt, node); in xmlRelaxNGValidateDocument()
10808 } else if (ctxt->states != NULL) { in xmlRelaxNGValidateDocument()
10812 for (i = 0; i < ctxt->states->nbState; i++) { in xmlRelaxNGValidateDocument()
10813 state = ctxt->states->tabState[i]; in xmlRelaxNGValidateDocument()
10815 node = xmlRelaxNGSkipIgnored(ctxt, node); in xmlRelaxNGValidateDocument()
10818 xmlRelaxNGFreeValidState(ctxt, state); in xmlRelaxNGValidateDocument()
10827 if (ctxt->state != NULL) { in xmlRelaxNGValidateDocument()
10828 xmlRelaxNGFreeValidState(ctxt, ctxt->state); in xmlRelaxNGValidateDocument()
10829 ctxt->state = NULL; in xmlRelaxNGValidateDocument()
10832 xmlRelaxNGDumpValidError(ctxt); in xmlRelaxNGValidateDocument()
10834 else if (ctxt->errNr != 0) { in xmlRelaxNGValidateDocument()
10835 ctxt->error(ctxt->userData, in xmlRelaxNGValidateDocument()
10837 ctxt->errNr); in xmlRelaxNGValidateDocument()
10838 xmlRelaxNGDumpValidError(ctxt); in xmlRelaxNGValidateDocument()
10842 if (ctxt->idref == 1) { in xmlRelaxNGValidateDocument()
10847 vctxt.error = ctxt->error; in xmlRelaxNGValidateDocument()
10848 vctxt.warning = ctxt->warning; in xmlRelaxNGValidateDocument()
10849 vctxt.userData = ctxt->userData; in xmlRelaxNGValidateDocument()
10855 if ((ret == 0) && (ctxt->errNo != XML_RELAXNG_OK)) in xmlRelaxNGValidateDocument()
10963 xmlRelaxNGFreeValidCtxt(xmlRelaxNGValidCtxtPtr ctxt) in xmlRelaxNGFreeValidCtxt() argument
10967 if (ctxt == NULL) in xmlRelaxNGFreeValidCtxt()
10969 if (ctxt->states != NULL) in xmlRelaxNGFreeValidCtxt()
10970 xmlRelaxNGFreeStates(NULL, ctxt->states); in xmlRelaxNGFreeValidCtxt()
10971 if (ctxt->freeState != NULL) { in xmlRelaxNGFreeValidCtxt()
10972 for (k = 0; k < ctxt->freeState->nbState; k++) { in xmlRelaxNGFreeValidCtxt()
10973 xmlRelaxNGFreeValidState(NULL, ctxt->freeState->tabState[k]); in xmlRelaxNGFreeValidCtxt()
10975 xmlRelaxNGFreeStates(NULL, ctxt->freeState); in xmlRelaxNGFreeValidCtxt()
10977 if (ctxt->freeStates != NULL) { in xmlRelaxNGFreeValidCtxt()
10978 for (k = 0; k < ctxt->freeStatesNr; k++) { in xmlRelaxNGFreeValidCtxt()
10979 xmlRelaxNGFreeStates(NULL, ctxt->freeStates[k]); in xmlRelaxNGFreeValidCtxt()
10981 xmlFree(ctxt->freeStates); in xmlRelaxNGFreeValidCtxt()
10983 if (ctxt->errTab != NULL) in xmlRelaxNGFreeValidCtxt()
10984 xmlFree(ctxt->errTab); in xmlRelaxNGFreeValidCtxt()
10985 if (ctxt->elemTab != NULL) { in xmlRelaxNGFreeValidCtxt()
10988 exec = xmlRelaxNGElemPop(ctxt); in xmlRelaxNGFreeValidCtxt()
10991 exec = xmlRelaxNGElemPop(ctxt); in xmlRelaxNGFreeValidCtxt()
10993 xmlFree(ctxt->elemTab); in xmlRelaxNGFreeValidCtxt()
10995 xmlFree(ctxt); in xmlRelaxNGFreeValidCtxt()
11008 xmlRelaxNGSetValidErrors(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGSetValidErrors() argument
11012 if (ctxt == NULL) in xmlRelaxNGSetValidErrors()
11014 ctxt->error = err; in xmlRelaxNGSetValidErrors()
11015 ctxt->warning = warn; in xmlRelaxNGSetValidErrors()
11016 ctxt->userData = ctx; in xmlRelaxNGSetValidErrors()
11017 ctxt->serror = NULL; in xmlRelaxNGSetValidErrors()
11029 xmlRelaxNGSetValidStructuredErrors(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGSetValidStructuredErrors() argument
11032 if (ctxt == NULL) in xmlRelaxNGSetValidStructuredErrors()
11034 ctxt->serror = serror; in xmlRelaxNGSetValidStructuredErrors()
11035 ctxt->error = NULL; in xmlRelaxNGSetValidStructuredErrors()
11036 ctxt->warning = NULL; in xmlRelaxNGSetValidStructuredErrors()
11037 ctxt->userData = ctx; in xmlRelaxNGSetValidStructuredErrors()
11052 xmlRelaxNGGetValidErrors(xmlRelaxNGValidCtxtPtr ctxt, in xmlRelaxNGGetValidErrors() argument
11056 if (ctxt == NULL) in xmlRelaxNGGetValidErrors()
11059 *err = ctxt->error; in xmlRelaxNGGetValidErrors()
11061 *warn = ctxt->warning; in xmlRelaxNGGetValidErrors()
11063 *ctx = ctxt->userData; in xmlRelaxNGGetValidErrors()
11078 xmlRelaxNGValidateDoc(xmlRelaxNGValidCtxtPtr ctxt, xmlDocPtr doc) in xmlRelaxNGValidateDoc() argument
11082 if ((ctxt == NULL) || (doc == NULL)) in xmlRelaxNGValidateDoc()
11085 ctxt->doc = doc; in xmlRelaxNGValidateDoc()
11087 ret = xmlRelaxNGValidateDocument(ctxt, doc); in xmlRelaxNGValidateDoc()