Lists Home |
Date Index |
Jon IV Thompson Coon <firstname.lastname@example.org> writes:
> Spesifically the W3C schema.
> that's a lot of hours of failed DIY before folding out and resorting to
> asking someone whom might have a clue what they are doing.
> Simple problem (I assume): I need to allow unbounded occurrence of an
> element in the 'root' and following nested levels, but to only if it has
> not occurred in the same tree before.
> For example I have a set of elements in the likes of <b/><i/><u/> and I
> want to allow
> <b><i><u>text<u></i></b> and <b><i>I am</><i>very tired</i><b>
> but I do not (at all) want two same elements nested:
> <b><b></b></b> (can do) or <b><i><b>HOW?</b></i></b>
This can't be done with XML DTDs, could be done with SGML DTDs
(exclusion exceptions) and can be done with W3C XML Schema but
requires work. You have to define _seven_ type definitions, call them
noB, noI, noU
noBI, noBU, noUI
and define things following this pattern:
<xs:element name="b" type="noB"/>
<xs:complexType name="noB" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="i" type="noBI"/>
<xs:element name="u" type="noBU"/>
It was Michael Sperberg-McQueen who first systematically explained how
to reconstruct SGML's exclusion exceptions with local declarations as
above, but I can't immediately find the reference.
Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
Half-time member of W3C Team
2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
Fax: (44) 131 650-4587, e-mail: email@example.com
[mail really from me _always_ has this .sig -- mail without it is forged spam]