XML Tutorial/XML Schema/enumeration — различия между версиями

Материал из Web эксперт
Перейти к: навигация, поиск
 
м (1 версия)
 
(нет различий)

Текущая версия на 11:26, 26 мая 2010

Enumerating A Simple Type

   <source lang="xml">

File: Schema.xsd <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"

 targetNamespace="http://www.wbex.ru" xmlns="http://www.wbex.ru"
 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></source>


enumeration Constrains the value of the data type to a defined set of values

   <source lang="xml">

<xsd:simpleType name="dayType">

 <xsd:restriction base="xsd:string">
  <xsd:enumeration value="Monday"/>
  <xsd:enumeration value="Tuesday"/>
  <xsd:enumeration value="Wednesday"/>
  <xsd:enumeration value="Thursday"/>
  <xsd:enumeration value="Friday"/>
  <xsd:enumeration value="Saturday"/>
  <xsd:enumeration value="Sunday"/>
 </xsd:restriction>

</xsd:simpleType></source>


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.

   <source lang="xml">

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

 targetNamespace="http://www.wbex.ru" xmlns="http://www.wbex.ru"
 elementFormDefault="qualified">
 <xs:simpleType name="Sizes">
   <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:schema></source>


Specifying a Set of Acceptable Values

   <source lang="xml">

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

 targetNamespace="http://www.wbex.ru" xmlns="http://www.wbex.ru"
 elementFormDefault="qualified">
 <xsd:element name="continent">
   <xsd:simpleType>
     <xsd:restriction base="xsd:string">
       <xsd:enumeration value="Asia" />
       <xsd:enumeration value="Africa" />
       <xsd:enumeration value="Australia" />
       <xsd:enumeration value="Europe" />
       <xsd:enumeration value="North America" />
       <xsd:enumeration value="South America" />
       <xsd:enumeration value="Antartica" />
     </xsd:restriction>
   </xsd:simpleType>
 </xsd:element>

</xsd:schema>

Data.xml: The continent element can now contain any single one of these values. <?xml version="1.0"?> <continent>Asia</continent> You can use the xsd:enumeration facet with all simple types except boolean. Each enumeration value must be unique. Enumeration values may contain white space.</source>