diff --git a/ChangeLog b/ChangeLog index 1635b9dc..67cf344a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Sun Feb 2 15:33:38 CET 2003 Daniel Veillard + + * relaxng: include seems to work okay now + * test/relaxng/* result/relaxng/*: augmented/updated the + regression tests + Sat Feb 1 19:44:58 CET 2003 Daniel Veillard * relaxng.c: a bit of work done in the train back. diff --git a/relaxng.c b/relaxng.c index 5dcd0461..220edba1 100644 --- a/relaxng.c +++ b/relaxng.c @@ -8,10 +8,10 @@ /** * TODO: - * - ... * - error reporting - * - module - * - fixing ref/def cross grammar contexts + * - simplification of the resulting compiled trees: + * - NOT_ALLOWED + * - EMPTY */ #define IN_LIBXML @@ -1560,6 +1560,8 @@ static xmlRelaxNGDefinePtr xmlRelaxNGParsePattern( xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node); static xmlRelaxNGPtr xmlRelaxNGParseDocument( xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node); +static int xmlRelaxNGParseGrammarContent( + xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr nodes); #define IS_BLANK_NODE(n) \ @@ -2086,6 +2088,61 @@ xmlRelaxNGParseInterleave(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) { return(def); } +/** + * xmlRelaxNGParseInclude: + * @ctxt: a Relax-NG parser context + * @node: the include node + * + * Integrate the content of an include node in the current grammar + * + * Returns 0 in case of success or -1 in case of error + */ +static int +xmlRelaxNGParseInclude(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) { + xmlRelaxNGIncludePtr incl; + xmlNodePtr root; + int ret = 0, tmp; + + incl = node->_private; + if (incl == NULL) { + if (ctxt->error != NULL) + ctxt->error(ctxt->userData, + "Include node has no data\n"); + ctxt->nbErrors++; + return(-1); + } + root = xmlDocGetRootElement(incl->doc); + if (root == NULL) { + if (ctxt->error != NULL) + ctxt->error(ctxt->userData, + "Include document is empty\n"); + ctxt->nbErrors++; + return(-1); + } + if (!xmlStrEqual(root->name, BAD_CAST "grammar")) { + if (ctxt->error != NULL) + ctxt->error(ctxt->userData, + "Include document root is not a grammar\n"); + ctxt->nbErrors++; + return(-1); + } + + /* + * Merge the definition from both the include and the internal list + */ + if (root->children != NULL) { + tmp = xmlRelaxNGParseGrammarContent(ctxt, root->children); + if (tmp != 0) + ret = -1; + } + if (node->children != NULL) { + tmp = xmlRelaxNGParseGrammarContent(ctxt, node->children); + if (tmp != 0) + ret = -1; + } + return(ret); +} + /** * xmlRelaxNGParseDefine: * @ctxt: a Relax-NG parser context @@ -2093,7 +2150,7 @@ xmlRelaxNGParseInterleave(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) { * * parse the content of a RelaxNG define element node. * - * Returns the definition pointer or NULL in case of error. + * Returns 0 in case of success or -1 in case of error */ static int xmlRelaxNGParseDefine(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) { @@ -2332,8 +2389,20 @@ xmlRelaxNGParsePattern(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) { } else { def = NULL; } + } else if (IS_RELAXNG(node, "notAllowed")) { + def = xmlRelaxNGNewDefine(ctxt, node); + if (def == NULL) + return(NULL); + def->type = XML_RELAXNG_NOT_ALLOWED; + if (node->children != NULL) { + if (ctxt->error != NULL) + ctxt->error(ctxt->userData, + "xmlRelaxNGParse: notAllowed element is not empty\n"); + ctxt->nbErrors++; + } } else { TODO + def = NULL; } return(def); } @@ -2644,10 +2713,9 @@ xmlRelaxNGParseStart(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr nodes) { * Returns 0 in case of success, -1 in case of error */ static int -xmlRelaxNGParseGrammarContent(xmlRelaxNGParserCtxtPtr ctxt - ATTRIBUTE_UNUSED, xmlNodePtr nodes) +xmlRelaxNGParseGrammarContent(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr nodes) { - int ret = 0; + int ret = 0, tmp; if (nodes == NULL) { if (ctxt->error != NULL) @@ -2656,30 +2724,30 @@ xmlRelaxNGParseGrammarContent(xmlRelaxNGParserCtxtPtr ctxt ctxt->nbErrors++; return(-1); } - if (IS_RELAXNG(nodes, "start")) { - if (nodes->children == NULL) { - if (ctxt->error != NULL) - ctxt->error(ctxt->userData, - "grammar has no children\n"); - ctxt->nbErrors++; - } else { - xmlRelaxNGParseStart(ctxt, nodes->children); - } - nodes = nodes->next; - } else { - if (ctxt->error != NULL) - ctxt->error(ctxt->userData, - "grammar first child must be a \n"); - ctxt->nbErrors++; - return(-1); - } while (nodes != NULL) { - if (IS_RELAXNG(nodes, "define")) { - ret = xmlRelaxNGParseDefine(ctxt, nodes); + if (IS_RELAXNG(nodes, "start")) { + if (nodes->children == NULL) { + if (ctxt->error != NULL) + ctxt->error(ctxt->userData, + "grammar has no children\n"); + ctxt->nbErrors++; + } else { + tmp = xmlRelaxNGParseStart(ctxt, nodes->children); + if (tmp != 0) + ret = -1; + } + } else if (IS_RELAXNG(nodes, "define")) { + tmp = xmlRelaxNGParseDefine(ctxt, nodes); + if (tmp != 0) + ret = -1; + } else if (IS_RELAXNG(nodes, "include")) { + tmp = xmlRelaxNGParseInclude(ctxt, nodes); + if (tmp != 0) + ret = -1; } else { if (ctxt->error != NULL) ctxt->error(ctxt->userData, - "grammar allows onlys child after \n"); + "grammar has unexpected child %s\n", nodes->name); ctxt->nbErrors++; ret = -1; } @@ -3213,23 +3281,7 @@ xmlRelaxNGCleanupDoc(xmlRelaxNGParserCtxtPtr ctxt, xmlDocPtr doc) { delete = cur; goto skip_children; } else { - if (xmlStrEqual(cur->name, BAD_CAST "div")) { - /* - * implements rule 4.11 - */ - xmlNodePtr child, ins, tmp; - - child = cur->children; - ins = child; - while (child != NULL) { - tmp = child->next; - xmlUnlinkNode(child); - ins = xmlAddNextSibling(ins, child); - child = tmp; - } - delete = cur; - goto skip_children; - } else if (xmlStrEqual(cur->name, BAD_CAST "externalRef")) { + if (xmlStrEqual(cur->name, BAD_CAST "externalRef")) { xmlChar *href, *ns, *base, *URL; xmlRelaxNGDocumentPtr docu; @@ -3281,7 +3333,7 @@ xmlRelaxNGCleanupDoc(xmlRelaxNGParserCtxtPtr ctxt, xmlDocPtr doc) { if (href == NULL) { if (ctxt->error != NULL) ctxt->error(ctxt->userData, - "xmlRelaxNGParse: externalRef has no href attribute\n"); + "xmlRelaxNGParse: include has no href attribute\n"); ctxt->nbErrors++; delete = cur; goto skip_children; @@ -3291,7 +3343,7 @@ xmlRelaxNGCleanupDoc(xmlRelaxNGParserCtxtPtr ctxt, xmlDocPtr doc) { if (URL == NULL) { if (ctxt->error != NULL) ctxt->error(ctxt->userData, - "Failed to compute URL for externalRef %s\n", href); + "Failed to compute URL for include %s\n", href); ctxt->nbErrors++; if (href != NULL) xmlFree(href); @@ -3308,7 +3360,7 @@ xmlRelaxNGCleanupDoc(xmlRelaxNGParserCtxtPtr ctxt, xmlDocPtr doc) { if (incl == NULL) { if (ctxt->error != NULL) ctxt->error(ctxt->userData, - "Failed to load externalRef %s\n", URL); + "Failed to load include %s\n", URL); ctxt->nbErrors++; xmlFree(URL); delete = cur; @@ -3418,6 +3470,27 @@ xmlRelaxNGCleanupDoc(xmlRelaxNGParserCtxtPtr ctxt, xmlDocPtr doc) { } } } + /* + * Thisd is not an else since "include" is transformed + * into a div + */ + if (xmlStrEqual(cur->name, BAD_CAST "div")) { + /* + * implements rule 4.11 + */ + xmlNodePtr child, ins, tmp; + + child = cur->children; + ins = child; + while (child != NULL) { + tmp = child->next; + xmlUnlinkNode(child); + ins = xmlAddNextSibling(ins, child); + child = tmp; + } + delete = cur; + goto skip_children; + } } } /* @@ -3587,6 +3660,8 @@ xmlRelaxNGParse(xmlRelaxNGParserCtxtPtr ctxt) ctxt->document = NULL; ret->documents = ctxt->documents; ctxt->documents = NULL; + ret->includes = ctxt->includes; + ctxt->includes = NULL; return (ret); } @@ -4631,8 +4706,7 @@ xmlRelaxNGValidateDefinition(xmlRelaxNGValidCtxtPtr ctxt, #endif return(0); case XML_RELAXNG_NOT_ALLOWED: - TODO - break; + return(-1); case XML_RELAXNG_TEXT: if (node == NULL) return(0); @@ -4794,6 +4868,7 @@ xmlRelaxNGValidateDefinition(xmlRelaxNGValidCtxtPtr ctxt, ctxt->flags = oldflags; break; } + case XML_RELAXNG_DEF: case XML_RELAXNG_GROUP: { xmlRelaxNGDefinePtr list = define->content; @@ -4815,9 +4890,6 @@ xmlRelaxNGValidateDefinition(xmlRelaxNGValidCtxtPtr ctxt, case XML_RELAXNG_REF: ret = xmlRelaxNGValidateDefinition(ctxt, define->content); break; - case XML_RELAXNG_DEF: - ret = xmlRelaxNGValidateDefinition(ctxt, define->content); - break; case XML_RELAXNG_DATATYPE: { xmlChar *content; diff --git a/result/relaxng/tutor3_2_1.err b/result/relaxng/tutor3_2_1.err index 28a6d518..28f4b55c 100644 --- a/result/relaxng/tutor3_2_1.err +++ b/result/relaxng/tutor3_2_1.err @@ -1,3 +1,3 @@ -error detected at relaxng.c:4293 -error detected at relaxng.c:4341 +error detected at relaxng.c:4733 +error detected at relaxng.c:4781 xmlRelaxNGValidateDefinition(): validated card : -1 diff --git a/result/relaxng/tutor3_5_2.err b/result/relaxng/tutor3_5_2.err index fc5adef9..57300245 100644 --- a/result/relaxng/tutor3_5_2.err +++ b/result/relaxng/tutor3_5_2.err @@ -1,5 +1,5 @@ xmlRelaxNGValidateAttribute(name): -1 xmlRelaxNGValidateDefinition(): validated email : 0 xmlRelaxNGValidateDefinition(): validated card : -1 -error detected at relaxng.c:4341 +error detected at relaxng.c:4781 xmlRelaxNGValidateDefinition(): validated addressBook : -1 diff --git a/result/relaxng/tutor4_1_1 b/result/relaxng/tutor4_1_1 index 373a10d7..d8f436de 100644 --- a/result/relaxng/tutor4_1_1 +++ b/result/relaxng/tutor4_1_1 @@ -1,2 +1 @@ -Extra content for element addressBook -./test/relaxng/tutor4_1_1.xml validation generated an internal error +./test/relaxng/tutor4_1_1.xml validates diff --git a/result/relaxng/tutor4_1_1.err b/result/relaxng/tutor4_1_1.err index 1e44ce99..adaf345e 100644 --- a/result/relaxng/tutor4_1_1.err +++ b/result/relaxng/tutor4_1_1.err @@ -1,4 +1,7 @@ xmlRelaxNGValidateDefinition(): validated name : 0 -xmlRelaxNGValidateDefinition(): validated card : -1 -error detected at relaxng.c:4341 -xmlRelaxNGValidateDefinition(): validated addressBook : -1 +xmlRelaxNGValidateDefinition(): validated email : 0 +xmlRelaxNGValidateDefinition(): validated card : 0 +xmlRelaxNGValidateDefinition(): validated name : 0 +xmlRelaxNGValidateDefinition(): validated email : 0 +xmlRelaxNGValidateDefinition(): validated card : 0 +xmlRelaxNGValidateDefinition(): validated addressBook : 0 diff --git a/result/relaxng/tutor5_3_1.err b/result/relaxng/tutor5_3_1.err index a719419f..0e2f2568 100644 --- a/result/relaxng/tutor5_3_1.err +++ b/result/relaxng/tutor5_3_1.err @@ -1,3 +1,3 @@ -error detected at relaxng.c:4472 +error detected at relaxng.c:4910 xmlRelaxNGValidateDefinition(): validated note : 0 xmlRelaxNGValidateDefinition(): validated bad : -1 diff --git a/result/relaxng/tutor6_1_3.err b/result/relaxng/tutor6_1_3.err index bfb47f32..c11ebeda 100644 --- a/result/relaxng/tutor6_1_3.err +++ b/result/relaxng/tutor6_1_3.err @@ -1,5 +1,5 @@ xmlRelaxNGValidateAttribute(preferredFormat): -1 xmlRelaxNGValidateAttribute(email): 0 xmlRelaxNGValidateAttribute(name): 0 -error detected at relaxng.c:4349 +error detected at relaxng.c:4789 xmlRelaxNGValidateDefinition(): validated card : -1 diff --git a/result/relaxng/tutor6_2_4.err b/result/relaxng/tutor6_2_4.err index 02ace4cb..fd91c108 100644 --- a/result/relaxng/tutor6_2_4.err +++ b/result/relaxng/tutor6_2_4.err @@ -1,5 +1,5 @@ xmlRelaxNGValidateDefinition(): validated name : 0 xmlRelaxNGValidateDefinition(): validated email : 0 -error detected at relaxng.c:4341 +error detected at relaxng.c:4781 xmlRelaxNGValidateDefinition(): validated preferredFormat : -1 xmlRelaxNGValidateDefinition(): validated card : -1 diff --git a/result/relaxng/tutor6_3_1.err b/result/relaxng/tutor6_3_1.err index bfb47f32..c11ebeda 100644 --- a/result/relaxng/tutor6_3_1.err +++ b/result/relaxng/tutor6_3_1.err @@ -1,5 +1,5 @@ xmlRelaxNGValidateAttribute(preferredFormat): -1 xmlRelaxNGValidateAttribute(email): 0 xmlRelaxNGValidateAttribute(name): 0 -error detected at relaxng.c:4349 +error detected at relaxng.c:4789 xmlRelaxNGValidateDefinition(): validated card : -1 diff --git a/result/relaxng/tutor7_1_2.err b/result/relaxng/tutor7_1_2.err index d31ade5c..cde76cd3 100644 --- a/result/relaxng/tutor7_1_2.err +++ b/result/relaxng/tutor7_1_2.err @@ -1,5 +1,5 @@ Unimplemented block at xmlschemastypes.c:1132 -error detected at relaxng.c:3551 -error detected at relaxng.c:4526 -error detected at relaxng.c:4341 +error detected at relaxng.c:3992 +error detected at relaxng.c:4964 +error detected at relaxng.c:4781 xmlRelaxNGValidateDefinition(): validated vector : -1 diff --git a/result/relaxng/tutor7_1_3.err b/result/relaxng/tutor7_1_3.err index 1bb9ef05..c6d9ee5b 100644 --- a/result/relaxng/tutor7_1_3.err +++ b/result/relaxng/tutor7_1_3.err @@ -1,6 +1,6 @@ Unimplemented block at xmlschemastypes.c:1132 Unimplemented block at xmlschemastypes.c:1132 -error detected at relaxng.c:3739 -error detected at relaxng.c:4526 -error detected at relaxng.c:4341 +error detected at relaxng.c:4180 +error detected at relaxng.c:4964 +error detected at relaxng.c:4781 xmlRelaxNGValidateDefinition(): validated vector : -1 diff --git a/result/relaxng/tutor7_2_4.err b/result/relaxng/tutor7_2_4.err index aa5e8aef..6310d77f 100644 --- a/result/relaxng/tutor7_2_4.err +++ b/result/relaxng/tutor7_2_4.err @@ -1,3 +1,3 @@ -error detected at relaxng.c:3714 -error detected at relaxng.c:4526 +error detected at relaxng.c:4155 +error detected at relaxng.c:4964 xmlRelaxNGValidateDefinition(): validated vector : -1 diff --git a/result/relaxng/tutor7_3_4.err b/result/relaxng/tutor7_3_4.err index 880a6092..74bd68f0 100644 --- a/result/relaxng/tutor7_3_4.err +++ b/result/relaxng/tutor7_3_4.err @@ -1,7 +1,7 @@ Unimplemented block at xmlschemastypes.c:1135 Unimplemented block at xmlschemastypes.c:1135 Unimplemented block at xmlschemastypes.c:1135 -error detected at relaxng.c:3739 -error detected at relaxng.c:4526 -error detected at relaxng.c:4341 +error detected at relaxng.c:4180 +error detected at relaxng.c:4964 +error detected at relaxng.c:4781 xmlRelaxNGValidateDefinition(): validated path : -1 diff --git a/result/relaxng/tutor7_3_5.err b/result/relaxng/tutor7_3_5.err index b49a8a5b..d8657f5d 100644 --- a/result/relaxng/tutor7_3_5.err +++ b/result/relaxng/tutor7_3_5.err @@ -1,5 +1,5 @@ Unimplemented block at xmlschemastypes.c:1135 -error detected at relaxng.c:3551 -error detected at relaxng.c:4526 -error detected at relaxng.c:4341 +error detected at relaxng.c:3992 +error detected at relaxng.c:4964 +error detected at relaxng.c:4781 xmlRelaxNGValidateDefinition(): validated path : -1 diff --git a/result/relaxng/tutor8_2_4.err b/result/relaxng/tutor8_2_4.err index bfce578a..0af92c67 100644 --- a/result/relaxng/tutor8_2_4.err +++ b/result/relaxng/tutor8_2_4.err @@ -3,5 +3,5 @@ xmlRelaxNGComputeInterleaves(interleave0) 6 groups xmlRelaxNGValidateDefinition(): validated title : 0 xmlRelaxNGValidateDefinition(): validated title : 0 -error detected at relaxng.c:4341 +error detected at relaxng.c:4781 xmlRelaxNGValidateDefinition(): validated head : -1 diff --git a/result/relaxng/tutor8_2_5.err b/result/relaxng/tutor8_2_5.err index 40809094..516916b9 100644 --- a/result/relaxng/tutor8_2_5.err +++ b/result/relaxng/tutor8_2_5.err @@ -1,6 +1,6 @@ xmlRelaxNGComputeInterleaves(interleave0) 6 child 6 groups -error detected at relaxng.c:4287 -error detected at relaxng.c:4341 +error detected at relaxng.c:4727 +error detected at relaxng.c:4781 xmlRelaxNGValidateDefinition(): validated head : -1 diff --git a/result/relaxng/tutor8_2_6.err b/result/relaxng/tutor8_2_6.err index 2632bfd2..871a5d5b 100644 --- a/result/relaxng/tutor8_2_6.err +++ b/result/relaxng/tutor8_2_6.err @@ -4,5 +4,5 @@ xmlRelaxNGComputeInterleaves(interleave0) xmlRelaxNGValidateDefinition(): validated title : 0 xmlRelaxNGValidateDefinition(): validated base : 0 xmlRelaxNGValidateDefinition(): validated base : 0 -error detected at relaxng.c:4341 +error detected at relaxng.c:4781 xmlRelaxNGValidateDefinition(): validated head : -1 diff --git a/result/relaxng/tutor9_10_1 b/result/relaxng/tutor9_10_1 new file mode 100644 index 00000000..7c6117fa --- /dev/null +++ b/result/relaxng/tutor9_10_1 @@ -0,0 +1 @@ +./test/relaxng/tutor9_10_1.xml validates diff --git a/result/relaxng/tutor9_10_1.err b/result/relaxng/tutor9_10_1.err new file mode 100644 index 00000000..a9b23d3c --- /dev/null +++ b/result/relaxng/tutor9_10_1.err @@ -0,0 +1,6 @@ +xmlRelaxNGCheckCombine(): merging inline.extra defines: 1 +xmlRelaxNGValidateDefinition(): validated italic : 0 +xmlRelaxNGValidateDefinition(): validated em : 0 +xmlRelaxNGValidateDefinition(): validated bold : 0 +xmlRelaxNGValidateDefinition(): validated p : 0 +xmlRelaxNGValidateDefinition(): validated doc : 0 diff --git a/result/relaxng/tutor9_11_1 b/result/relaxng/tutor9_11_1 new file mode 100644 index 00000000..02a1f2a8 --- /dev/null +++ b/result/relaxng/tutor9_11_1 @@ -0,0 +1 @@ +./test/relaxng/tutor9_11_1.xml validates diff --git a/result/relaxng/tutor9_11_1.err b/result/relaxng/tutor9_11_1.err new file mode 100644 index 00000000..a06deb4e --- /dev/null +++ b/result/relaxng/tutor9_11_1.err @@ -0,0 +1,4 @@ +xmlRelaxNGValidateDefinition(): validated name : 0 +xmlRelaxNGValidateDefinition(): validated emailAddress : 0 +xmlRelaxNGValidateDefinition(): validated card : 0 +xmlRelaxNGValidateDefinition(): validated addressBook : 0 diff --git a/result/relaxng/tutor9_12_1 b/result/relaxng/tutor9_12_1 new file mode 100644 index 00000000..08f2a8a0 --- /dev/null +++ b/result/relaxng/tutor9_12_1 @@ -0,0 +1 @@ +./test/relaxng/tutor9_12_1.xml validates diff --git a/result/relaxng/tutor9_12_1.err b/result/relaxng/tutor9_12_1.err new file mode 100644 index 00000000..a06deb4e --- /dev/null +++ b/result/relaxng/tutor9_12_1.err @@ -0,0 +1,4 @@ +xmlRelaxNGValidateDefinition(): validated name : 0 +xmlRelaxNGValidateDefinition(): validated emailAddress : 0 +xmlRelaxNGValidateDefinition(): validated card : 0 +xmlRelaxNGValidateDefinition(): validated addressBook : 0 diff --git a/result/relaxng/tutor9_5_2.err b/result/relaxng/tutor9_5_2.err index 2bdc72e3..95c7ecde 100644 --- a/result/relaxng/tutor9_5_2.err +++ b/result/relaxng/tutor9_5_2.err @@ -5,5 +5,5 @@ xmlRelaxNGComputeInterleaves(interleave0) xmlRelaxNGValidateAttribute(name): 0 xmlRelaxNGValidateAttribute(email): -1 xmlRelaxNGValidateDefinition(): validated card : -1 -error detected at relaxng.c:4341 +error detected at relaxng.c:4781 xmlRelaxNGValidateDefinition(): validated addressBook : -1 diff --git a/result/relaxng/tutor9_5_3.err b/result/relaxng/tutor9_5_3.err index 7aeb8b14..fdd483ae 100644 --- a/result/relaxng/tutor9_5_3.err +++ b/result/relaxng/tutor9_5_3.err @@ -5,5 +5,5 @@ xmlRelaxNGComputeInterleaves(interleave0) xmlRelaxNGValidateAttribute(name): 0 xmlRelaxNGValidateAttribute(email): 0 xmlRelaxNGValidateDefinition(): validated card : -1 -error detected at relaxng.c:4341 +error detected at relaxng.c:4781 xmlRelaxNGValidateDefinition(): validated addressBook : -1 diff --git a/result/relaxng/tutor9_6_2.err b/result/relaxng/tutor9_6_2.err index bc1478c4..3c5fd73c 100644 --- a/result/relaxng/tutor9_6_2.err +++ b/result/relaxng/tutor9_6_2.err @@ -1,5 +1,5 @@ xmlRelaxNGValidateAttribute(name): 0 xmlRelaxNGValidateAttribute(email): -1 xmlRelaxNGValidateDefinition(): validated card : -1 -error detected at relaxng.c:4341 +error detected at relaxng.c:4781 xmlRelaxNGValidateDefinition(): validated addressBook : -1 diff --git a/result/relaxng/tutor9_6_3.err b/result/relaxng/tutor9_6_3.err index b9bac756..3580560a 100644 --- a/result/relaxng/tutor9_6_3.err +++ b/result/relaxng/tutor9_6_3.err @@ -1,5 +1,5 @@ xmlRelaxNGValidateAttribute(name): 0 xmlRelaxNGValidateAttribute(email): 0 xmlRelaxNGValidateDefinition(): validated card : -1 -error detected at relaxng.c:4341 +error detected at relaxng.c:4781 xmlRelaxNGValidateDefinition(): validated addressBook : -1 diff --git a/result/relaxng/tutor9_7_1 b/result/relaxng/tutor9_7_1 new file mode 100644 index 00000000..00d15020 --- /dev/null +++ b/result/relaxng/tutor9_7_1 @@ -0,0 +1 @@ +./test/relaxng/tutor9_7_1.xml validates diff --git a/result/relaxng/tutor9_7_1.err b/result/relaxng/tutor9_7_1.err new file mode 100644 index 00000000..20c76cb6 --- /dev/null +++ b/result/relaxng/tutor9_7_1.err @@ -0,0 +1,6 @@ +xmlRelaxNGCheckCombine(): merging inline.class defines: 1 +xmlRelaxNGValidateDefinition(): validated italic : 0 +xmlRelaxNGValidateDefinition(): validated em : 0 +xmlRelaxNGValidateDefinition(): validated bold : 0 +xmlRelaxNGValidateDefinition(): validated p : 0 +xmlRelaxNGValidateDefinition(): validated doc : 0 diff --git a/result/relaxng/tutor9_8_1 b/result/relaxng/tutor9_8_1 new file mode 100644 index 00000000..1849f8b5 --- /dev/null +++ b/result/relaxng/tutor9_8_1 @@ -0,0 +1 @@ +./test/relaxng/tutor9_8_1.xml validates diff --git a/result/relaxng/tutor9_8_1.err b/result/relaxng/tutor9_8_1.err new file mode 100644 index 00000000..20c76cb6 --- /dev/null +++ b/result/relaxng/tutor9_8_1.err @@ -0,0 +1,6 @@ +xmlRelaxNGCheckCombine(): merging inline.class defines: 1 +xmlRelaxNGValidateDefinition(): validated italic : 0 +xmlRelaxNGValidateDefinition(): validated em : 0 +xmlRelaxNGValidateDefinition(): validated bold : 0 +xmlRelaxNGValidateDefinition(): validated p : 0 +xmlRelaxNGValidateDefinition(): validated doc : 0 diff --git a/result/relaxng/tutor9_9_1 b/result/relaxng/tutor9_9_1 new file mode 100644 index 00000000..d88f01a9 --- /dev/null +++ b/result/relaxng/tutor9_9_1 @@ -0,0 +1 @@ +./test/relaxng/tutor9_9_1.xml validates diff --git a/result/relaxng/tutor9_9_1.err b/result/relaxng/tutor9_9_1.err new file mode 100644 index 00000000..dc2c439a --- /dev/null +++ b/result/relaxng/tutor9_9_1.err @@ -0,0 +1,5 @@ +xmlRelaxNGValidateDefinition(): validated italic : 0 +xmlRelaxNGValidateDefinition(): validated em : 0 +xmlRelaxNGValidateDefinition(): validated bold : 0 +xmlRelaxNGValidateDefinition(): validated p : 0 +xmlRelaxNGValidateDefinition(): validated doc : 0 diff --git a/test/relaxng/addressBook.rng b/test/relaxng/addressBook.rng new file mode 100644 index 00000000..3d910f9c --- /dev/null +++ b/test/relaxng/addressBook.rng @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/inline3.rng b/test/relaxng/inline3.rng new file mode 100644 index 00000000..72f9db68 --- /dev/null +++ b/test/relaxng/inline3.rng @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor9_10.rng b/test/relaxng/tutor9_10.rng new file mode 100644 index 00000000..c5b38dba --- /dev/null +++ b/test/relaxng/tutor9_10.rng @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor9_10_1.xml b/test/relaxng/tutor9_10_1.xml new file mode 100644 index 00000000..139a0793 --- /dev/null +++ b/test/relaxng/tutor9_10_1.xml @@ -0,0 +1,3 @@ + +

