具有任意顺序的子元素的模式元素定义

时间:2009-04-14 16:06:58

标签: schema xsd

我正在尝试在架构中创建一个元素,其子类型可以按任何顺序出现,并根据需要多次出现:

    <xs:element name="workflowNodes">
    <xs:complexType>
        <xs:sequence minOccurs="0" maxPO>
            <xs:element ref="nodeType1" />
            <xs:element ref="nodeType2" />
            <xs:element ref="nodeType3" />
            <xs:element ref="nodeType4" />
        </xs:sequence>
    </xs:complexType>
</xs:element>

其中节点nodeType(n)可以是任何顺序,并且必要时是重复的。

另外,我试过:

但是编译器没有工作抱怨nodeType2在没有nodeType1时无效。

我在这里缺少什么?

提前致谢。

1 个答案:

答案 0 :(得分:2)

你应该能够通过这样做得到你的结果:

<xs:element name="workflowNodes">
        <xs:complexType>
                <xs:choice minOccurs="0" maxOccurs="unbounded">
                        <xs:element ref="nodeType1" />
                        <xs:element ref="nodeType2" />
                        <xs:element ref="nodeType3" />
                        <xs:element ref="nodeType4" />
                </xs:choice>
        </xs:complexType>
</xs:element>

&LT; XS:选择&GT;为您提供选择其中一个元素的选项,并使xs:选项多次出现,允许您根据需要多次选择每个元素。

马克