diff options
author | Daniel Veillard <veillard@redhat.com> | 2015-03-16 08:38:36 +0800 |
---|---|---|
committer | Daniel Veillard <veillard@redhat.com> | 2015-03-16 08:43:37 +0800 |
commit | 2fab235d10e8aee321133d11df61e4527a02a511 (patch) | |
tree | b53a5b58cd7d08fb655a0899337cd0ef4d49e7d1 | |
parent | 02b252d7a272483077f905eb3a71d489410d1c06 (diff) | |
download | libxml2-2fab235d10e8aee321133d11df61e4527a02a511.tar.gz |
Fix support for except in nameclasses
For https://bugzilla.gnome.org/show_bug.cgi?id=565219
The code was imply missing even if simple, added a few regression
tests.
-rw-r--r-- | relaxng.c | 6 | ||||
-rw-r--r-- | result/relaxng/565219_0 | 0 | ||||
-rw-r--r-- | result/relaxng/565219_0.err | 2 | ||||
-rw-r--r-- | result/relaxng/565219_1 | 0 | ||||
-rw-r--r-- | result/relaxng/565219_1.err | 1 | ||||
-rw-r--r-- | result/relaxng/565219_2 | 0 | ||||
-rw-r--r-- | result/relaxng/565219_2.err | 2 | ||||
-rw-r--r-- | result/relaxng/565219_err | 1 | ||||
-rw-r--r-- | result/relaxng/565219_valid | 0 | ||||
-rw-r--r-- | test/relaxng/565219.rng | 14 | ||||
-rw-r--r-- | test/relaxng/565219_0.xml | 1 | ||||
-rw-r--r-- | test/relaxng/565219_1.xml | 1 | ||||
-rw-r--r-- | test/relaxng/565219_2.xml | 1 |
13 files changed, 28 insertions, 1 deletions
@@ -3819,7 +3819,11 @@ xmlRelaxNGCompareNameClasses(xmlRelaxNGDefinePtr def1, return (0); return (1); } else if (def1->type == XML_RELAXNG_EXCEPT) { - TODO ret = 0; + ret = xmlRelaxNGCompareNameClasses(def1->content, def2); + if (ret == 0) + ret = 1; + else if (ret == 1) + ret = 0; } else { TODO ret = 0; } diff --git a/result/relaxng/565219_0 b/result/relaxng/565219_0 new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/result/relaxng/565219_0 diff --git a/result/relaxng/565219_0.err b/result/relaxng/565219_0.err new file mode 100644 index 00000000..e3f73fac --- /dev/null +++ b/result/relaxng/565219_0.err @@ -0,0 +1,2 @@ +./test/relaxng/565219_0.xml:1: element foo: Relax-NG validity error : Element foo has wrong namespace: expecting http://bar.com/ +./test/relaxng/565219_0.xml fails to validate diff --git a/result/relaxng/565219_1 b/result/relaxng/565219_1 new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/result/relaxng/565219_1 diff --git a/result/relaxng/565219_1.err b/result/relaxng/565219_1.err new file mode 100644 index 00000000..2999bbae --- /dev/null +++ b/result/relaxng/565219_1.err @@ -0,0 +1 @@ +./test/relaxng/565219_1.xml validates diff --git a/result/relaxng/565219_2 b/result/relaxng/565219_2 new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/result/relaxng/565219_2 diff --git a/result/relaxng/565219_2.err b/result/relaxng/565219_2.err new file mode 100644 index 00000000..7a997d35 --- /dev/null +++ b/result/relaxng/565219_2.err @@ -0,0 +1,2 @@ +./test/relaxng/565219_2.xml:1: element foo: Relax-NG validity error : Element foo has wrong namespace: expecting http://bar.com/ +./test/relaxng/565219_2.xml fails to validate diff --git a/result/relaxng/565219_err b/result/relaxng/565219_err new file mode 100644 index 00000000..c43e67cf --- /dev/null +++ b/result/relaxng/565219_err @@ -0,0 +1 @@ +./test/relaxng/565219.rng validates diff --git a/result/relaxng/565219_valid b/result/relaxng/565219_valid new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/result/relaxng/565219_valid diff --git a/test/relaxng/565219.rng b/test/relaxng/565219.rng new file mode 100644 index 00000000..087ed956 --- /dev/null +++ b/test/relaxng/565219.rng @@ -0,0 +1,14 @@ +<grammar xmlns="http://relaxng.org/ns/structure/1.0"> + <start> + <element> + <anyName> + <except> + <nsName ns="http://bar.com/"/> + <nsName ns="http://foo.com/"/> + </except> + </anyName> + <empty/> + </element> + </start> +</grammar> + diff --git a/test/relaxng/565219_0.xml b/test/relaxng/565219_0.xml new file mode 100644 index 00000000..a964a07b --- /dev/null +++ b/test/relaxng/565219_0.xml @@ -0,0 +1 @@ +<foo xmlns="http://foo.com/"/> diff --git a/test/relaxng/565219_1.xml b/test/relaxng/565219_1.xml new file mode 100644 index 00000000..f1999f80 --- /dev/null +++ b/test/relaxng/565219_1.xml @@ -0,0 +1 @@ +<foo/> diff --git a/test/relaxng/565219_2.xml b/test/relaxng/565219_2.xml new file mode 100644 index 00000000..a964a07b --- /dev/null +++ b/test/relaxng/565219_2.xml @@ -0,0 +1 @@ +<foo xmlns="http://foo.com/"/> |