Enumerating A Simple Type : enumeration « XML Schema « XML Tutorial






File: Schema.xsd

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  targetNamespace="http://www.java2s.com" xmlns="http://www.java2s.com"
  elementFormDefault="qualified">

    <xs:element name = "Tshirt">
       <xs:complexType>
          <xs:sequence>
             <xs:element name = "Color" type = "clothesColorType" />
             <xs:element name = "Size" type = "clothesSizeType" />
          </xs:sequence>
       </xs:complexType>
    </xs:element>
       
    <xs:simpleType name="clothesSizeType">
       <xs:restriction base="xs:string">
          <xs:enumeration value="S" />
          <xs:enumeration value="M" />
          <xs:enumeration value="L" />
          <xs:enumeration value="XL" />
       </xs:restriction>
    </xs:simpleType>
       
    <xs:simpleType name="clothesColorType">
       <xs:restriction base="xs:string">
          <xs:enumeration value="Black" />
          <xs:enumeration value="White" />
          <xs:enumeration value="Green" />
          <xs:enumeration value="Blue" />
       </xs:restriction>
    </xs:simpleType>
</xs:schema>

File: Data.xml

<Tshirt>
   <Color>Blue</Color>
   <Size>XL</Size>
</Tshirt>

However, this would not be allowed:

<Tshirt>
   <Color>LightBlue</Color>
   <Size>10</Size>
</Tshirt>








3.66.enumeration
3.66.1.Specifying a Set of Acceptable Values
3.66.2.enumeration Constrains the value of the data type to a defined set of values
3.66.3.Enumeration limits a value space to a specific set of values - if a value isn't specified in the set in the schema, it isn't valid.
3.66.4.Enumerating A Simple Type