Nous avons traité la première partie sur les schémas xml dans le cours précédent : xsd éléments et attributs. Puis, nous avons continuer avec plus de détails sur les types simples (xsd : union list restriction extension) pour les éléments. Cette partie de cours s’interèsse aux extensions des types complexes.

Extensions des types simples

1-  Types complexes à contenu simple  

 Il est possible d’étendre un type complexe à contenu simple pour lui ajouter de nouveaux attributs. On obtient alors un nouveau type complexe à contenu simple qui possède les attributs du type de base et ceux déclarés par l’extension. L’extension d’un tel type est similaire à l’extension d’un type simple. L’élément xsd:extension est encore enfant d’un élément xsd:simpleContent. Les déclarations des attributs qui sont ajoutés sont placées dans le contenu de l’élément xsd:extension.

 Exemple :

 XSD :

<xsd:complexType name="Prix">  
  <xsd:simpleContent>
   <xsd:extension base="xsd:decimal">
    <xsd:attribute name="devise" type="xsd:string/>  </xsd:extension></xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="PrixPays"> 
  <xsd:simpleContent>
   <xsd:extension base="Prix ">
    <!-- Attribut ajouté -->
    <xsd:attribute name="pays" type="xsd:string"/> </xsd:extension> 
  </xsd:simpleContent> 
</xsd:complexType>

<xsd:element name="price" type="PrixPays"/>

XML :

<price Prix= "euro" pays="france" > 15</price>  

2- Types complexes à contenu complexe 

L’extension d’un type complexe à contenu complexe consiste à ajouter du contenu et/ou des attributs. Le contenu est ajouté après le contenu du type de base. L’ajout d’attribut est semblable au cas des types complexes à contenu simple.

Exemple :

<xs:element name="formateur" type="nom_prenom"/>
   <xs:complexType name="nom_prenom1">
    <xs:sequence>
      <xs:element name="nom" type="xs:string"/>
      <xs:element name="prenom" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
<xs:complexType name="nom_prenom">
<xs:complexContent>
<xs:extension base="nom_prenom1">
<xs:attribute name="age" type="xs:float"/>
</xs:extension>
</xs:complexContent>
</xs:complexType> 
xsd résumé sur types

Nous vous proposons de voir la vidéo suivante (En darija Marocaine) qui résume et explique cette partie de cours :

Vous pouvez suivre notre cours complet d’XML . pour approfondir vos compétences sur la création et la manipulation des documents xml, dtd, xsd,xpath, xslt.

Aussi, vous avez une playlist des vidéos (Explication en Darija arabe marocaine)  bien organisée qui traite : XML DTD XSD XSLT XPATH

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *