OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help



   Re: [xml-dev] limiting occurrence of recursive elements in scemas?

[ Lists Home | Date Index | Thread Index ]

Jon IV Thompson Coon <jon.thompson@helsinki.fi> 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: ht@cogsci.ed.ac.uk
		     URL: http://www.ltg.ed.ac.uk/~ht/
 [mail really from me _always_ has this .sig -- mail without it is forged spam]


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS