2010-10-22 74 views
0

我想定义一个模式,让子元素以任何次序出现,类似于<choice minOccurs="0" maxOccurs="unbounded">但只允许每个元素之一,类似于<sequence minOccurs="1" maxOccurs="1">XML模式,每个子元素之一?

才能做到这一点?

例如

<Root> 
<ele1> 
<ele3> 
<ele2> 
</Root> <!--Valid--> 

而且如下:

<Root> 
<ele1> 
<ele1> 
<ele3> 
</Root> <!--Invalid--> 

回答

0

使用的xs:所有而不是XS:序列,所以你会写:

<xs:element name="Root"> 
    <xs:complexType> 
      <xs:all> 
       <xs:element name="element1"/> 
       <xs:element name="element2"/> 
       <xs:element name="element3"/> 
      </xs:all> 
    </xs:complexType> 
</xs:element> 
+0

AHA!谢谢。我在测试中也发现了这一点。谢谢! – Beta033 2010-10-26 21:16:28

0

您可以添加maxOccurs="1"的元素。

+0

我想在几个地方这几种方式,但它似乎并没有被执行。也许我做错了? – Beta033 2010-10-22 20:12:12

相关问题