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

Reply via email to