abcdefg

+
diff --git a/test/relaxng/tutor9_11.rng b/test/relaxng/tutor9_11.rng new file mode 100644 index 00000000..cf63b02b --- /dev/null +++ b/test/relaxng/tutor9_11.rng @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor9_11_1.xml b/test/relaxng/tutor9_11_1.xml new file mode 100644 index 00000000..c542fa64 --- /dev/null +++ b/test/relaxng/tutor9_11_1.xml @@ -0,0 +1,3 @@ + + foobar + diff --git a/test/relaxng/tutor9_12.rng b/test/relaxng/tutor9_12.rng new file mode 100644 index 00000000..be10b85a --- /dev/null +++ b/test/relaxng/tutor9_12.rng @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor9_12_1.xml b/test/relaxng/tutor9_12_1.xml new file mode 100644 index 00000000..c542fa64 --- /dev/null +++ b/test/relaxng/tutor9_12_1.xml @@ -0,0 +1,3 @@ + + foobar + diff --git a/test/relaxng/tutor9_7_1.xml b/test/relaxng/tutor9_7_1.xml new file mode 100644 index 00000000..139a0793 --- /dev/null +++ b/test/relaxng/tutor9_7_1.xml @@ -0,0 +1,3 @@ + +

abcdefg

+
diff --git a/test/relaxng/tutor9_8.rng b/test/relaxng/tutor9_8.rng new file mode 100644 index 00000000..16a141d8 --- /dev/null +++ b/test/relaxng/tutor9_8.rng @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor9_8_1.xml b/test/relaxng/tutor9_8_1.xml new file mode 100644 index 00000000..139a0793 --- /dev/null +++ b/test/relaxng/tutor9_8_1.xml @@ -0,0 +1,3 @@ + +

abcdefg

+
diff --git a/test/relaxng/tutor9_9.rng b/test/relaxng/tutor9_9.rng new file mode 100644 index 00000000..9f2e5eaf --- /dev/null +++ b/test/relaxng/tutor9_9.rng @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor9_9_1.xml b/test/relaxng/tutor9_9_1.xml new file mode 100644 index 00000000..139a0793 --- /dev/null +++ b/test/relaxng/tutor9_9_1.xml @@ -0,0 +1,3 @@ + +

abcdefg

+