- From: Jeni Tennison <jeni@jenitennison.com>
- Date: Tue, 9 Apr 2002 18:09:07 +0100
- To: Rob Tice <rob.tice@fdgroup.com>
- CC: "'xmlschema-dev@w3.org'" <xmlschema-dev@w3.org>
Hi Rob, > I have a list of 5 elements. I want to have at least 2 of them > appearing. With none of them appearing twice. > > Is there a cleann way of defining this other than defining a choice > between each possible combination!! Aside from defining a choice between each possible combination, your best bet is to create a more generous model: <xs:choice minOccurs="2"> <xs:element name="E1" /> <xs:element name="E2" /> <xs:element name="E3" /> <xs:element name="E4" /> <xs:element name="E5" /> </xs:choice> and then use Schematron to report whether there's more than one of the same element: <sch:rule context="*"> <sch:report test="preceding-sibling::*[name() = name(current())]"> There's more than one <sch:name /> element. </sch:report> </sch:rule> See http://www.topologi.com/public/Schtrn_XSD/Paper.html for details about how to incorporate Schematron rules into XML Schema schemas. Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/
Received on Tuesday, 9 April 2002 13:09:13 UTC