使用XML Schema声明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>
显然,sequence
,choice
和all
对于单个元素不是必需的,因为它们应该用于指示多个元素的顺序。 是否有更简洁的方式来声明只有一个子元素的complexType
?(即不使用sequence
,all
或{{ 1}},不知何故。)
答案 0 :(得分:7)
只是取消xs:sequence
,xs:choice
或xs:all
,不是一种选择:
<xs:complexType name="cType">
<xs:element name="e"/>
</xs:complexType>
无效。
请参阅XML Representation of Complex Type Definitions其中complexType
的内容模型定义如下:
(注释?,(simpleContent | complexContent |((group | all |选择|序列)?,((attribute | attributeGroup)*, anyAttribute?))))
element
没有规定complexType
是{{1}}的直接子女。