Bonjour,
XSD me donne pas mal de fil � retordre... J'aimerais simplement cr�er des "sequences" (si j'ose dire) non ordonn�es. Et c'est gal�re.
Solution "all":
C'est ultra limit�, vu qu'on ne peut mettre que des elements dedans. Et surtout, seule une cardinalit� de 0 ou 1 est accept�e, il est donc impossible de mettre maxOccurs="unbounded".
Ceci est invalide, � cause de "unbounded".
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7 <xs:complexType name="AllComplexType"> <xs:all> <xs:element name="UniqueElement" type="MyfirstType" minOccurs="1" maxOccurs="1" /> <xs:element name="MultipleElement" type="MysecondType" minOccurs="0" maxOccurs="unbounded" /> </xs:all> </xs:complexType>
Solution "choice":
Choice me semble donc (pour l'instant) �tre la seule solution pour pouvoir cr�er une s�quence non ordonn�e, si certains �l�ments peuvent apparaitre plusieurs fois. Cependant, �a pr�sente une �norme probl�matique. Vu que c'est le choix en lui-m�me que l'on doit mettre "unbounded", tous les �l�ments peuvent apparaitre � plusieurs reprises: il n'est alors plus possible de garantir que certains �l�ments soient uniques.
Si je ne me trompe pas, le schema validera un XML o� "UniqueElement" apparait plusieurs fois... (De m�me si il n'apparait pas du tout...)
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7 <xs:complexType name="ChoiceComplextype"> <xs:choice maxOccurs="unbounded" > <xs:element name="UniqueElement" type="UniqueElement" minOccurs="1" maxOccurs="1" /> <xs:element name="MultipleElement" type="MysecondType" minOccurs="0" maxOccurs="unbounded" /> </xs:all> </xs:complexType>
Bref, est-il vraiment si difficile de d�clarer une s�quence non-ordonn�e, avec certains �l�ments qui apparaissent une seule fois, et d'autres qui peuvent apparaitre plusieurs fois?
Merci d'avance.
Partager