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要素は、複合型のコンテンツモデルを制限または拡張することを通知し、整数の制限は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>