W3C home > Mailing lists > Public > xmlschema-dev@w3.org > March 2005

RE: Either-Or elements

From: Stan Kitsis <skits@microsoft.com>
Date: Mon, 21 Mar 2005 21:20:57 -0800
Message-ID: <15A5AEEF6D717C4FB7D010F14B5C752901D319C3@RED-MSG-43.redmond.corp.microsoft.com>
To: <RPearse@360commerce.com>, <xmlschema-dev@w3.org>

<xsd:complexType name="somethingType"> 
        <xsd:choice> 
                <xsd:element name="foo" /> 
                <xsd:element name="bar" /> 
        </xsd:choice> 
</xsd:complexType> 

 
________________________________

From: xmlschema-dev-request@w3.org on behalf of RPearse@360commerce.com
Sent: Mon 3/21/2005 11:02 AM
To: xmlschema-dev@w3.org
Subject: Either-Or elements



Using a DTD, I can specify that the something element can only have foo or bar, but not both with this: <!ELEMENT something ((foo|bar)*)> 

In an XSD, I would have this: 

<?xml version="1.0"?> 

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 

<xsd:element name="something" type="somethingType" /> 

<xsd:complexType name="somethingType"> 
        <xsd:sequence> 
                <xsd:element name="foo" minOccurs="1" maxOccurs="1" /> 
                <xsd:element name="bar" minOccurs="1" maxOccurs="1" /> 
        </xsd:sequence> 
</xsd:complexType> 

How would I specify that the user has to have the foo or bar element, but not both? Currently, this XSD seems to require that you have exactly one foo and one bar in your instance document. 

Thanks, 

Robert 
Received on Tuesday, 22 March 2005 05:21:53 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 11 January 2011 00:14:49 GMT