[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: Re: What exactly is prohibited by the constraint of RELAX NG?
Kohsuke KAWAGUCHI wrote:
> restrictions:
>
> #1 For every group <group> p1 p2 </group> and <interleave> p1 p2
> </interleave>, it is an error that p1 and p2 contains attribute
> patterns whose name may collide.
This is our agreement and I think that this is fine. The algorithm
shown in your mail looks fine.
> #2 For every <oneOrMore> p1 </oneOrMore>, if p1 contains attribute
> patterns, then no <group/> or <interleave/> is allowed between that
> attribute and <oneOrMore/>
This is our agreement. (I don' think that this is fine, though. I much
prefer <attribute>-less <oneOrMore> or <attribute>-and-<choice>-only
<oneOrMore>, especially because we have disallowed colliding attributes.)
> This algorithm detects the 2nd condition by invoking "check(p,false)"
>
> void check( Pattern p ) {
> switch( p ) {
> case <group> p1 p2 </group>:
> case <interleave> p1 p2 </interleave>:
> case <choice> p1 p2 </choice>:
> check(p1,inOneOrMore);
> check(p2,inOneOrMore);
Wht is "inOneOrMore"? Why do we need the second argument?
Cheers,
Makoto
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Powered by eList eXpress LLC