OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

relax-ng message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Subject: Re: Guarded normal form (part 1)


Murata Makoto wrote:
 
> We first introduce guards and clauses.  A guard is either a (possibly
> empty) sequence of <attribute> elements or an <oneOrMore> element
> containing a single <attribute> element.  Examples are shown below:
> 
> 	- <attribute name="foo"/>
> 
> 	- <attribute name="foo"/> followed by <attribute name="bar"/>
> 
> 	- <oneOrMore><attribute name="foo"/></oneOrMore>

If we allow <choice> (and <optional>) containing <attribute> or <empty/>
only, combinatory explosion can be often avoided (but not always).

E.g., 

<group>
  <optional><attribute name="a"/></optional>
  ...
  <optional><attribute name="z"/></optional>
</group>

does not cause exlosion, but

<group>
  <choice><attribute name="a"/><ref name="a"/></choice>
  ...
  <choice><attribute name="z"/><ref name="z"/></choice>
</group>

does.

We *can* allow any pattern as the child of <oneOrMore> as long as the 
pattern does not contain <ref>, <data>, <string>, or <anyString>.  However, 
it becomes more difficult to test satisfiability and equivalence of guards.

Cheers,

Makoto


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Powered by eList eXpress LLC