diff --git a/relaxng.c b/relaxng.c index 1c337e3d..268c4e76 100644 --- a/relaxng.c +++ b/relaxng.c @@ -6395,7 +6395,10 @@ xmlRelaxNGCheckRules(xmlRelaxNGParserCtxtPtr ctxt, NULL, NULL); } if ((!(flags & XML_RELAXNG_IN_ONEORMORE)) - && (cur->name == NULL)) { + && cur->name == NULL + /* following is checking alternative name class readiness + in case it went the "choice" route */ + && cur->nameClass == NULL) { if (cur->ns == NULL) { xmlRngPErr(ctxt, cur->node, XML_RNGP_ANYNAME_ATTR_ANCESTOR, "Found anyName attribute without oneOrMore ancestor\n", diff --git a/result/relaxng/ambig_name-class2_err b/result/relaxng/ambig_name-class2_err new file mode 100644 index 00000000..2c1ba8d3 --- /dev/null +++ b/result/relaxng/ambig_name-class2_err @@ -0,0 +1 @@ +./test/relaxng/ambig_name-class2.rng validates diff --git a/result/relaxng/ambig_name-class2_valid b/result/relaxng/ambig_name-class2_valid new file mode 100644 index 00000000..e69de29b diff --git a/test/relaxng/ambig_name-class2.rng b/test/relaxng/ambig_name-class2.rng new file mode 120000 index 00000000..6cc955c1 --- /dev/null +++ b/test/relaxng/ambig_name-class2.rng @@ -0,0 +1 @@ +ambig_name-class.xml \ No newline at end of file diff --git a/test/relaxng/ambig_name-class2.xml b/test/relaxng/ambig_name-class2.xml new file mode 100644 index 00000000..3c1e4e25 --- /dev/null +++ b/test/relaxng/ambig_name-class2.xml @@ -0,0 +1 @@ +