Stéréotypes de classe
Vous pouvez définir un des stéréotypes suivants pour une classe :
• Schema group
• Expression
• Enumération
• Structure (XSD)
Définir un stéréotype de classe
Pour définir un stéréotype :
1. Ouvrez la fenêtre de Propriétés de la définition de balise (ou de la classe).
2. Cliquez sur l’onglet Caractéristiques.
3. Dans le champ Stéréotype sélectionnez à l’aide de la flèche "Schema group", "Enumération" ou "Expression".
Stéréotype Schema group

Les classes de stéréotype
Schema Group représentent des regroupements ordonnés ou des sélections d'un ensemble d'éléments ou d'attributs.
Les ordonnancements possibles sur un groupe sont :
All : les éléments du type peuvent apparaître aucune ou une fois et dans n'importe quel ordre. Les groupes "all" ne sont autorisés qu'au plus haut niveau d'un type et doivent être seuls. De plus, ils ne peuvent contenir que des éléments.
Sequence : les éléments sont déclarés dans l'ordre de leur définition dans le groupe.
Choice : seul un élément du groupe peut être déclaré.
Non renseigné : aucun ordre n'est pris en compte.
Ces options d'ordonnancement sont combinées aux valeurs des multiplicités.
Stéréotype Expression
Les classes de stéréotype Expression permettent de définir des variantes de type primitif. Elles sont basées sur les types fournis en standard (paquetage Standard::Types::XML::XSD).
Stéréotype Enumération
Les classes de stéréotype Enumération permettent de définir un ensemble de valeurs. Ces classes pourront être utilisées comme type d'attributs, voire d'éléments quand le langage de schéma utilisé le permet (par exemple, pour XSD). Ainsi, les attributs basés sur un tel type ne pourront prendre que les valeurs définies par la classe Enumération.

Il est conseillé de déclarer les types
Enumération localement à la classe C qui définit les attributs basés sur ces types. Cette recommandation n'est valable que lorsque le type n'est pas réutilisé par d'autres attributs externes à la classe C. Ceci évite la prolifération de type au niveau du paquetage et permet de reprendre les mêmes noms quand il s'agit d'une notion similaire.
Exemple
La classe "Magazine" dispose d'un attribut "Fréquence". Ce dernier est basé sur le type "Fréquence" de stéréotype "Enumération". Les valeurs possibles sont "mensuel", "hebdomadaire", "bimensuel" et "trimestriel".
Conformément à la recommandation précédente, la classe "Fréquence" est déclarée localement à la classe "Magazine".
XSD
<xsd :simpleType name='FrequenceMgazine'>
<xsd:restriction base='xsd :string'>
<xsd:enumeration value="mensuel"/>
<xsd:enumeration value="hebdomadaire"/>
<xsd:enumeration value="bimensuel"/>
<xsd:enumeration value="trimestriel"/>
</xsd:restriction>
</xsd :simpleType>
<xsd:ComplexType name="Magazine">
<xsd:complexContent>
<xsd:extension base='ouvrage'>
<xsd :sequence>
<xsd:element name="Resume" type="Resume" minOccurs="1" maxOccurs="1"/>
< xsd:element name="Resumedouvrage" type="Resumedouvrage" minOccurs="0" maxOccurs="*"/>
</xsd:sequence>
<xsd:attribute name="Frequence" type="FrequenceMgazine" use="Required"/>
</xsd:extension>
</xsd:complexContent>
</xsd :complexType>
Stéréotype Structure (XSD)
Les classes de stéréotype
Structure permettent de définir des unions de types. Ce stéréotype est spécifique à XSD. Voir
"Définition d'union", page 56.