Re: xsd ambigious

Hi Andy,

Does something like the following work?
    ...
   <xsd:choice maxOccurs="unbounded">
    <xsd:element ref="a" minOccurs="0"/>
    <xsd:element ref="b" minOccurs="0"/>
    <xsd:element ref="c" minOccurs="0"/>
    <xsd:sequence minOccurs="0">
        <xsd:element ref="d"/>
        <xsd:choice>
            <xsd:sequence>
                 <xsd:element ref="e"/>
                 <xsd:element ref="f" minOccurs="0"/>
            </xsd:sequence>
            <xsd:element ref="f"/>
        </xsd:choice>
    </xsd:sequence>
    ...

HTH,

Pete.
--
=============================================
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://codalogic.com/lmx/ or http://www.xml2cpp.com
for more info
=============================================

----- Original Message ----- 
From: "Neill, Andrew" <andy.neill@siemens.com>
To: <xmlschema-dev@w3.org>
Sent: Wednesday, October 07, 2009 5:10 PM
Subject: xsd ambigious


Can anyone help with this XSD please? It doesnt seem to work?
Essentially i want to ensure that if "E" or "F" are populated then "D" is 
populated before them. The rest of the elements can appear in any order and 
any amount of times.

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="element">
  <xsd:complexType>
   <xsd:choice maxOccurs="unbounded">
    <xsd:element ref="a" minOccurs="0"/>
    <xsd:element ref="b" minOccurs="0"/>
    <xsd:element ref="c" minOccurs="0"/>
    <xsd:sequence>
     <xsd:element ref="d"/>
     <xsd:element ref="e"/>
    </xsd:sequence>
    <xsd:sequence>
     <xsd:element ref="d"/>
     <xsd:element ref="f"/>
    </xsd:sequence>
   </xsd:choice>
  </xsd:complexType>
 </xsd:element>
 <xsd:element name="a"/>
 <xsd:element name="b"/>
 <xsd:element name="c"/>
 <xsd:element name="d"/>
 <xsd:element name="e"/>
 <xsd:element name="f"/>
</xsd:schema>

Many Thanks,
Andy

Received on Thursday, 8 October 2009 10:07:43 UTC