[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: [relax-ng] Restriction on interleave
Here's an attempt at a precise statement of the restriction on interleave
that deals with element, text and value.
First, we make list//interleave//data be a prohibited path.
Define the _alphabet_ of an pattern p to be
- the empty set if p is <attribute>
- { p } if p is <text>, <data>, <value> or <element>
- the union of the alphabets of the children of p if p is <choice>,
<oneOrMore>, <group> or <interleave>
Define a pattern p1 to _compete_ with a pattern p2 iff
- p1 is <text> and p2 is <text>
- p2 is <element> and p2 is <element> and there is a name that belongs to
both the name class of p1 and the name class of p2
- p1 is <value> and p2 is <value> and
-- the type attributes of p1 and p2 are different, or
-- the datatypeLibrary attributes of p1 and p2 are different, or
-- the content of p1 is equal to the content of p2 wrt their common datatype
Then the restriction is as follows. If a pattern p1 is a member of the
alphabetof one child of an <interleave> pattern, and a pattern p2 is a
member of the alphabet of the other child of the <interleave> pattern, then
p1 and p2 must not compete.
James
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Powered by eList eXpress LLC