ホーム HTML CSS XML JAVASCRIPT   PHP SQL MORE...   リファレンス 事例集    

XSD 空要素

« 前章へ 次章へ »

空の複合型要素は、属性だけを持ち内容を持つことができません。


複合型空要素

空のXML要素:

<product prodid="1345" />

上の "product" 要素には、内容がありません。 内容のない型を定義するためには、その内容の要素を許容する型を定義しなければなりませんが、 次のように、実際には何の要素も宣言しません:

<xs:element name="product">
  <xs:complexType>
    <xs:complexContent>
      <xs:restriction base="xs:integer">
        <xs:attribute name="prodid" type="xs:positiveInteger"/>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

上記例では、complexContent によって複合型を定義しています。 complexContent 要素は、複合型の内容モデルを制約するのか、 または拡張するのかを示すシグナルです。整数による制約は、1つの属性を宣言しますが、如何なる要素内容も導入しません。

しかし、次のように "product" 要素をコンパクトに宣言することもできます:

<xs:element name="product">
  <xs:complexType>
    <xs:attribute name="prodid" type="xs:positiveInteger"/>
  </xs:complexType>
</xs:element>

または、complexType 要素に名前を付けて、"product" 要素に complexType の名前を参照する type 属性を持たせることができます (この方法を使用する場合、いくつかの要素が同じ複合型を参照できるようになります):

<xs:element name="product" type="prodtype"/>

<xs:complexType name="prodtype">
  <xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>

« 前章へ 次章へ »