- From: Avin Patel <vze49rz3@verizon.net>
- Date: Mon, 6 Jan 2003 18:19:46 -0500
- To: "xmlschema" <xmlschema-dev@w3.org>
- Message-ID: <01a801c2b5da$1a596780$643a42d1@Avin>
Hi All,
How can I write the XML Schema definition for following data value:
value1:
<size>
    <medium/>
</size>
value2:
<size>
    <value>15</value>
</size>
One possible way I can think about is:
<xsd:element name = "Size" type="SizeType">
<xsd:complexType name ="SizeType">
    <xsd:union memberTypes="xsd:integer">
    <xsd:simpleType>
       <xsd:restriction base="xsd:token">
          <xsd:enumeration value =  "<midium/>"/>
          <xsd:enumeration value =  "<large/>"/>
          <xsd:enumeration value =  "<small/>"/>
       </xsd:restriction>
    </xsd:simpleType>
 </xsd:simpleType>
But SAX validators considers value1:<size><medium/></size>, medium as "element" of size "element", not as "value". I can write in another way as:
<xsd:element name = "Size" type="SizeType">
<xsd:complexType name ="SizeType">
   <xsd:choice>
        <xsd:element name = "small" type="xsd:integer" default="0" />
        <xsd:element name = "large" type="xsd:integer" default="1" />
        <xsd:element name = "medium" type="xsd:integer" default="2" />
   </xsd:choice>
</xsd:complexType>
But I am not able mix this definition with integer value definition.
complexType mix mode can work for this case, but it is mostly not
supported by many XML parser. So I can't use mix mode.
Please provide any suggestion.
Thank you
Avin Patel
Received on Monday, 6 January 2003 18:20:08 UTC