2009-04-14 6 views
0

Je suis en train de créer un élément dans un schéma où les sous-types peuvent apparaître dans l'ordre et autant de fois que nécessaire:définition des éléments du schéma avec des sous-éléments dans l'ordre

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

où le Les nœuds nodeType (n) peuvent être dans n'importe quel ordre et être répétitifs si nécessaire.

Aussi, j'ai essayé:

Mais le compilateur ne fonctionne pas se plaindre du nodeType2 est pas valable quand il n'y a pas nodeType1.

Qu'est-ce qui me manque ici?

Merci d'avance.

Répondre

2

Vous devriez être en mesure d'obtenir vos résultats en faisant ceci:

<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: choix > vous donne la possibilité de choisir l'un des éléments, et de faire les xs: choix apparaît à plusieurs reprises vous permet pour choisir chaque élément autant de fois que vous le souhaitez.

Marc

Questions connexes