[XSD] Attribut unique à true
Bonjour,
Je cherche à avoir une liste d'items, ayant chacun un attribut isPrimary qui puisse prendre la valeur true ou false (false étant par défaut). Mais il faut qu'un seul d'entre eux puisse avoir la valeur true.
Pour exemple, le xml suivant est valdie :
Code:
1 2 3 4 5 6
| <items>
<item value="blabla" isPrimary="true" />
<item value="blibli" isPrimary="false" />
<item value="bloblo" isPrimary="false" />
<item value="bleble" />
</items> |
Le xml suivant, au contraire n'es pas valide, car deux éléments item ont la valeur true :
Code:
1 2 3 4 5 6
| <items>
<item value="blabla" isPrimary="true" />
<item value="blibli" isPrimary="false" />
<item value="bloblo" isPrimary="true" />
<item value="bleble" />
</items> |
Pour l'instant j'ai le xsd suivant :
Code:
1 2 3 4 5 6 7 8 9
| <xs:complexType name="itemstype">
<xs:sequence>
<xs:element name="item" type="itemtype" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="itemtype">
<xs:attribute name="isPrimary" type="xs:boolean" default="false"/>
</xs:complexType> |
Comment faire pour qu'un seul item contenu dans un élément <items> puisse avoir la valeur true?
Et au passage, si on peux obliger la valeur true quand il n'y a qu'un seul <item> dans la balise <items> mais c'est optionnel.