- 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