在XML Schema中,有时候我们可能需要定义一个元素,它可以是空的,也就是说,它不包含任何子元素或文本内容。这样的元素称为复合空元素。以下是一个简单的XML Schema示例,其中包含一个复合空元素:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <!-- 定义复合空元素 -->
  <xs:element name="emptyElement">
    <xs:complexType>
      <xs:sequence>
        <!-- 这里没有任何子元素 -->
      </xs:sequence>
    </xs:complexType>
  </xs:element>

</xs:schema>

在这个例子中,emptyElement 元素是一个复合空元素,因为它的复杂类型(complexType)包含了一个空的 sequence,即没有任何子元素。这允许 <emptyElement></emptyElement> 或 <emptyElement/>,而不需要包含任何内容。

如果你希望元素可以是空的,同时也可以包含内容,你可以考虑使用 minOccurs 和 maxOccurs 属性,这样可以指定元素出现的次数。例如,如果允许元素要么为空,要么包含一个字符串,可以这样定义:
<xs:element name="optionalElement">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="content" type="xs:string" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

上述定义中,content 元素可以出现零次(表示为空)或一次(包含一个字符串)。


转载请注明出处:http://www.pingtaimeng.com/article/detail/12285/XML