Types complexes (MSX)

Un type complexe est un élément qui contient d'autres éléments ou attributs, qui est utilisé pour définir un type de données à réutiliser et dériver par extension ou restriction. Vous ne pouvez créer des types complexes que dans un modèle ayant pour cible XSD.

Les types complexes sont le plus souvent créés directement sous la balise <schema>, pour être réutilisés ou dérivés (par extension ou restriction) dans d'autres parties du schéma. De tels types complexes globaux sont répertoriés dans l'Explorateur d'objets, et peuvent avoir des symboles dans le diagramme. Les types complexes peuvent être créés dans un élément, en sélectionnant Complexe dans la zone Type incorporé de la feuille de propriétés de l'élément (voir Propriétés d'un élément). De tels types complexes locaux ne sont visibles que comme des parties du schéma dans l'onglet Aperçu de la feuille de propriétés de l'élément.

Dans cet exemple, le type complexe global Adresse est sélectionné comme le type de l'élément Adresse utilisateur :

Le schéma généré se présente comme suit :
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema 
    elementFormDefault="qualified"
    xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:complexType name="Adresse">
      <xs:sequence>
         <xs:element name="Numero_rue"/>
         <xs:element name="Ville"/>
         <xs:element name="CP"/>
         <xs:element name="Pays"/>
      </xs:sequence>
    </xs:complexType>
    <xs:element name="Utilisateur">
      <xs:complexType>
         <xs:sequence>
            <xs:element name="Prenom"/>
            <xs:element name="Nom"/>
            <xs:element name="Adresse_utilisateur" type="Adresse"/>
         </xs:sequence>
      </xs:complexType>
    </xs:element>
</xs:schema>