Définitions simples
Les définitions simples de balises correspondent à des balises typées sans attribut ni élément.
En XSD, l'utilisateur a la possibilité de définir des types simples qui restreignent les types standard. Ainsi, on distingue trois types de définition pour les types simples XSD.
Définition d'union
Un type simple peut être une union de types. Ceci peut être valable lorsque plusieurs pays n'utilisent pas le même format pour définir un concept particulier. Ainsi, si on prend l'exemple du code postal, il est défini de manière différente en France et aux Etats-Unis.
<xsd:simpleType name="USState">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="AK"/>
<xsd:enumeration value="AL"/>
<xsd:enumeration value="AR"/>
<!-- and so on ... -->
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="zipUnion">
<xsd:union memberTypes="USState">
<xsd:simpleType>
<xsd:list itemType="xsd :int"/>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
Pour définir une union de types :
1. Dans l’éditeur de schéma, cliquez sur Affichage > Type.
2. Dans le navigateur, sélectionnez la classe (le type) pour laquelle vous voulez définir une union des types (ici, "code postal").
3. Dans la fenêtre de Propriétés, cliquez sur l’onglet Caractéristiques.
4. Dans le champ Stéréotype, sélectionnez "structure".
5. Cliquez sur l’onglet XSD.
6. Dans le champ XSD Union, sélectionnez "oui".
Les types définis dans l'union sont montrés en tant qu'attributs de la classe.
Pour définir les types qui interviennent dans l’union :
1. Sélectionnez dans le navigateur la classe représentant l’union.
2. Dans la fenêtre de propriétés, cliquez sur l’onglet Attributs.
3. Cliquez sur le bouton Nouveau.
4. Créez vos attributs. Donnez-leur de préférence le même nom que les types de l’union.
5. Dans la colonne Type expression, sélectionnez les types définissant l’union. Ici, il s’agit des types "int" et "USState".
Modélisation UML
Pour créer une union de types dans un diagramme :
1. Cliquez avec le bouton droit sur la classe et sélectionnez Propriétés.
2. Sous l’onglet Caractéristiques, sélectionnez le stéréotype "Structure".
3. Cliquez sur l’onglet Génération et sur le sous-onglet XSD.
4. Dans le champ XSD Union, sélectionnez "oui".
5. Définissez ensuite de la même façon les types de l’union.
Dans notre exemple, la classe "CodePostal " est une union des types "int" et "USState". Ces types apparaissent sous forme d’attributs.
Définition de restriction (Facets)
Un type simple peut être une restriction d'un autre type simple ou d'un type standard XSD. Par restriction, on entend "Enumération", limitation de la longueur d'une chaîne de caractères, définition d'un intervalle de valeurs etc.
<xsd:simpleType name="SKU">
<xsd:restriction base="xsd:string">
<xsd:pattern value="\d{3}-[A-Z]{2}"/>
</xsd:restriction>
</xsd:simpleType>
Dans cet exemple, on définit un type sku. Il s'agit d'une string qui doit commencer par 3 chiffres suivi d'un tiret puis de 2 caractères ascii.
Les facets sont modélisées par des contraintes sur classe. Chaque facet correspond à une occurrence de contrainte.
Pour définir une facet sur un type :
1. Dans l’éditeur de schémas, sélectionnez la classe (le type).
2. Dans la fenêtre de propriétés, cliquez sur l’onglet Facets XSD.
3. Cliquez sur le bouton
Relier
4. Sélectionnez la liste des facets et cliquez sur OK.
5. Dans la liste qui apparaît, sélectionnez la facet que vous voulez relier à la classe et cliquez sur OK.
6. Dans la colonne "XSD Value", entrez la valeur de la facet.
Cas particulier de l’énumération
Pour modéliser une énumération :
1. Ouvrez la fenêtre de propriétés de la classe.
2. Dans l’onglet Caractéristiques, sélectionnez le stéréotype "Enumération".
3. Cliquez sur OK.
4. Ouvrez de nouveau la fenêtre de propriétés de la classe.
Un nouvel onglet Valeur littérale est apparu.
5. Entrez sous cet onglet les valeurs de l’énumération.
Définition d'un type "Liste"
Un type simple peut également être défini comme une liste d’un type simple. Cela permet de définir des listes ou des tableaux pouvant prendre comme valeur une liste d’éléments d’un type simple.
<xsd:simpleType name="USStateList">
<xsd:list base="USState">
</xsd:list>
</xsd:simpleType>
Pour définir un type comme une liste de valeurs :
1. Dans le navigateur de l’éditeur, sélectionnez le type en question.
2. Dans la fenêtre de propriétés, cliquez sur l’onglet Caractéristiques.
3. Dans le champ Stéréotype, sélectionnez "Expression".
4. Cliquez sur l’onglet XSD.
5. Dans le champ XSD List, sélectionnez "Oui".
Rafraîchissez la fenêtre de propriétés du type et retournez dans l’onglet Caractéristiques.
6. Dans le champ Type expression, sélectionnez le type de valeurs que vous voulez définir pour le type. Par exemple, si vous voulez que le type soit une liste d’entiers, sélectionnez "int".