2008-08-28 82 views
8

我需要创建一个看起来像这样的XML模式:XML模式构建“任何数量的这些元素 - 以任何顺序”

<xs:element name="wrapperElement"> 
<xs:complexType> 
    <xs:sequence> 
     <xs:element type="el1"> 
     <xs:element type="el2"> 
    </xs:sequence> 

    <xs:WhatGoesHere?> 
     <xs:element type="el3"> 
     <xs:element type="el4"> 
     <xs:element type="el5"> 
    </xs:WhatGoesHere?> 

    <xs:sequence> 
     <xs:element type="el6"> 
     <xs:element type="el7"> 
    </xs:sequence> 
</xs:complexType> 
</xs:element> 

我需要的是“WhatGoesHere”的替代品,从而任何数量的el3,el4和el5都可以按任意顺序出现。例如,它可能包含{el3,el3,el5,el3}

有关如何解决此问题的任何想法?

回答

13

你想xs:choice有发生限制:

<xs:element name="wrapperElement"> 
    <xs:complexType> 
    <xs:sequence> 
     <xs:element name="e11"/> 
     <xs:element name="el2"/> 
     <xs:choice minOccurs="0" maxOccurs="unbounded"> 
     <xs:element name="el3"/> 
     <xs:element name="el4"/> 
     <xs:element name="el5"/> 
     </xs:choice> 
     <xs:element name="el6"/> 
     <xs:element name="el7"/> 
    </xs:sequence> 
    </xs:complexType> 
</xs:element> 
相关问题