From 236c8c09f0145a338fb383fb9bffffd09f33a981 Mon Sep 17 00:00:00 2001 From: "William M. Brack" Date: Sat, 20 Mar 2004 11:32:36 +0000 Subject: [PATCH] added check for external reference in xmlRelaxNGGetElements (bug 137718) * relaxng.c: added check for external reference in xmlRelaxNGGetElements (bug 137718) * test/relaxng/rngbug-001.*, result/relaxng/rngbug-001*: added regression test for above --- ChangeLog | 7 +++++++ relaxng.c | 3 ++- result/relaxng/proofsystem_err | 1 + result/relaxng/proofsystem_valid | 0 result/relaxng/rngbug-001_err | 1 + result/relaxng/rngbug-001_valid | 0 test/relaxng/rngbug-001.ext | 13 +++++++++++++ test/relaxng/rngbug-001.rng | 16 ++++++++++++++++ test/relaxng/rngbug-001.xml | 6 ++++++ 9 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 result/relaxng/proofsystem_err create mode 100644 result/relaxng/proofsystem_valid create mode 100644 result/relaxng/rngbug-001_err create mode 100644 result/relaxng/rngbug-001_valid create mode 100644 test/relaxng/rngbug-001.ext create mode 100644 test/relaxng/rngbug-001.rng create mode 100644 test/relaxng/rngbug-001.xml diff --git a/ChangeLog b/ChangeLog index ff9b4fab..7cefe544 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Sat Mar 20 19:26:03 HKT 2004 William Brack + + * relaxng.c: added check for external reference in + xmlRelaxNGGetElements (bug 137718) + * test/relaxng/rngbug-001.*, result/relaxng/rngbug-001*: added + regression test for above + Wed Mar 17 16:37:22 HKT 2004 William Brack * nanohttp.c: added a close for the local file descriptor diff --git a/relaxng.c b/relaxng.c index 5c01dcf5..cbc9073f 100644 --- a/relaxng.c +++ b/relaxng.c @@ -3978,7 +3978,8 @@ xmlRelaxNGGetElements(xmlRelaxNGParserCtxtPtr ctxt, (cur->type == XML_RELAXNG_OPTIONAL) || (cur->type == XML_RELAXNG_PARENTREF) || (cur->type == XML_RELAXNG_REF) || - (cur->type == XML_RELAXNG_DEF)) { + (cur->type == XML_RELAXNG_DEF) || + (cur->type == XML_RELAXNG_EXTERNALREF)) { /* * Don't go within elements or attributes or string values. * Just gather the element top list diff --git a/result/relaxng/proofsystem_err b/result/relaxng/proofsystem_err new file mode 100644 index 00000000..9fbcfdc9 --- /dev/null +++ b/result/relaxng/proofsystem_err @@ -0,0 +1 @@ +./test/relaxng/proofsystem.rng validates diff --git a/result/relaxng/proofsystem_valid b/result/relaxng/proofsystem_valid new file mode 100644 index 00000000..e69de29b diff --git a/result/relaxng/rngbug-001_err b/result/relaxng/rngbug-001_err new file mode 100644 index 00000000..4c301538 --- /dev/null +++ b/result/relaxng/rngbug-001_err @@ -0,0 +1 @@ +./test/relaxng/rngbug-001.rng validates diff --git a/result/relaxng/rngbug-001_valid b/result/relaxng/rngbug-001_valid new file mode 100644 index 00000000..e69de29b diff --git a/test/relaxng/rngbug-001.ext b/test/relaxng/rngbug-001.ext new file mode 100644 index 00000000..cb1883d8 --- /dev/null +++ b/test/relaxng/rngbug-001.ext @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/test/relaxng/rngbug-001.rng b/test/relaxng/rngbug-001.rng new file mode 100644 index 00000000..0bb5b0af --- /dev/null +++ b/test/relaxng/rngbug-001.rng @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/test/relaxng/rngbug-001.xml b/test/relaxng/rngbug-001.xml new file mode 100644 index 00000000..83ba73e9 --- /dev/null +++ b/test/relaxng/rngbug-001.xml @@ -0,0 +1,6 @@ + + x + + y + +