Bonjour,
je début en XSD et je rencontre le problème que voici :
j'ai un type qui est une extension d'un autre type.Et je souhaiterais que mon extention puisse contenir les éléments (définis au niveau du type éténdu et du type parents) une et une seule fois dans un ordre quelconque.
J'ai donc pensé à ce code qui n'est malheureusement pas correct à cause des xs:all qui ne peuvent pas être utilisé dans une extension.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 <xs:complexType name="a">
      <xs:complexContent>
         <xs:extension base="alpha">            
           <xs:all>           	<xs:element name="ii" type="xs:string" >
           	<xs:element name="iii" type="xs:string" >
            </xs:all>         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   
   <xs:complexType name="alpha">
     <xs:sequence>
         <xs:element name="i" type="xs:string" minOccurs="0"  />
      </xs:sequence>
   </xs:complexType>
Est ce que quelqu'un connaitrait un stratagème pour faire la même chose sans utiliser le xs:all ?

J'ai aussi essayé d'utilisé le xs:choice tentative non fructueuse car on ne peut pas choisir (ou je ne sais pas faire du moins) le nombre de fois ou un élément donné apparait dans le choix. (J'ai bien sur essayé d'utilisé minOccurs et maxOccurs pour chaque élément mais cela valide un schéma ou je répète 5 fois le même élément).

merci de votre aide par avance