Re: Entering freeze for release of libxml2-2.9.9
Stefan Behnel <[email protected]> Fri, 23 Nov 2018 21:54:16 +0100
| Newsgroups | gmane.comp.gnome.lib.xml.general |
|---|---|
| Message-ID | <[email protected]> |
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 _______________________________________________ xml mailing list, project page http://xmlsoft.org/ [email protected] https://mail.gnome.org/mailman/listinfo/xml
fail_log.txt
(text/plain, 3.6 KB)
$ 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
fail_schema.sch
(text/plain, 676 B)
<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>