Re: Possibly incomplete step 4.7 of the RELAXNG simplification process

Nikolai Weibull via xml <[email protected]> Sat, 13 Oct 2018 00:22:02 +0200
Newsgroups gmane.comp.gnome.lib.xml.general
Message-ID <[email protected]>
Hi!

This has been fixed in merge request #10:

https://gitlab.gnome.org/GNOME/libxml2/merge_requests/10

along with some other RELAX NG issues that I found as well.

  Nikolai

Nikolai Weibull, 2018-09-07 20:49:

> I think that something is broken in the way libxml2 handles step 
> 4.7
> of the RELAXNG simplification process.
>
> Say that we have the following RELAXNG grammars.
>
> a.rng:
>
> <grammar xmlns="http://relaxng.org/ns/structure/1.0">
>  <include href="b.rng">
>    <start>
>      <notAllowed/>
>    </start>
>  </include>
>  <start combine="choice">
>    <element name="a">
>      <empty/>
>    </element>
>  </start>
> </grammar>
>
> b.rng:
>
> <grammar xmlns="http://relaxng.org/ns/structure/1.0">
>  <include href="c.rng">
>    <start>
>      <notAllowed/>
>    </start>
>  </include>
>  <start combine="choice">
>    <element name="b">
>      <empty/>
>    </element>
>  </start>
> </grammar>
>
> c.rng:
>
> <grammar xmlns="http://relaxng.org/ns/structure/1.0">
>  <start>
>    <element name="c">
>      <empty/>
>    </element>
>  </start>
> </grammar>
>
> The grammar defined in a.rng (and its included files) is 
> accepted by
> Jing as is.  Libxml2 however, complains that
>
> a.rng:5: element notAllowed: Relax-NG parser error : Some 
> <start>
> element miss the combine attribute