W3C home > Mailing lists > Public > xmlschema-dev@w3.org > December 2003

xsd:choice between simpleContent and an element

From: Jeremy Vander Kam (ARC) <Jeremy.C.VanderKam@nasa.gov>
Date: Mon, 01 Dec 2003 13:27:18 -0500
Message-Id: <5.1.1.6.0.20031201125623.00b1c7b0@mail.arc.nasa.gov>
To: xmlschema-dev@w3.org

Hi all,

I would like to do something like this:

<xsd:complexType name="MyType">
  <xsd:choice>
   <xsd:element name="Distribution" type="DistType"/>
   <xsd:simpleContent>
     <xsd:extension base="xsd:double">
       <xsd:attribute name="type" use="required">
           <xsd:simpleType>
             <xsd:restriction base="xsd:string">
               <xsd:enumeration value="double"/>
             </xsd:restriction>
           </xsd:simpleType>
         </xsd:attribute>
     </xsd:extension>
   </xsd:simpleContent>
  </xsd:choice>
</xsd:complexType>

So I have the option of defining an element by either a set of attributes 
and simple content OR by a child element.... Is this possible? If so, how? 
I would like to be able to specify something like:

<xsd:element name="Variable" type="MyType/>

  such that the resulting XML could be either:

<Variable>42.1</Variable>

or

<Variable>
   <Distribution/>
</Variable>

But NOT mixed content such as:

<Variable>
   42.1<Distribution/>
</Variable>

So I guess the "gotcha" is that I want to control the type of the content 
when it is simpleContent - making it xsd:double in this example.

Thanks!


----------
Jeremy Vander Kam
Aerospace Engineer
Systems Analysis Branch
NASA Ames Research Center
Jeremy.C.VanderKam@nasa.gov
513 871 7425
Received on Monday, 1 December 2003 13:32:02 GMT

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