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要素が示すのは、複合型の内容モデルを限定または拡張するつもりであることを示し、integer限定は属性を宣言していますが、要素内容を導入しません。

ただし、よりコンパクトに「product」要素を宣言することもできます:

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

または、complexType要素に対して名前を設定し、「product」要素にtype属性を設定してこのcomplexType名を参照することができます(この方法により、同じ複合型を複数の要素で参照することができます):

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