一个空的复合元素不能有内容,只有属性。
复杂的空元素
一个空的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>
在上面的例子中,我们定义一个复杂类型具有复杂的内容。 我们打算在复杂内容元素的信号来限制或扩展复杂类型的内容模型和整数的约束声明一个属性,但不引入任何元素内容。
但是,可以声明"product"更简洁的元素,就像这样:
<xs:element name="product">
<xs:complexType>
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>
</xs:element>
或者你可以给complexType元素的名称,让"product"元素有指复杂类型的名称(如果你使用这种方法,几个元素可以参考同一复杂类型)一个类型的属性:
<xs:element name="product" type="prodtype"/>
<xs:complexType name="prodtype">
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>