XML/XML Schema/enumeration

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

enumeration restriction on anyURI

File: Data.xml
<?xml version="1.0"?>
<images xmlns="http://www.wbex.ru"
                   xmlns:ex="http://www.wbex.ru"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xsi:schemaLocation=
                              "http://www.wbex.ru
                               Schema.xsd">
    <image/>                                             <!-- Using the default value -->
    <image src="http://www.wbex.ru/style/logo.png"/>  <!-- Not using the default value -->
</images>
File: Schema.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="image">
        <xsd:complexType>
            <xsd:attribute name="src" default="http://www.wbex.ru">
                <xsd:simpleType>
                    <xsd:restriction base="xsd:anyURI">
                        <xsd:enumeration value="http://www.wbex.ru"/>
                        <xsd:enumeration value="http://www.wbex.ru/style/logo.png"/>
                        <xsd:enumeration value="http://www.wbex.ru/isbn.html"/>
                    </xsd:restriction>
                </xsd:simpleType>
            </xsd:attribute>
        </xsd:complexType>
    </xsd:element>
    <xsd:element name="images">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element ref="image" maxOccurs="2"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
</xsd:schema>



xs:enumeration allows definition of a list of possible values as well as works on the value space

File: Data.xml
<?xml version="1.0"?>
<data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://www.wbex.ru Schema.xsd"
              xmlns="http://www.wbex.ru"
              >
   2001    
</data>

File: Schema.xsd
<?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="data" type="myDates"/>
  <xsd:simpleType name="myDates">
    <xsd:restriction base="xsd:gYear">
      <xsd:enumeration value="2001" />
      <xsd:enumeration value="2002" />
      <xsd:enumeration value="2003" />
    </xsd:restriction>
  </xsd:simpleType>
</xsd:schema>



xs:enumeration and xs:float

File: Data.xml
<?xml version="1.0"?>
<data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://www.wbex.ru Schema.xsd"
              xmlns="http://www.wbex.ru"
              >
   1.618033989    
</data>
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="data" type="myEnumeration"/>
  <xs:simpleType name="myEnumeration">
    <xs:restriction base="xs:float">
      <xs:enumeration value="-INF" />
      <xs:enumeration value="1.618033989" />
      <xs:enumeration value="3e3" />
    </xs:restriction>
  </xs:simpleType>
</xs:schema>