Bonjour,

Dans un schéma xml, je déclare une liste d'éléments:


...
<xsd:sequence>
    <xsd:element name="element1" ... />
    <xsd:element name="element2" ... />
    <xsd:element name="element3" ... />
    <xsd:element name="element4" ... />
</xsd:sequence>
...


Cependant, ce type de déclaration impose l'ordre d'apparition des éléments dans le document liant ce schéma, ce que je voudrais éviter.

Je me suis tourné un moment vers l'élément xsd:all qui autorise effectivement l'ordre aléatoire mais celui-ci limite en revanche à un le nombre d'occurences de chaque élément déclaré.

Y a-t-il une solution permettant de ne pas imposer l'ordre d'apparition des éléments ?
Modifié par Bobe (02 Mar 2005 - 02:00)
Bon, j'ai trouvé un premier moyen avec xsd:choice mais ce n'est valable que pour un nombre très réduit d'éléments à déclarer:


...
<xsd:choice>
    <xsd:sequence>
        <xsd:element name="element1" ... />
        <xsd:element name="element2" ... />
    </xsd:sequence>
    <xsd:sequence>
        <xsd:element name="element2" ... />
        <xsd:element name="element1" ... />
    </xsd:sequence>
</xsd:choice>
...


Bref, on définit tous les ordres d'apparition possibles dans le document. Pas top top...
arf, mais comment j'ai pu passer à coté, c'est si simple Smiley bawling


...
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="element1" ... />
<xsd:element name="element2" ... />
<xsd:element name="element3" ... />
<xsd:element name="element4" ... />
</xsd:choice>
...


note: Comme on déclare les contraintes d'occurences sur la balise xsd:choice, on ne peut apparamment plus contrôler les contraintes d'occurences pour un élément donné.
Modifié par Bobe (02 Mar 2005 - 02:09)