2008-08-28 8 views
8

je dois créer un schéma XML qui ressemble à ceci:XML Schema construire pour « Un nombre quelconque de ces éléments - dans l'ordre »

<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> 

Ce que je besoin est un remplacement pour « WhatGoesHere » de telle sorte que n'importe quel nombre de el3, el4 et el5 peut apparaître dans n'importe quel ordre. Par exemple, il pourrait contenir {el3, el3, el5, el3}

Une idée sur la façon de résoudre ce problème?

Répondre

13

Vous voulez xs:choice avec des contraintes d'occurrence:

<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>