Vous ne pouvez définir des types complexes que dans un modèle conçu pour XSD.
Un type complexe est une définition de type de données utilisée pour définir des attributs et éléments enfant d'un élément parent. Il s'agit d'un template pour une définition de type de données qui peut être réutilisé et dérivé par extension ou restriction.
Un type complexe a :
une portée globale s'il n'a aucun élément parent dans le diagramme et s'il est directement lié à la balise <schema>. Il peut ensuite être réutilisé ou dérivé, par extension ou restriction, dans d'autres parties du schéma.
une portée locale lorsqu'il est intégré dans une balise <element>. Il s'applique uniquement a son élément conteneur.
L'illustration suivante représente un diagramme contenant un type complexe :
HauteDéfinition est un type complexe global, réutilisé comme type de données pour l'élément deluxeTV.
Le schéma généré depuis ce diagramme se présente comme suit :