RE: [xml-dev] XML Schema Question: specifying restrictions for a list of elements

From
Eric van der Vlist <>
To
Date
2004-04-07T13:30:27Z
ID
<1081344627.3353.626.camel@delleric>
Thread
RE: [xml-dev] XML Schema Question: specifying restrictions for a list of elements
On Wed, 2004-04-07 at 14:51, Tom Gaven wrote:
> Peter, I don't know if this can be done in XSD, but here is a RELAX NG
> schema ( compact syntax ) that can handle it:
> 
> start  = computer_list
> computer_list = element computer_list { computer*  &  computerDefault }
> computer = element computer { computerNames }
> computerDefault = element computer { attribute default { xsd:boolean },
> computerNames }
> computerNames =  'HP' | 'Dell' 
> 
> You can interleave ('&' connector) the single 'computer with default
> attribute' with one or more 'computers without default attribute'.

Very nice.

What is needed here is probably to require one default attribute equal
to "true" and others either missing or equal to "false", but your schema
can easily be adapted:

start  = computer_list
computer_list = element computer_list { computer*  &  computerDefault }
computer = 
  element computer { 
   attribute default { xsd:boolean "false"}?, 
   computerNames 
  }
computerDefault = 
  element computer { 
   attribute default { xsd:boolean "true"},
   computerNames 
  }
computerNames =  'HP' | 'Dell' 

And that can't be done with WXS :) ...

Eric
-- 
Weblog:
                 http://eric.van-der-vlist.com/blog?t=category&a=English
Upcoming XML schema languages tutorial:
 - Amsterdam   -half day- (18/04/2004)        http://masl.to/?P220516D7
------------------------------------------------------------------------
Eric van der Vlist       http://xmlfr.org            http://dyomedea.com
(ISO) RELAX NG   ISBN:0-596-00421-4 http://oreilly.com/catalog/relax
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema
------------------------------------------------------------------------