From 416589ae78f9ea46ef8841559eaa7ded712c0b88 Mon Sep 17 00:00:00 2001 From: Daniel Veillard Date: Mon, 17 Feb 2003 17:25:42 +0000 Subject: [PATCH] more work on the RelaxNG implementation conformance testing. found 373 * relaxng.c check-relaxng-test-suite.py: more work on the RelaxNG implementation conformance testing. found 373 test schemas: 284 success 89 failures found 529 test instances: 448 success 47 failures * result/relaxng/*: updated the results Daniel --- ChangeLog | 8 + check-relaxng-test-suite.py | 15 +- relaxng.c | 371 +++++++++++++++++++++++++++++---- result/relaxng/spec1_err | 2 +- result/relaxng/tutor10_1_4.err | 4 +- result/relaxng/tutor10_1_5.err | 4 +- result/relaxng/tutor10_1_6.err | 4 +- result/relaxng/tutor10_2_3.err | 4 +- result/relaxng/tutor10_2_4.err | 4 +- result/relaxng/tutor10_7_3.err | 2 +- result/relaxng/tutor10_8_3.err | 2 +- result/relaxng/tutor11_2_2.err | 2 +- result/relaxng/tutor11_2_3.err | 2 +- result/relaxng/tutor12_1_err | 2 +- result/relaxng/tutor3_2_1.err | 4 +- result/relaxng/tutor3_5_2.err | 2 +- result/relaxng/tutor3_7_err | 2 +- result/relaxng/tutor5_3_1.err | 2 +- result/relaxng/tutor6_1_3.err | 2 +- result/relaxng/tutor6_2_4.err | 2 +- result/relaxng/tutor6_3_1.err | 2 +- result/relaxng/tutor7_1_2.err | 6 +- result/relaxng/tutor7_1_3.err | 6 +- result/relaxng/tutor7_2_4.err | 4 +- result/relaxng/tutor7_3_4.err | 6 +- result/relaxng/tutor7_3_5.err | 6 +- result/relaxng/tutor8_2_4.err | 6 +- result/relaxng/tutor8_2_5.err | 4 +- result/relaxng/tutor8_2_6.err | 2 +- result/relaxng/tutor9_5_2.err | 2 +- result/relaxng/tutor9_5_3.err | 2 +- result/relaxng/tutor9_6_2.err | 2 +- result/relaxng/tutor9_6_3.err | 2 +- 33 files changed, 395 insertions(+), 95 deletions(-) diff --git a/ChangeLog b/ChangeLog index a74a2538..60974fae 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Mon Feb 17 18:23:32 CET 2003 Daniel Veillard + + * relaxng.c check-relaxng-test-suite.py: more work on the + RelaxNG implementation conformance testing. + found 373 test schemas: 284 success 89 failures + found 529 test instances: 448 success 47 failures + * result/relaxng/*: updated the results + Sun Feb 16 16:48:38 CET 2003 Daniel Veillard * ChangeLog tree.c doc/libxml-doc.el doc/libxml2-api.xml: applied diff --git a/check-relaxng-test-suite.py b/check-relaxng-test-suite.py index 00fe9025..aa6ad153 100755 --- a/check-relaxng-test-suite.py +++ b/check-relaxng-test-suite.py @@ -7,12 +7,13 @@ import StringIO sys.path.append("python") import libxml2 - # # the testsuite description # CONF="test/relaxng/OASIS/spectest.xml" LOG="check-relaxng-test-suite.log" +RES="relaxng-test-results.xml" + log = open(LOG, "w") nb_schemas_tests = 0 @@ -45,7 +46,17 @@ def resolver(URL, ID, ctxt): log.write("resources: %s\n" % (resources)) return None - +# +# Load the previous results +# +#results = {} +#previous = {} +# +#try: +# res = libxml2.parseFile(RES) +#except: +# log.write("Could not parse %s" % (RES)) + # # handle a valid instance # diff --git a/relaxng.c b/relaxng.c index 36cec746..d6f1f179 100644 --- a/relaxng.c +++ b/relaxng.c @@ -54,6 +54,7 @@ static const xmlChar *xmlRelaxNGNs = (const xmlChar *) /* #define DEBUG_TYPE 1 */ /* #define DEBUG_VALID 1 */ /* #define DEBUG_INTERLEAVE 1 */ +/* #define DEBUG_LIST 1 */ #define UNBOUNDED (1 << 30) #define TODO \ @@ -99,6 +100,9 @@ typedef enum { XML_RELAXNG_NOT_ALLOWED, /* not allowed top */ XML_RELAXNG_EXCEPT, /* except present in nameclass defs */ XML_RELAXNG_TEXT, /* textual content */ +#if 0 + XML_RELAXNG_MIXED, /* mixed content with single sub-content */ +#endif XML_RELAXNG_ELEMENT, /* an element */ XML_RELAXNG_DATATYPE, /* extenal data type definition */ XML_RELAXNG_VALUE, /* value from an extenal data type definition */ @@ -797,6 +801,7 @@ xmlRelaxNGIncludePop(xmlRelaxNGParserCtxtPtr ctxt) * @ctxt: the parser context * @URL: the normalized URL * @node: the include node. + * @ns: the namespace passed from the context. * * First lookup if the document is already loaded into the parser context, * check against recursion. If not found the resource is loaded and @@ -806,7 +811,7 @@ xmlRelaxNGIncludePop(xmlRelaxNGParserCtxtPtr ctxt) */ static xmlRelaxNGIncludePtr xmlRelaxNGLoadInclude(xmlRelaxNGParserCtxtPtr ctxt, const xmlChar *URL, - xmlNodePtr node) { + xmlNodePtr node, const xmlChar *ns) { xmlRelaxNGIncludePtr ret = NULL; xmlDocPtr doc; int i; @@ -839,7 +844,10 @@ xmlRelaxNGLoadInclude(xmlRelaxNGParserCtxtPtr ctxt, const xmlChar *URL, return(NULL); } } else { - ret = xmlHashLookup(ctxt->includes, URL); + if (ns == NULL) + ret = xmlHashLookup2(ctxt->includes, BAD_CAST "", URL); + else + ret = xmlHashLookup2(ctxt->includes, ns, URL); if (ret != NULL) return(ret); } @@ -873,10 +881,25 @@ xmlRelaxNGLoadInclude(xmlRelaxNGParserCtxtPtr ctxt, const xmlChar *URL, ret->doc = doc; ret->href = xmlStrdup(URL); + /* + * transmit the ns if needed + */ + if (ns != NULL) { + root = xmlDocGetRootElement(doc); + if (root != NULL) { + if (xmlHasProp(root, BAD_CAST"ns") == NULL) { + xmlSetProp(root, BAD_CAST"ns", ns); + } + } + } + /* * push it on the stack and register it in the hash table */ - xmlHashAddEntry(ctxt->includes, URL, ret); + if (ns == NULL) + xmlHashAddEntry2(ctxt->includes, BAD_CAST "", URL, ret); + else + xmlHashAddEntry2(ctxt->includes, ns, URL, ret); xmlRelaxNGIncludePush(ctxt, ret); /* @@ -1793,7 +1816,7 @@ xmlRelaxNGParseValue(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) { */ static xmlRelaxNGDefinePtr xmlRelaxNGParseData(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) { - xmlRelaxNGDefinePtr def = NULL; + xmlRelaxNGDefinePtr def = NULL, except, last = NULL; xmlRelaxNGTypeLibraryPtr lib; xmlChar *type; xmlChar *library; @@ -1858,11 +1881,64 @@ xmlRelaxNGParseData(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) { } } content = node->children; + + /* + * Handle optional params + */ while (content != NULL) { + if (!xmlStrEqual(content->name, BAD_CAST "param")) + break; TODO ctxt->nbErrors++; content = content->next; } + /* + * Handle optional except + */ + if ((content != NULL) && (xmlStrEqual(content->name, BAD_CAST "except"))) { + xmlNodePtr child; + xmlRelaxNGDefinePtr tmp2, last2 = NULL; + + except = xmlRelaxNGNewDefine(ctxt, node); + if (except == NULL) { + return(def); + } + except->type = XML_RELAXNG_EXCEPT; + child = content->children; + if (last == NULL) { + def->content = except; + } else { + last->next = except; + } + if (child == NULL) { + if (ctxt->error != NULL) + ctxt->error(ctxt->userData, + "except has no content\n"); + ctxt->nbErrors++; + } + while (child != NULL) { + tmp2 = xmlRelaxNGParsePattern(ctxt, child); + if (tmp2 != NULL) { + if (last2 == NULL) { + except->content = last2 = tmp2; + } else { + last2->next = tmp2; + last2 = tmp2; + } + } + child = child->next; + } + content = content->next; + } + /* + * Check there is no unhandled data + */ + if (content != NULL) { + if (ctxt->error != NULL) + ctxt->error(ctxt->userData, + "Element data has unexpected content %s\n", content->name); + ctxt->nbErrors++; + } return(def); } @@ -2693,8 +2769,31 @@ xmlRelaxNGParsePattern(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) { } } } else if (IS_RELAXNG(node, "mixed")) { - TODO - ctxt->nbErrors++; + if (node->children == NULL) { + if (ctxt->error != NULL) + ctxt->error(ctxt->userData, + "Mixed is empty\n"); + ctxt->nbErrors++; + def = NULL; +#if 0 + } else if (node->children->next == NULL) { + def = xmlRelaxNGNewDefine(ctxt, node); + if (def == NULL) + return(NULL); + def->type = XML_RELAXNG_MIXED; +#endif + } else { + def = xmlRelaxNGParseInterleave(ctxt, node); + if (def != NULL) { + xmlRelaxNGDefinePtr tmp; + tmp = xmlRelaxNGNewDefine(ctxt, node); + if (tmp == NULL) + return(def); + tmp->type = XML_RELAXNG_TEXT; + tmp->next = def->content; + def->content = tmp; + } + } } else { if (ctxt->error != NULL) ctxt->error(ctxt->userData, @@ -2760,6 +2859,9 @@ xmlRelaxNGParseAttribute(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) { case XML_RELAXNG_OPTIONAL: case XML_RELAXNG_CHOICE: case XML_RELAXNG_GROUP: +#if 0 + case XML_RELAXNG_MIXED: +#endif case XML_RELAXNG_INTERLEAVE: ret->content = cur; cur->parent = ret; @@ -2890,6 +2992,23 @@ xmlRelaxNGParseNameClass(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node, ret->name = val; val = xmlGetProp(node, BAD_CAST "ns"); ret->ns = val; + if ((ctxt->flags & XML_RELAXNG_IN_ATTRIBUTE) && + (val != NULL) && + (xmlStrEqual(val, BAD_CAST "http://www.w3.org/2000/xmlns"))) { + ctxt->error(ctxt->userData, + "Attribute with namespace '%s' is not allowed\n", + val); + ctxt->nbErrors++; + } + if ((ctxt->flags & XML_RELAXNG_IN_ATTRIBUTE) && + (val != NULL) && + (val[0] == 0) && + (xmlStrEqual(ret->name, BAD_CAST "xmlns"))) { + ctxt->error(ctxt->userData, + "Attribute with QName 'xmlns' is not allowed\n", + val); + ctxt->nbErrors++; + } } else if (IS_RELAXNG(node, "anyName")) { ret->name = NULL; ret->ns = NULL; @@ -2907,6 +3026,14 @@ xmlRelaxNGParseNameClass(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node, "nsName has no ns attribute\n"); ctxt->nbErrors++; } + if ((ctxt->flags & XML_RELAXNG_IN_ATTRIBUTE) && + (ret->ns != NULL) && + (xmlStrEqual(ret->ns, BAD_CAST "http://www.w3.org/2000/xmlns"))) { + ctxt->error(ctxt->userData, + "Attribute with namespace '%s' is not allowed\n", + ret->ns); + ctxt->nbErrors++; + } if (node->children != NULL) { ret->nameClass = xmlRelaxNGParseExceptNameClass(ctxt, node->children, @@ -2924,8 +3051,7 @@ xmlRelaxNGParseNameClass(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node, child = node->children; while (child != NULL) { - tmp = xmlRelaxNGParseExceptNameClass(ctxt, child, - (def->type == XML_RELAXNG_ATTRIBUTE)); + tmp = xmlRelaxNGParseNameClass(ctxt, child, def); if (tmp != NULL) { if (last == NULL) { last = ret->nameClass = tmp; @@ -3011,6 +3137,9 @@ xmlRelaxNGParseElement(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) { case XML_RELAXNG_OPTIONAL: case XML_RELAXNG_CHOICE: case XML_RELAXNG_GROUP: +#if 0 + case XML_RELAXNG_MIXED: +#endif case XML_RELAXNG_INTERLEAVE: if (last == NULL) { ret->content = last = cur; @@ -3905,8 +4034,19 @@ xmlRelaxNGCleanupDoc(xmlRelaxNGParserCtxtPtr ctxt, xmlDocPtr doc) { if (xmlStrEqual(cur->name, BAD_CAST "externalRef")) { xmlChar *href, *ns, *base, *URL; xmlRelaxNGDocumentPtr docu; + xmlNodePtr tmp; ns = xmlGetProp(cur, BAD_CAST "ns"); + if (ns == NULL) { + tmp = cur->parent; + while ((tmp != NULL) && + (tmp->type == XML_ELEMENT_NODE)) { + ns = xmlGetProp(tmp, BAD_CAST "ns"); + if (ns != NULL) + break; + tmp = tmp->parent; + } + } href = xmlGetProp(cur, BAD_CAST "href"); if (href == NULL) { if (ctxt->error != NULL) @@ -3947,8 +4087,9 @@ xmlRelaxNGCleanupDoc(xmlRelaxNGParserCtxtPtr ctxt, xmlDocPtr doc) { xmlFree(URL); cur->_private = docu; } else if (xmlStrEqual(cur->name, BAD_CAST "include")) { - xmlChar *href, *base, *URL; + xmlChar *href, *ns, *base, *URL; xmlRelaxNGIncludePtr incl; + xmlNodePtr tmp; href = xmlGetProp(cur, BAD_CAST "href"); if (href == NULL) { @@ -3977,7 +4118,20 @@ xmlRelaxNGCleanupDoc(xmlRelaxNGParserCtxtPtr ctxt, xmlDocPtr doc) { xmlFree(href); if (base != NULL) xmlFree(base); - incl = xmlRelaxNGLoadInclude(ctxt, URL, cur); + ns = xmlGetProp(cur, BAD_CAST "ns"); + if (ns == NULL) { + tmp = cur->parent; + while ((tmp != NULL) && + (tmp->type == XML_ELEMENT_NODE)) { + ns = xmlGetProp(tmp, BAD_CAST "ns"); + if (ns != NULL) + break; + tmp = tmp->parent; + } + } + incl = xmlRelaxNGLoadInclude(ctxt, URL, cur, ns); + if (ns != NULL) + xmlFree(ns); if (incl == NULL) { if (ctxt->error != NULL) ctxt->error(ctxt->userData, @@ -4094,19 +4248,30 @@ xmlRelaxNGCleanupDoc(xmlRelaxNGParserCtxtPtr ctxt, xmlDocPtr doc) { * into a div */ if (xmlStrEqual(cur->name, BAD_CAST "div")) { + xmlChar *ns; + xmlNodePtr child, ins, tmp; + /* * implements rule 4.11 */ - xmlNodePtr child, ins, tmp; + + ns = xmlGetProp(cur, BAD_CAST "ns"); child = cur->children; ins = cur; while (child != NULL) { + if (ns != NULL) { + if (!xmlHasProp(child, BAD_CAST "ns")) { + xmlSetProp(child, BAD_CAST "ns", ns); + } + } tmp = child->next; xmlUnlinkNode(child); ins = xmlAddNextSibling(ins, child); child = tmp; } + if (ns != NULL) + xmlFree(ns); delete = cur; goto skip_children; } @@ -4427,10 +4592,17 @@ xmlRelaxNGDumpDefine(FILE * output, xmlRelaxNGDefinePtr define) { fprintf(output, "\n"); break; case XML_RELAXNG_EXTERNALREF: - fprintf(output, ""); xmlRelaxNGDumpDefines(output, define->content); fprintf(output, "\n"); break; +#if 0 + case XML_RELAXNG_MIXED: + fprintf(output, ""); + xmlRelaxNGDumpDefines(output, define->content); + fprintf(output, "\n"); + break; +#endif case XML_RELAXNG_DATATYPE: case XML_RELAXNG_VALUE: TODO @@ -4653,6 +4825,17 @@ xmlRelaxNGValidateDatatype(xmlRelaxNGValidCtxtPtr ctxt, const xmlChar *value, return(-1); ret = -1; } + if ((ret == 0) && (define->content != NULL)) { + const xmlChar *oldvalue, *oldendvalue; + + oldvalue = ctxt->state->value; + oldendvalue = ctxt->state->endvalue; + ctxt->state->value = (xmlChar *) value; + ctxt->state->endvalue = NULL; + ret = xmlRelaxNGValidateValue(ctxt, define->content); + ctxt->state->value = (xmlChar *) oldvalue; + ctxt->state->endvalue = (xmlChar *) oldendvalue; + } return(ret); } @@ -4769,6 +4952,8 @@ xmlRelaxNGValidateValue(xmlRelaxNGValidCtxtPtr ctxt, xmlFree(nvalue); } } + if (ret == 0) + xmlRelaxNGNextValue(ctxt); break; } case XML_RELAXNG_DATATYPE: { @@ -4795,11 +4980,16 @@ xmlRelaxNGValidateValue(xmlRelaxNGValidCtxtPtr ctxt, list = list->next; } ctxt->flags = oldflags; + if (ret == 0) + xmlRelaxNGNextValue(ctxt); break; } case XML_RELAXNG_LIST: { xmlRelaxNGDefinePtr list = define->content; xmlChar *oldvalue, *oldend, *val, *cur; +#ifdef DEBUG_LIST + int nb_values = 0; +#endif oldvalue = ctxt->state->value; oldend = ctxt->state->endvalue; @@ -4812,10 +5002,22 @@ xmlRelaxNGValidateValue(xmlRelaxNGValidCtxtPtr ctxt, } cur = val; while (*cur != 0) { - if (IS_BLANK(*cur)) + if (IS_BLANK(*cur)) { *cur = 0; - cur++; + cur++; +#ifdef DEBUG_LIST + nb_values++; +#endif + while (IS_BLANK(*cur)) + *cur++ = 0; + } else + cur++; } +#ifdef DEBUG_LIST + xmlGenericError(xmlGenericErrorContext, + "list value: '%s' found %d items\n", oldvalue, nb_values); + nb_values = 0; +#endif ctxt->state->endvalue = cur; cur = val; while ((*cur == 0) && (cur != ctxt->state->endvalue)) cur++; @@ -4825,8 +5027,16 @@ xmlRelaxNGValidateValue(xmlRelaxNGValidCtxtPtr ctxt, while (list != NULL) { ret = xmlRelaxNGValidateValue(ctxt, list); if (ret != 0) { +#ifdef DEBUG_LIST + xmlGenericError(xmlGenericErrorContext, + "Failed to validate value: '%s' with %d rule\n", + ctxt->state->value, nb_values); +#endif break; } +#ifdef DEBUG_LIST + nb_values++; +#endif list = list->next; } if ((ret == 0) && (ctxt->state->value != NULL) && @@ -4867,6 +5077,21 @@ xmlRelaxNGValidateValue(xmlRelaxNGValidCtxtPtr ctxt, ctxt->flags = oldflags; break; } + case XML_RELAXNG_EXCEPT: { + xmlRelaxNGDefinePtr list; + + list = define->content; + while (list != NULL) { + ret = xmlRelaxNGValidateValue(ctxt, list); + if (ret == 0) { + ret = -1; + break; + } else + ret = 0; + list = list->next; + } + break; + } default: TODO ret = -1; @@ -5432,6 +5657,80 @@ xmlRelaxNGValidateElementContent(xmlRelaxNGValidCtxtPtr ctxt, return(ret); } +/** + * xmlRelaxNGElementMatch: + * @ctxt: a Relax-NG validation context + * @define: the definition to check + * @elem: the element + * + * Check if the element matches the definition nameClass + * + * Returns 1 if the element matches, 0 if no, or -1 in case of error + */ +static int +xmlRelaxNGElementMatch(xmlRelaxNGValidCtxtPtr ctxt, + xmlRelaxNGDefinePtr define, + xmlNodePtr elem) { + int ret, oldflags; + + if (define->name != NULL) { + if (!xmlStrEqual(elem->name, define->name)) { + VALID_CTXT(); + VALID_ERROR3("Expecting element %s, got %s\n", + define->name, elem->name); + return(0); + } + } + if ((define->ns != NULL) && (define->ns[0] != 0)) { + if (elem->ns == NULL) { + VALID_CTXT(); + VALID_ERROR2("Expecting a namespace for element %s\n", + elem->name); + return(0); + } else if (!xmlStrEqual(elem->ns->href, define->ns)) { + VALID_CTXT(); + VALID_ERROR3("Expecting element %s has wrong namespace: expecting %s\n", + elem->name, define->ns); + return(0); + } + } else if (define->name != NULL) { + if (elem->ns != NULL) { + VALID_CTXT(); + VALID_ERROR2("Expecting no namespace for element %s\n", + define->name); + return(0); + } + } + + if (define->nameClass == NULL) + return(1); + + define = define->nameClass; + if (define->type == XML_RELAXNG_EXCEPT) { + xmlRelaxNGDefinePtr list; + oldflags = ctxt->flags; + ctxt->flags |= FLAGS_IGNORABLE; + + list = define->content; + while (list != NULL) { + ret = xmlRelaxNGElementMatch(ctxt, list, elem); + if (ret == 1) { + ctxt->flags = oldflags; + return(0); + } + if (ret < 0) { + ctxt->flags = oldflags; + return(ret); + } + list = list->next; + } + ctxt->flags = oldflags; + } else { + TODO + } + return(1); +} + /** * xmlRelaxNGValidateDefinition: * @ctxt: a Relax-NG validation context @@ -5522,38 +5821,13 @@ xmlRelaxNGValidateDefinition(xmlRelaxNGValidCtxtPtr ctxt, */ if (node->_private == define) break; - if (define->name != NULL) { - if (!xmlStrEqual(node->name, define->name)) { - VALID_CTXT(); - VALID_ERROR3("Expecting element %s, got %s\n", - define->name, node->name); - ret = -1; - break; - } - } - if ((define->ns != NULL) && (define->ns[0] != 0)) { - if (node->ns == NULL) { - VALID_CTXT(); - VALID_ERROR2("Expecting a namespace for element %s\n", - node->name); - ret = -1; - break; - } else if (!xmlStrEqual(node->ns->href, define->ns)) { - VALID_CTXT(); - VALID_ERROR3("Expecting element %s has wrong namespace: expecting %s\n", - node->name, define->ns); - ret = -1; - break; - } - } else if (define->name != NULL) { - if (node->ns != NULL) { - VALID_CTXT(); - VALID_ERROR2("Expecting no namespace for element %s\n", - define->name); - ret = -1; - break; - } + + ret = xmlRelaxNGElementMatch(ctxt, define, node); + if (ret <= 0) { + ret = -1; + break; } + ret = 0; state = xmlRelaxNGNewValidState(ctxt, node); if (state == NULL) { @@ -5833,9 +6107,16 @@ xmlRelaxNGValidateDefinition(xmlRelaxNGValidCtxtPtr ctxt, xmlFree(content); break; } +#if 0 + case XML_RELAXNG_MIXED: + TODO + ret = -1; + break; +#endif case XML_RELAXNG_START: case XML_RELAXNG_EXCEPT: TODO + ret = -1; break; } ctxt->depth--; diff --git a/result/relaxng/spec1_err b/result/relaxng/spec1_err index 9e1a6e08..d6727057 100644 --- a/result/relaxng/spec1_err +++ b/result/relaxng/spec1_err @@ -1 +1 @@ -Unimplemented block at relaxng.c:5196 +Unimplemented block at relaxng.c:5502 diff --git a/result/relaxng/tutor10_1_4.err b/result/relaxng/tutor10_1_4.err index 2086fb08..0378cea3 100644 --- a/result/relaxng/tutor10_1_4.err +++ b/result/relaxng/tutor10_1_4.err @@ -1,4 +1,4 @@ -error detected at relaxng.c:5455 +error detected at relaxng.c:5686 Expecting a namespace for element foo -error detected at relaxng.c:5812 +error detected at relaxng.c:6174 extra data on the document diff --git a/result/relaxng/tutor10_1_5.err b/result/relaxng/tutor10_1_5.err index 9c448e9c..e483ad80 100644 --- a/result/relaxng/tutor10_1_5.err +++ b/result/relaxng/tutor10_1_5.err @@ -1,4 +1,4 @@ -error detected at relaxng.c:5461 +error detected at relaxng.c:5691 Expecting element foo has wrong namespace: expecting http://www.example.com -error detected at relaxng.c:5812 +error detected at relaxng.c:6174 extra data on the document diff --git a/result/relaxng/tutor10_1_6.err b/result/relaxng/tutor10_1_6.err index 9c448e9c..e483ad80 100644 --- a/result/relaxng/tutor10_1_6.err +++ b/result/relaxng/tutor10_1_6.err @@ -1,4 +1,4 @@ -error detected at relaxng.c:5461 +error detected at relaxng.c:5691 Expecting element foo has wrong namespace: expecting http://www.example.com -error detected at relaxng.c:5812 +error detected at relaxng.c:6174 extra data on the document diff --git a/result/relaxng/tutor10_2_3.err b/result/relaxng/tutor10_2_3.err index 2b656ed1..0bf8041e 100644 --- a/result/relaxng/tutor10_2_3.err +++ b/result/relaxng/tutor10_2_3.err @@ -1,4 +1,4 @@ -error detected at relaxng.c:5469 +error detected at relaxng.c:5698 Expecting no namespace for element foo -error detected at relaxng.c:5812 +error detected at relaxng.c:6174 extra data on the document diff --git a/result/relaxng/tutor10_2_4.err b/result/relaxng/tutor10_2_4.err index 2b656ed1..0bf8041e 100644 --- a/result/relaxng/tutor10_2_4.err +++ b/result/relaxng/tutor10_2_4.err @@ -1,4 +1,4 @@ -error detected at relaxng.c:5469 +error detected at relaxng.c:5698 Expecting no namespace for element foo -error detected at relaxng.c:5812 +error detected at relaxng.c:6174 extra data on the document diff --git a/result/relaxng/tutor10_7_3.err b/result/relaxng/tutor10_7_3.err index eca41dd4..c9a85568 100644 --- a/result/relaxng/tutor10_7_3.err +++ b/result/relaxng/tutor10_7_3.err @@ -1,2 +1,2 @@ -error detected at relaxng.c:5511 +error detected at relaxng.c:5866 Extra content for element addressBook: card diff --git a/result/relaxng/tutor10_8_3.err b/result/relaxng/tutor10_8_3.err index eca41dd4..c9a85568 100644 --- a/result/relaxng/tutor10_8_3.err +++ b/result/relaxng/tutor10_8_3.err @@ -1,2 +1,2 @@ -error detected at relaxng.c:5511 +error detected at relaxng.c:5866 Extra content for element addressBook: card diff --git a/result/relaxng/tutor11_2_2.err b/result/relaxng/tutor11_2_2.err index b4fc343c..12657cf9 100644 --- a/result/relaxng/tutor11_2_2.err +++ b/result/relaxng/tutor11_2_2.err @@ -1,2 +1,2 @@ -error detected at relaxng.c:5524 +error detected at relaxng.c:5879 Invalid attribute foo for element card diff --git a/result/relaxng/tutor11_2_3.err b/result/relaxng/tutor11_2_3.err index 477e5372..384c8861 100644 --- a/result/relaxng/tutor11_2_3.err +++ b/result/relaxng/tutor11_2_3.err @@ -1,2 +1,2 @@ -error detected at relaxng.c:5524 +error detected at relaxng.c:5879 Invalid attribute b for element card diff --git a/result/relaxng/tutor12_1_err b/result/relaxng/tutor12_1_err index 9e1a6e08..d6727057 100644 --- a/result/relaxng/tutor12_1_err +++ b/result/relaxng/tutor12_1_err @@ -1 +1 @@ -Unimplemented block at relaxng.c:5196 +Unimplemented block at relaxng.c:5502 diff --git a/result/relaxng/tutor3_2_1.err b/result/relaxng/tutor3_2_1.err index 05208e72..6ed44beb 100644 --- a/result/relaxng/tutor3_2_1.err +++ b/result/relaxng/tutor3_2_1.err @@ -1,4 +1,4 @@ -error detected at relaxng.c:5446 +error detected at relaxng.c:5678 Expecting element name, got email -error detected at relaxng.c:5511 +error detected at relaxng.c:5866 Extra content for element card: email diff --git a/result/relaxng/tutor3_5_2.err b/result/relaxng/tutor3_5_2.err index eca41dd4..c9a85568 100644 --- a/result/relaxng/tutor3_5_2.err +++ b/result/relaxng/tutor3_5_2.err @@ -1,2 +1,2 @@ -error detected at relaxng.c:5511 +error detected at relaxng.c:5866 Extra content for element addressBook: card diff --git a/result/relaxng/tutor3_7_err b/result/relaxng/tutor3_7_err index 7d90f37e..d203d702 100644 --- a/result/relaxng/tutor3_7_err +++ b/result/relaxng/tutor3_7_err @@ -1,2 +1,2 @@ -error detected at relaxng.c:5812 +error detected at relaxng.c:6174 extra data on the document diff --git a/result/relaxng/tutor5_3_1.err b/result/relaxng/tutor5_3_1.err index 9b6ee153..d767e359 100644 --- a/result/relaxng/tutor5_3_1.err +++ b/result/relaxng/tutor5_3_1.err @@ -1,2 +1,2 @@ -error detected at relaxng.c:5677 +error detected at relaxng.c:6032 The data does not cover the full element bad diff --git a/result/relaxng/tutor6_1_3.err b/result/relaxng/tutor6_1_3.err index 39e9f460..dff42c30 100644 --- a/result/relaxng/tutor6_1_3.err +++ b/result/relaxng/tutor6_1_3.err @@ -1,2 +1,2 @@ -error detected at relaxng.c:5524 +error detected at relaxng.c:5879 Invalid attribute preferredFormat for element card diff --git a/result/relaxng/tutor6_2_4.err b/result/relaxng/tutor6_2_4.err index 5565186c..f20ab759 100644 --- a/result/relaxng/tutor6_2_4.err +++ b/result/relaxng/tutor6_2_4.err @@ -1,2 +1,2 @@ -error detected at relaxng.c:5511 +error detected at relaxng.c:5866 Extra content for element preferredFormat: text diff --git a/result/relaxng/tutor6_3_1.err b/result/relaxng/tutor6_3_1.err index 39e9f460..dff42c30 100644 --- a/result/relaxng/tutor6_3_1.err +++ b/result/relaxng/tutor6_3_1.err @@ -1,2 +1,2 @@ -error detected at relaxng.c:5524 +error detected at relaxng.c:5879 Invalid attribute preferredFormat for element card diff --git a/result/relaxng/tutor7_1_2.err b/result/relaxng/tutor7_1_2.err index ee868dd1..bca84154 100644 --- a/result/relaxng/tutor7_1_2.err +++ b/result/relaxng/tutor7_1_2.err @@ -1,6 +1,6 @@ -error detected at relaxng.c:4564 +error detected at relaxng.c:4817 Internal: failed to validate type float -error detected at relaxng.c:5735 +error detected at relaxng.c:6090 internal error validating list -error detected at relaxng.c:5511 +error detected at relaxng.c:5866 Extra content for element vector: text diff --git a/result/relaxng/tutor7_1_3.err b/result/relaxng/tutor7_1_3.err index 04e88b89..4edebee1 100644 --- a/result/relaxng/tutor7_1_3.err +++ b/result/relaxng/tutor7_1_3.err @@ -1,6 +1,6 @@ -error detected at relaxng.c:4753 +error detected at relaxng.c:5044 Extra data in list: 5.6 -error detected at relaxng.c:5735 +error detected at relaxng.c:6090 internal error validating list -error detected at relaxng.c:5511 +error detected at relaxng.c:5866 Extra content for element vector: text diff --git a/result/relaxng/tutor7_2_4.err b/result/relaxng/tutor7_2_4.err index 970ed5ec..80d04c61 100644 --- a/result/relaxng/tutor7_2_4.err +++ b/result/relaxng/tutor7_2_4.err @@ -1,4 +1,4 @@ -error detected at relaxng.c:4728 +error detected at relaxng.c:4999 Internal: no state -error detected at relaxng.c:5735 +error detected at relaxng.c:6090 internal error validating list diff --git a/result/relaxng/tutor7_3_4.err b/result/relaxng/tutor7_3_4.err index d13709e3..76534636 100644 --- a/result/relaxng/tutor7_3_4.err +++ b/result/relaxng/tutor7_3_4.err @@ -1,6 +1,6 @@ -error detected at relaxng.c:4753 +error detected at relaxng.c:5044 Extra data in list: 5.6 -error detected at relaxng.c:5735 +error detected at relaxng.c:6090 internal error validating list -error detected at relaxng.c:5511 +error detected at relaxng.c:5866 Extra content for element path: text diff --git a/result/relaxng/tutor7_3_5.err b/result/relaxng/tutor7_3_5.err index bbb092a3..1dec06dd 100644 --- a/result/relaxng/tutor7_3_5.err +++ b/result/relaxng/tutor7_3_5.err @@ -1,6 +1,6 @@ -error detected at relaxng.c:4564 +error detected at relaxng.c:4817 Internal: failed to validate type double -error detected at relaxng.c:5735 +error detected at relaxng.c:6090 internal error validating list -error detected at relaxng.c:5511 +error detected at relaxng.c:5866 Extra content for element path: text diff --git a/result/relaxng/tutor8_2_4.err b/result/relaxng/tutor8_2_4.err index c0563aa4..9a087542 100644 --- a/result/relaxng/tutor8_2_4.err +++ b/result/relaxng/tutor8_2_4.err @@ -1,4 +1,4 @@ -Unimplemented block at relaxng.c:5196 -Unimplemented block at relaxng.c:5196 -error detected at relaxng.c:5511 +Unimplemented block at relaxng.c:5502 +Unimplemented block at relaxng.c:5502 +error detected at relaxng.c:5866 Extra content for element head: meta diff --git a/result/relaxng/tutor8_2_5.err b/result/relaxng/tutor8_2_5.err index f25449a2..8890db3f 100644 --- a/result/relaxng/tutor8_2_5.err +++ b/result/relaxng/tutor8_2_5.err @@ -1,4 +1,4 @@ -error detected at relaxng.c:5427 +error detected at relaxng.c:5807 Expecting an element, got empty -error detected at relaxng.c:5511 +error detected at relaxng.c:5866 Extra content for element head: meta diff --git a/result/relaxng/tutor8_2_6.err b/result/relaxng/tutor8_2_6.err index ab812550..7301b171 100644 --- a/result/relaxng/tutor8_2_6.err +++ b/result/relaxng/tutor8_2_6.err @@ -1,2 +1,2 @@ -error detected at relaxng.c:5511 +error detected at relaxng.c:5866 Extra content for element head: base diff --git a/result/relaxng/tutor9_5_2.err b/result/relaxng/tutor9_5_2.err index eca41dd4..c9a85568 100644 --- a/result/relaxng/tutor9_5_2.err +++ b/result/relaxng/tutor9_5_2.err @@ -1,2 +1,2 @@ -error detected at relaxng.c:5511 +error detected at relaxng.c:5866 Extra content for element addressBook: card diff --git a/result/relaxng/tutor9_5_3.err b/result/relaxng/tutor9_5_3.err index eca41dd4..c9a85568 100644 --- a/result/relaxng/tutor9_5_3.err +++ b/result/relaxng/tutor9_5_3.err @@ -1,2 +1,2 @@ -error detected at relaxng.c:5511 +error detected at relaxng.c:5866 Extra content for element addressBook: card diff --git a/result/relaxng/tutor9_6_2.err b/result/relaxng/tutor9_6_2.err index eca41dd4..c9a85568 100644 --- a/result/relaxng/tutor9_6_2.err +++ b/result/relaxng/tutor9_6_2.err @@ -1,2 +1,2 @@ -error detected at relaxng.c:5511 +error detected at relaxng.c:5866 Extra content for element addressBook: card diff --git a/result/relaxng/tutor9_6_3.err b/result/relaxng/tutor9_6_3.err index eca41dd4..c9a85568 100644 --- a/result/relaxng/tutor9_6_3.err +++ b/result/relaxng/tutor9_6_3.err @@ -1,2 +1,2 @@ -error detected at relaxng.c:5511 +error detected at relaxng.c:5866 Extra content for element addressBook: card