[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