- From: Michael Kay <mike@saxonica.com>
- Date: Wed, 6 Oct 2004 16:00:00 +0100
- To: "'Gary Fix'" <gary.fix@win-na.com>, <xmlschema-dev@w3.org>
Provided each element can appear at most once, you can do this with xsd:all.
The elements can be optional or mandatory, but not repeated (rather like
attributes, really).
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: xmlschema-dev-request@w3.org
> [mailto:xmlschema-dev-request@w3.org] On Behalf Of Gary Fix
> Sent: 06 October 2004 15:18
> To: xmlschema-dev@w3.org
> Subject: How ensure group elements exist and in any order
>
>
> Hi,
> When a group of elements ("VINGroup") is present in my xslt
> file, I want to confirm that all members of the group are
> present but they may be in any order (sequence)...
> Is there a way do this in the xsd?
> This is what I have so far but it forces the VINGroup
> elements to be in a specific order...
> thanks in advance,
> gary...
>
> <xsd:element name="Vehicle">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:choice minOccurs="1" maxOccurs="1">
> <!-- Case #1: VIN &
> Body/Make/Model Group Supplied -->
> <xsd:sequence>
> <xsd:element
> ref="VehicleIdentificationNumber"/>
> <xsd:group
> ref="VINGroup" minOccurs="1" maxOccurs="1"/>
> </xsd:sequence>
> <!-- Case #2: VIN Only Supplied -->
> <xsd:sequence>
> <xsd:element
> ref="VehicleIdentificationNumber" minOccurs="1"/>
> </xsd:sequence>
> <!-- Case #3: Body/Make/Model
> Group Only Supplied -->
> <xsd:sequence>
> <xsd:group
> ref="VINGroup" minOccurs="1" maxOccurs="1"/>
> </xsd:sequence>
> </xsd:choice>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:group name="VINGroup">
> <xsd:sequence>
> <xsd:element name="Body" type="xsd:string"/>
> <xsd:element name="Make" type="xsd:string"/>
> <xsd:element name="Model" type="xsd:string"/>
> </xsd:sequence>
> </xsd:group>
>
>
>
Received on Wednesday, 6 October 2004 15:00:07 UTC