1

我正在为以下 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 或其他地方)来复合使用订单指标,并且没有现成的验证器。

先感谢您。

4

1 回答 1

1

我在http://www.w3.org/TR/xmlschema-0/#groups找到了答案

XML Schema 规定 all 组必须作为唯一的子项出现在内容模型的顶部。

链接中提供的示例。

于 2012-07-16T16:34:37.360 回答