我正在尝试在架构中创建一个元素,其子类型可以按任何顺序出现,并根据需要多次出现:
<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时无效。
我在这里缺少什么?
提前致谢。
答案 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:选项多次出现,允许您根据需要多次选择每个元素。
马克