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: Interleave


The hardest issue that we have to resolve before we can release RELAX NG 1.0
is the issue of restrictions on interleave.  What progress have people made
on this issue?

I've observed 3 common cases for interleave:

1. Combining attributes.  In this case one or more operands of the
interleave contain just groups of attributes.

2. Unordered content.  In this case the operands contain elements, choice
and oneOrMore.  The operands don't contain group.  The interleave element
may occur within a interleave, choice or group but doesn't occur in
oneOrMore.

3. Inclusions. In this case, one operand of the interleave can be anything,
but the other is a zeroOrMore of a choice of elements. <mixed> is basically
the same.  This case can occur anywhere.

I think case 3 is manageable because you can transform something like

a* & (b, c, d)

into

a*, (b, a*), (c, a*), (d, a*)

I think case 1 is manageable, because interleave is equivalent to group in
such cases.

The requirements I have for a restriction on interleave are:

- It allows the common cases above
- It prohibits cases that cause exponential behaviour in a derivative-based
implementation (such as Jing)
- It makes it practical to determine when one RELAX NG schema subsumes
another
- The restriction can be checked straightforwardly (independently of any
instance)
- The restriction can be specified straightforwardly

I fear it may not be possible to satisfy all these requirements
simultaneously.

James




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


Powered by eList eXpress LLC