[XMLSCHEMA-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: unordered sequence

From: Pete Cordell <petexmldev@codalogic.com>
Date: Sun, 9 Nov 2008 14:15:12 -0000
Message-ID: <EE05783569A940C38A322A59E041B292@Codalogic>
To: "Richard Markus" <ricccmarkus@gmail.com>, <xmlschema-dev@w3.org>
Re: unordered sequence

----- Original Message From: "Richard Markus"

> The sequence would be good, but the order doesn't matter, and the
> sequence has a restriction for the order of the elements.

Paradoxically, when order doesn't matter the recommendation is to use 
<xs:sequence>, which does impose an order.  The theory is roughly if the 
order doesn't matter, then it won't matter if an order is imposed!

So with XSD 1.0 what you have presented below is as close as you can get to 
what you want.

In the new version of XML schema (1.1) that is coming up, the restriction on 
<xs:all> only allowing a maxOccurs of 1 (or less) will be removed and you 
will be able to do exactly what you want.  But editing work on XSD 1.1 is 
still in progress so most people won't want to hold up their development 
until its available.

HTH,

Pete Cordell
Codalogic Ltd
Interface XML to C++ the easy way using XML C++
data binding to convert XSD schemas to C++ classes.
Visit http://www.codalogic.com/lmx/ for more info

----- Original Message ----- 
From: "Richard Markus" <ricccmarkus@gmail.com>
To: <xmlschema-dev@w3.org>
Sent: Friday, November 07, 2008 3:53 PM
Subject: unordered sequence


>
>
> Hi,
>
> I have a question regarding compositors. I didn't find a way to create
> a schema definition for the following case.
> <doc>
>  <a/>
>  <b/>
>  <c/>
>  <c/>
>  <d/>
>  <e/>
> </doc>
> I'd like to create a schema, that requires the "a" and "b" elements,
> some interval for "c" element, and some other interval for "d" and
> "e". The order is not important.
>
> The sequence would be good, but the order doesn't matter, and the
> sequence has a restriction for the order of the elements.
>
> Using sequence the schema would be something like this:
> <xs:element name="doc">
>  <xs:complexType>
>    <xs:sequence>
>      <xs:element name="a" minOccurs="1" maxOccurs="1" type="xs:string"/>
>      <xs:element name="b" minOccurs="1" maxOccurs="1" type="xs:string"/>
>      <xs:element name="c" minOccurs="2" maxOccurs="4" type="xs:string"/>
>      <xs:element name="d" minOccurs="0" maxOccurs="1" type="xs:string"/>
>      <xs:element name="e" minOccurs="0" maxOccurs="1" type="xs:string"/>
>    </xs:sequence>
>  </xs:complexType>
> </xs:element>
>
> The "all" is also not suitable, because the "maxOccus" is limited to 1.
> The "choice" is not good, because I cannot verify, that the correct
> number of elements.
>
> Is there any way to describe this structure with schema?
>
> Thanks in advance
> --Richard--
>
>
> 
Received on Sunday, 9 November 2008 14:16:04 GMT

Subscribe to the Stylus Scoop newsletter for helpful XML tips and tutorials.
Email
First Name
Last Name
Company

Download Stylus Studio 6 XML Enterprise Edition

Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2007 All Rights Reserved.