Salut Daniel! Daniel Veillard via xml schrieb am 22.11.18 um 18:32: > I have just tagged the Release Candidate 1 in git and pushed a signed > tarball and signed rpms to the usual place: > > ftp://xmlsoft.org/libxml2/
I think something changed in the RelaxNG code. When I try to validate a simple Schematron schema file (attached) against the schematron RNG spec here: https://github.com/lxml/lxml/blob/82601a09d015bc3e7a4090223fcbb9a5d5d4590d/src/lxml/isoschematron/resources/rng/iso-schematron.rng it validates in libxml2 2.9.4 (sorry, that's what I have installed, but I'm pretty sure it also worked with at least 2.9.7 and probably also 2.9.8) but fails in 2.9.9-rc1. I attached the output of both attempts. Specifically, I get the following error, which seems nonsense, given that "title" is the first child: """ -:3: element title: Relax-NG validity error : Expecting element p, got title Relax-NG validity error : Extra element rule in interleave """ Something seems to be wrong with the interleave/group combination in the schema, lines 56/61. Any idea? Stefan
$ xmllint --relaxng src/lxml/isoschematron/resources/rng/iso-schematron.rng - <<EOF <schema xmlns="http://purl.oclc.org/dsdl/schematron"> <pattern id="OpenModel"> <title>Open Model</title> <rule context="AAA"> <assert test="BBB"> BBB element is not present</assert> <assert test="CCC"> CCC element is not present</assert> </rule> </pattern> <pattern id="ClosedModel"> <title>Closed model"</title> <rule context="AAA"> <assert test="BBB"> BBB element is not present</assert> <assert test="CCC"> CCC element is not present</assert> <assert test="count(BBB|CCC) = count (*)">There is an extra element</assert> </rule> </pattern> </schema> EOF <?xml version="1.0"?> <schema xmlns="http://purl.oclc.org/dsdl/schematron"> <pattern id="OpenModel"> <title>Open Model</title> <rule context="AAA"> <assert test="BBB"> BBB element is not present</assert> <assert test="CCC"> CCC element is not present</assert> </rule> </pattern> <pattern id="ClosedModel"> <title>Closed model"</title> <rule context="AAA"> <assert test="BBB"> BBB element is not present</assert> <assert test="CCC"> CCC element is not present</assert> <assert test="count(BBB|CCC) = count (*)">There is an extra element</assert> </rule> </pattern> </schema> - validates $ build/tmp/libxml2-2.9.9/xmllint --relaxng src/lxml/isoschematron/resources/rng/iso-schematron.rng - <<EOF <schema xmlns="http://purl.oclc.org/dsdl/schematron"> <pattern id="OpenModel"> <title>Open Model</title> <rule context="AAA"> <assert test="BBB"> BBB element is not present</assert> <assert test="CCC"> CCC element is not present</assert> </rule> </pattern> <pattern id="ClosedModel"> <title>Closed model"</title> <rule context="AAA"> <assert test="BBB"> BBB element is not present</assert> <assert test="CCC"> CCC element is not present</assert> <assert test="count(BBB|CCC) = count (*)">There is an extra element</assert> </rule> </pattern> </schema> EOF <?xml version="1.0"?> <schema xmlns="http://purl.oclc.org/dsdl/schematron"> <pattern id="OpenModel"> <title>Open Model</title> <rule context="AAA"> <assert test="BBB"> BBB element is not present</assert> <assert test="CCC"> CCC element is not present</assert> </rule> </pattern> <pattern id="ClosedModel"> <title>Closed model"</title> <rule context="AAA"> <assert test="BBB"> BBB element is not present</assert> <assert test="CCC"> CCC element is not present</assert> <assert test="count(BBB|CCC) = count (*)">There is an extra element</assert> </rule> </pattern> </schema> -:3: element title: Relax-NG validity error : Expecting element p, got title Relax-NG validity error : Extra element rule in interleave -:4: element rule: Relax-NG validity error : Element pattern failed to validate content -:10: element title: Relax-NG validity error : Expecting element p, got title Relax-NG validity error : Extra element rule in interleave -:11: element rule: Relax-NG validity error : Element pattern failed to validate content -:9: element pattern: Relax-NG validity error : Expecting element p, got pattern Relax-NG validity error : Extra element pattern in interleave -:9: element pattern: Relax-NG validity error : Element schema failed to validate content - fails to validate
<schema xmlns="http://purl.oclc.org/dsdl/schematron"> <pattern id="OpenModel"> <title>Open Model</title> <rule context="AAA"> <assert test="BBB"> BBB element is not present</assert> <assert test="CCC"> CCC element is not present</assert> </rule> </pattern> <pattern id="ClosedModel"> <title>Closed model"</title> <rule context="AAA"> <assert test="BBB"> BBB element is not present</assert> <assert test="CCC"> CCC element is not present</assert> <assert test="count(BBB|CCC) = count (*)">There is an extra element</assert> </rule> </pattern> </schema>
_______________________________________________ xml mailing list, project page http://xmlsoft.org/ xml@gnome.org https://mail.gnome.org/mailman/listinfo/xml