在XSD文件中,对给定元素使用两个订单指标是否合法?

时间:2012-07-13 21:41:59

标签: xsd

我正在为以下XML结构创建一个XSD:

<BaseNode>
  <ParentNode1>
    <childnode/>
  </ParentNode1>
  <ParentNode2>
    <childnode/>
  </ParentNode2>
  <ParentNodeA>
    <childnode/>
  </ParentNodeA>
  <ParentNodeB>
    <childnode/>
  </ParentNodeB>
</BaseNode>

其中:ParentNodes 1和2必须按顺序出现,A和B是可选的(并且每个只出现一次,如果存在),但必须出现在1和2之后(如果存在)。

我认为'将起作用的是以下内容,但它是否有效? (具体而言,存在两者,序列和所有订单指标)

<xs:element name="BaseNode">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="ParentNode1">
        ....
      </xs:element>
      <xs:element name="ParentNode2">
        ....
      </xs:element>
    </xs:sequence>
    <xs:all>
      <xs:element name="ParentNodeA">
        ....
      </xs:element>
      <xs:element name="ParentNodeB">
        ....
      </xs:element>
    </xs:all>
  </xs:comlexType>
</xs:element>

我找不到任何参考资料(在w3schools.com或其他地方)复合使用订单指标,并且没有现成的验证工具。

提前谢谢。

1 个答案:

答案 0 :(得分:1)

我在http://www.w3.org/TR/xmlschema-0/#groups

找到答案
  

XML Schema规定所有组必须   在内容模型的顶部显示为唯一的孩子。

链接提供的示例。