L'élément union permet à un élément ou à un attribut XML d'être une ou plusieurs instances d'un type de données formé par la réunion de plusieurs types atomiques ou listes.
<xsd:union
id = ID
memberTypes = Liste de QName
{tout attribut ayant un espace de noms
différent de celui du schéma...}>
Contenu : (annotation?, (simpleType*))
</xsd:union>
L'élément union possède plusieurs attributs destinés à l'identifier et à préciser des types de données.
| Attributs | Description |
|---|---|
| id | précise un identificateur unique pour l'élément. |
| memberTypes | spécifie une liste de noms de types de données séparés par un espace blanc. |
L'élément union ne peut être inclus que dans l'élément suivant :
Exemple [voir]<?xml version="1.0" encoding="ISO-8859-1"?>
<element_racine
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="c:\schema.xsd">
<note_devoir>11</note_devoir>
<note_devoir>AB</note_devoir>
</element_racine>
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xsd:simpleType name="note_chiffree">
<xsd:restriction base="xsd:integer">
<xsd:minInclusive value="0"/>
<xsd:maxInclusive value="20"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="type_note">
<xsd:union memberTypes="xsd:string note_chiffree"/>
</xsd:simpleType>
<xsd:complexType name="type_element_racine">
<xsd:sequence>
<xsd:element name="note_devoir"
type="type_note"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="element_racine"
type="type_element_racine"/>
</xsd:schema> |