aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.am2
-rw-r--r--relaxng.c4
-rw-r--r--result/relaxng/558452_00
-rw-r--r--result/relaxng/558452_0.err1
-rw-r--r--result/relaxng/558452_10
-rw-r--r--result/relaxng/558452_1.err2
-rw-r--r--result/relaxng/558452_20
-rw-r--r--result/relaxng/558452_2.err1
-rw-r--r--result/relaxng/558452_30
-rw-r--r--result/relaxng/558452_3.err1
-rw-r--r--result/relaxng/558452_40
-rw-r--r--result/relaxng/558452_4.err2
-rw-r--r--result/relaxng/558452_err1
-rw-r--r--result/relaxng/558452_valid0
-rw-r--r--runtest.c3
-rw-r--r--test/relaxng/558452.rng21
-rw-r--r--test/relaxng/558452_0.xml6
-rw-r--r--test/relaxng/558452_1.xml3
-rw-r--r--test/relaxng/558452_2.xml4
-rw-r--r--test/relaxng/558452_3.xml5
-rw-r--r--test/relaxng/558452_4.xml7
21 files changed, 61 insertions, 2 deletions
diff --git a/Makefile.am b/Makefile.am
index ebaae313..807e21d7 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1053,7 +1053,7 @@ Relaxtests: xmllint$(EXEEXT)
> res.$$name 2> err.$$name;\
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
diff $(srcdir)/result/relaxng/"$$name"_"$$xno" res.$$name;\
- if [ "$$name" != "tutor10_1" -a "$$name" != "tutor10_2" -a "$$name" != "tutor3_2" -a "$$name" != "307377" ] ; then \
+ if [ "$$name" != "tutor10_1" -a "$$name" != "tutor10_2" -a "$$name" != "tutor3_2" -a "$$name" != "307377" -a "$$name" != "tutor8_2" ] ; then \
diff $(srcdir)/result/relaxng/"$$name"_"$$xno".err \
err.$$name | grep -v "error detected at";\
fi ; grep Unimplemented err.$$name`; \
diff --git a/relaxng.c b/relaxng.c
index a0ddcc6d..6b83cfd3 100644
--- a/relaxng.c
+++ b/relaxng.c
@@ -2374,6 +2374,9 @@ xmlRelaxNGAddValidError(xmlRelaxNGValidCtxtPtr ctxt,
} else {
node = seq = NULL;
}
+ if ((node == NULL) && (seq == NULL)) {
+ node = ctxt->pnode;
+ }
xmlRelaxNGShowValidError(ctxt, err, node, seq, arg1, arg2);
}
/*
@@ -4682,6 +4685,7 @@ xmlRelaxNGParseImportRefs(xmlRelaxNGParserCtxtPtr ctxt,
return(-1);
}
xmlHashScan(grammar->refs, xmlRelaxNGParseImportRef, ctxt);
+ return(0);
}
/**
diff --git a/result/relaxng/558452_0 b/result/relaxng/558452_0
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/result/relaxng/558452_0
diff --git a/result/relaxng/558452_0.err b/result/relaxng/558452_0.err
new file mode 100644
index 00000000..fecc3e90
--- /dev/null
+++ b/result/relaxng/558452_0.err
@@ -0,0 +1 @@
+./test/relaxng/558452_0.xml validates
diff --git a/result/relaxng/558452_1 b/result/relaxng/558452_1
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/result/relaxng/558452_1
diff --git a/result/relaxng/558452_1.err b/result/relaxng/558452_1.err
new file mode 100644
index 00000000..1e225be1
--- /dev/null
+++ b/result/relaxng/558452_1.err
@@ -0,0 +1,2 @@
+./test/relaxng/558452_1.xml:2: element doc: Relax-NG validity error : Expecting an element , got nothing
+./test/relaxng/558452_1.xml fails to validate
diff --git a/result/relaxng/558452_2 b/result/relaxng/558452_2
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/result/relaxng/558452_2
diff --git a/result/relaxng/558452_2.err b/result/relaxng/558452_2.err
new file mode 100644
index 00000000..d48287c0
--- /dev/null
+++ b/result/relaxng/558452_2.err
@@ -0,0 +1 @@
+./test/relaxng/558452_2.xml validates
diff --git a/result/relaxng/558452_3 b/result/relaxng/558452_3
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/result/relaxng/558452_3
diff --git a/result/relaxng/558452_3.err b/result/relaxng/558452_3.err
new file mode 100644
index 00000000..0d33cdb8
--- /dev/null
+++ b/result/relaxng/558452_3.err
@@ -0,0 +1 @@
+./test/relaxng/558452_3.xml validates
diff --git a/result/relaxng/558452_4 b/result/relaxng/558452_4
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/result/relaxng/558452_4
diff --git a/result/relaxng/558452_4.err b/result/relaxng/558452_4.err
new file mode 100644
index 00000000..22e12fa1
--- /dev/null
+++ b/result/relaxng/558452_4.err
@@ -0,0 +1,2 @@
+./test/relaxng/558452_4.xml:6: element elem: Relax-NG validity error : Did not expect element elem there
+./test/relaxng/558452_4.xml fails to validate
diff --git a/result/relaxng/558452_err b/result/relaxng/558452_err
new file mode 100644
index 00000000..b1628461
--- /dev/null
+++ b/result/relaxng/558452_err
@@ -0,0 +1 @@
+./test/relaxng/558452.rng validates
diff --git a/result/relaxng/558452_valid b/result/relaxng/558452_valid
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/result/relaxng/558452_valid
diff --git a/runtest.c b/runtest.c
index c821786b..1d646959 100644
--- a/runtest.c
+++ b/runtest.c
@@ -3257,7 +3257,8 @@ rngStreamTest(const char *filename,
* hack is also done in the Makefile
*/
if ((!strcmp(prefix, "tutor10_1")) || (!strcmp(prefix, "tutor10_2")) ||
- (!strcmp(prefix, "tutor3_2")) || (!strcmp(prefix, "307377")))
+ (!strcmp(prefix, "tutor3_2")) || (!strcmp(prefix, "307377")) ||
+ (!strcmp(prefix, "tutor8_2")))
disable_err = 1;
snprintf(pattern, 499, "./test/relaxng/%s_?.xml", prefix);
diff --git a/test/relaxng/558452.rng b/test/relaxng/558452.rng
new file mode 100644
index 00000000..80fbf7b5
--- /dev/null
+++ b/test/relaxng/558452.rng
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<grammar ns="http://www.example.com/choice"
+ xmlns="http://relaxng.org/ns/structure/1.0">
+ <start>
+ <element name="doc" ns="">
+ <ref name="elem"/>
+ <optional>
+ <ref name="elem"/>
+ <optional>
+ <ref name="elem"/>
+ </optional>
+ </optional>
+ </element>
+ </start>
+
+ <define name="elem">
+ <element name="elem" ns="">
+ <text/>
+ </element>
+ </define>
+</grammar>
diff --git a/test/relaxng/558452_0.xml b/test/relaxng/558452_0.xml
new file mode 100644
index 00000000..70440e23
--- /dev/null
+++ b/test/relaxng/558452_0.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<doc>
+ <elem/>
+ <elem/>
+ <elem/>
+</doc>
diff --git a/test/relaxng/558452_1.xml b/test/relaxng/558452_1.xml
new file mode 100644
index 00000000..2c569f91
--- /dev/null
+++ b/test/relaxng/558452_1.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<doc>
+</doc>
diff --git a/test/relaxng/558452_2.xml b/test/relaxng/558452_2.xml
new file mode 100644
index 00000000..6e246261
--- /dev/null
+++ b/test/relaxng/558452_2.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<doc>
+ <elem/>
+</doc>
diff --git a/test/relaxng/558452_3.xml b/test/relaxng/558452_3.xml
new file mode 100644
index 00000000..5ceb4682
--- /dev/null
+++ b/test/relaxng/558452_3.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<doc>
+ <elem/>
+ <elem/>
+</doc>
diff --git a/test/relaxng/558452_4.xml b/test/relaxng/558452_4.xml
new file mode 100644
index 00000000..a1ee72bf
--- /dev/null
+++ b/test/relaxng/558452_4.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<doc>
+ <elem/>
+ <elem/>
+ <elem/>
+ <elem/>
+</doc>