2009-04-14 79 views
0

我试图创建一个架构中的元素,其中它的子类可以根据需要按任何顺序出现,并多次:架构元素定义以任何顺序子元素

<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)可以按任何顺序并且根据需要重复。

而且,我想:

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

我在这里错过了什么?

在此先感谢。

回答

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> 

<的xs:选择>给你挑的要素之一的选项,使得XS:选择出现多次,您可以根据需要多次挑选每个元素。

Marc