目录

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元素表明我们打算限制或扩展复杂类型的内容模型,并且整数的限制声明一个属性但不引入任何元素内容。

但是,可以更紧凑地声明 "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>