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).


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

does not cause exlosion, but

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


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.



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

Powered by eList eXpress LLC