Xml 全元素和序列元素

Xml 全元素和序列元素,xml,xsd,sequence,Xml,Xsd,Sequence,如何将all元素与上述sequence元素连接起来?或者它已经连接在一起了? 我们已经分别做了,因为将序列和所有元素放在同一个elementcaseif中是无效的 以下是模式: <xs:element name="caseif"> <xs:complexType> <xs:sequence> <xs:element ref="condition" minOccurs="1" /> </xs:sequence> </xs:c

如何将all元素与上述sequence元素连接起来?或者它已经连接在一起了? 我们已经分别做了,因为将序列和所有元素放在同一个elementcaseif中是无效的

以下是模式:

<xs:element name="caseif">   
<xs:complexType>
<xs:sequence>
<xs:element ref="condition" minOccurs="1" /> 
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:complexType>
<xs:all>
<xs:element ref="send"/>
<xs:element ref="call"/>
<xs:element ref="variable"/>
<xs:element ref="input"/>
<xs:element ref="output"/>
<xs:element ref="file"/>
<xs:element ref="comment"/>
<xs:element ref="loop"/>
<xs:element ref="case"/>
<xs:element ref="assignment"/>
</xs:all>
</xs:complexType>

这里最简单的设计是将send、call等元素放入包装器中。然后声明可以采用以下形式

<complexType name="caseif">
  <sequence>
    <element ref="tns:condition"/>
    <element ref="tns:then"/>
  </sequence>
</complexType>
<complexType name="wrapper">
  <all>
    <element ref="send" minOccurs="1"/>
    <element ref="call" minOccurs="1"/>
    <element ref="variable" minOccurs="1"/>
    ...
    <element ref="assignment" minOccurs="1"/>
  </all>
</complexType>
<element name="caseif" type="tns:caseif"/>
<element name="condition" type="tns:..."/>
<element name="then" type="tns:wrapper"/>

另一种方法是确定发送、呼叫等的顺序。如果它们出现的顺序传递信息,则无法确定顺序。如果没有,定单有助于确保没有人认为它能传达任何信息。

你能用一些例子更好地描述你想考虑哪些类型的XML是有效的和无效的?我想在[FACK]元素中出现第一个元素,然后所有其他元素发送、调用等等。要么一次发生,要么一次也不发生。非常感谢它的帮助:但是包装器到底能做什么呢?