如何声明complexType只有一个子元素?

Men*_*ngT 4 xml xsd xml-validation xsd-validation

使用XML Schema声明a complexType只有一个子元素时,以下三种方法都实现了目标:

<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>
Run Code Online (Sandbox Code Playgroud)

显然,sequence,choiceall不是必须的,为单独的元件,因为它们应当由用于指示多个元素的顺序.是否有一种更简洁的方式来声明complexType只有一个子元素?(即一个消除使用sequence,all或者choice,某种方式.)

kjh*_*hes 7

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

  <xs:complexType name="cType">
    <xs:element name="e"/> 
  </xs:complexType>
Run Code Online (Sandbox Code Playgroud)

无效.

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

(注释?,(simpleContent | complexContent |((group | all | choice | sequence)?,((attribute | attributeGroup)*,anyAttribute?))))

没有规定element成为直接的孩子complexType.