Xsd XML模式中的顺序定义

Xsd XML模式中的顺序定义,xsd,Xsd,我想定义第一个元素将是特定类型的,下面将是一些任意顺序的元素。像这样: <node> <!-- always at first --> <node-data> ... </node-data> <!-- other nodes in any order--> <node3></node3> <node1></node1> <node2></node2> </

我想定义第一个元素将是特定类型的,下面将是一些任意顺序的元素。像这样:

<node>
<!-- always at first -->
<node-data>
...
</node-data>

<!-- other nodes in any order-->
<node3></node3>
<node1></node1>
<node2></node2>
</node>

...
我不能使用
,因为它将强制所有节点处于有序状态


谢谢你的帮助。对不起,我的英语不好。

一个好的开始布局可能是这样的:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="node">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="node-data"/>
        <xs:choice minOccurs="0" maxOccurs="unbounded">         
          <xs:element name="node3" />
          <xs:element name="node1" />
          <xs:element name="node2" />
        </xs:choice>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>


然后,您可以优化类型,在选项下添加更多节点,等等。如果您想支持通配符,则需要使用
xs:any

非常感谢,这对我很有帮助。奇怪的是,xsd的作者没有给出一个更简单的方法来实现这个基本特性。