6

当使用 XML Schema 声明 acomplexType只有一个子元素时,以下三种方法都可以达到目的:

<xs:complexType> <xs:sequence> <xs:element ref="somevalue"/> </xs:sequence> </xs:comlexType>
<xs:complexType> <xs:choice>   <xs:element ref="somevalue"/> </xs:choice>   </xs:comlexType>
<xs:complexType> <xs:all>      <xs:element ref="somevalue"/> </xs:all>      </xs:comlexType>

显然,sequencechoice对于all单个元素不是必需的,因为它们应该用于指示多个元素的顺序。有没有更简洁的方法来声明complexType只有一个子元素的 a?(即以某种方式消除了sequence,all或的使用choice。)

4

1 回答 1

9

仅消除xs:sequence,xs:choicexs:all, 不是一种选择:

  <xs:complexType name="cType">
    <xs:element name="e"/> 
  </xs:complexType>

无效。

请参阅复杂类型定义的 XML 表示,其中complexType的内容模型定义如下:

(注释?,(simpleContent | complexContent |((组|全部|选择|序列)?,((属性|属性组)*,anyAttribute?))))

没有规定element成为 的直系子女complexType

于 2013-10-07T12:24:49.960 回答