Éléments composés du schéma XML
XSD Élément composé
Un élément composé contient d'autres éléments et/ou attributs.
h2>Qu'est-ce qu'un élément composite ?
Un élément composé est un élément XML qui contient d'autres éléments et/ou attributs.
Il existe quatre types d'éléments composés :
Élément vide
Élément contenant d'autres éléments
Élément contenant uniquement du texte
Élément contenant à la fois l'élément et le texte
Remarque : Tous les éléments ci-dessus peuvent contenir des attributs !
Exemple d'élément composé
L'élément composé, "produit", est vide :
Un élément composite, "employé", contenant uniquement d'autres éléments :
<prénom>Jean</prénom>
<lastname>Smith</lastname>
</employee>
L'élément XML composé, "food", contient uniquement du texte :
Élément XML composé, "description" contient des éléments et du texte :
C'est arrivé le <date lang="norwegian">03.03.99</date> ....
</description>
Comment définir élément composé ?
Regardez cet élément XML composé, "employé", contenant uniquement d'autres éléments :
<prénom>Jean</prénom>
<lastname>Smith</lastname>
</employee>
Dans le schéma XML, nous avons deux manières de définir des éléments composés :
1 Par nom. cet élément, vous pouvez déclarer directement l'élément "employee", comme ceci :
<xs:complexType>
<xs:séquence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:séquence>
</xs:complexType>
</xs:element>
Si vous utilisez la méthode décrite ci-dessus, seul « employé » peut utiliser le type composite spécifié. Notez que ses éléments enfants, "firstname" et "lastname", sont entourés de l'indicateur <sequence>. Cela signifie que les éléments enfants doivent apparaître dans l'ordre dans lequel ils sont déclarés. Vous en apprendrez plus sur les indicateurs dans la section Indicateurs XSD.
2. L'élément "employee" peut utiliser l'attribut type, qui est utilisé pour référencer le nom du type composite à utiliser :
<xs:complexType name="personinfo">
<xs:séquence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
Si vous utilisez la méthode décrite ci-dessus, plusieurs éléments peuvent utiliser le même type composite, comme ceci :
<xs:element name="student" type="personinfo"/>
< xs:element name="member" type="personinfo"/>
<xs:complexType name="personinfo">
<xs:séquence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
Vous pouvez également baser un élément composé sur un élément composé existant, puis ajouter quelques éléments, comme ceci :
<xs:complexType name="personinfo">
<xs:séquence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="fullpersoninfo">
<xs:complexContent>
<xs:extension base="personinfo">
<xs:séquence>
<xs:element name="address" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
</xs:séquence>
</xs:extension>
</xs:complexContent>
</xs:complexType>