複合型の制限の例

要素の出現回数を制限

XML Schema文書の例

<?xml version="1.0" encoding="Shift_JIS" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="果物" type="restType" />
  <xs:element name="名前" type="xs:string" />
 
  <xs:complexType name="fruitType">
    <xs:sequence>
      <xs:element ref="名前" maxOccurs="20" />
    </xs:sequence>
  </xs:complexType>
 
  <xs:complexType name="restType">
    <xs:complexContent>
      <xs:restriction base="fruitType">
        <xs:sequence>
          <xs:element ref="名前" maxOccurs="3" />
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
</xs:schema>

妥当なXML文書の例
<?xml version="1.0" encoding="Shift_JIS" ?>
<果物>
  <名前>バナナ</名前>
  <名前>いちご</名前>
  <名前>メロン</名前>
</果物>

妥当でないXML文書の例
<?xml version="1.0" encoding="Shift_JIS" ?>
<果物>
  <名前>バナナ</名前>
  <名前>いちご</名前>
  <名前>メロン</名前>
  <名前>パイナップル</名前>
</果物>

属性の出現制約を変更

use属性の値が"optional"であるときに、"required"、"prohibited"に制限できる。
XML Schema文書の例

<?xml version="1.0" encoding="Shift_JIS" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element   name="出荷情報"   type="shipmentType" />
  <xs:attribute name="出荷日"     type="xs:date" />
 
  <xs:complexType name="infoType">
    <xs:attribute ref="出荷日" use="optional" />
  </xs:complexType>
 
  <xs:complexType name="shipmentType">
    <xs:complexContent>
      <xs:restriction base="infoType">
        <xs:attribute ref="出荷日" use="required" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
</xs:schema>

妥当なXML文書の例:
<?xml version="1.0" encoding="Shift_JIS" ?>
<出荷情報 出荷日="2004-12-02"/>

妥当でないXML文書の例
<?xml version="1.0" encoding="Shift_JIS" ?>
<出荷情報 />
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License