GNOME Bugzilla – Bug 636167
RelaxNG broken when two "define"s with the same name in difft rng files
Last modified: 2021-07-05 13:27:14 UTC
This bug is new in 2.7.4 or 2.7.5 and still exists in 2.7.8. It did not appear in 2.7.3. Running: echo "<A><B>AAA</B></A>" | xmllint --relaxng test.rng - with the following two trivial RNG documents should validate. But it does not. It says: -:1: element B: Relax-NG validity error : Did not expect element B there - fails to validate If you rename "myself" (in both define and ref) in one of the documents, it then works again. -- test.rng: <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> <start> <ref name="myself"/> </start> <define name="myself"> <element name="A"> <externalRef href="test2.rng"/> </element> </define> </grammar> -- test2.rng: <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> <start> <ref name="myself"/> </start> <define name="myself"> <element name="B"> <data type="NMTOKEN"> <param name="pattern">[A-Z0-9]*</param> </data> </element> </define> </grammar>
GNOME is going to shut down bugzilla.gnome.org in favor of gitlab.gnome.org. As part of that, we are mass-closing older open tickets in bugzilla.gnome.org which have not seen updates for a longer time (resources are unfortunately quite limited so not every ticket can get handled). If you can still reproduce the situation described in this ticket in a recent and supported software version, then please follow https://wiki.gnome.org/GettingInTouch/BugReportingGuidelines and create a new ticket at https://gitlab.gnome.org/GNOME/libxml2/-/issues/ Thank you for your understanding and your help.