HOPEX UML : HOPEX XML Schemas : Contrôles : Contrôles des schémas XML
   
Contrôles des schémas XML
 
Contrôles des associations
Contrôles des rôles d'association
Contrôles des classes
Contrôles des attributs
Les contrôles sont réalisés par type de segment. Ce niveau de contrôle recense les anomalies propres à la modélisation des schémas.
Contrôles des associations
Une association doit être binaire.
Le module de contrôle signale toutes les associations non binaires (ternaires, etc.).
Le rôle opposé à une agrégation doit être navigable.
Les éléments sont décrits par des associations binaires dont un rôle est une agrégation. Dans ce cas, le rôle opposé doit être navigable (navigabilité spécifiée à "oui" ou non renseignée).
Contrôles des rôles d'association
Un rôle d'association vers un type élémentaire doit être nommé.
Lorsqu'un rôle d'association n'est pas nommé, il prend automatiquement le nom de la classe à laquelle il est attaché. Dans le cas des types élémentaires (NMTOKENS, STRING), le nom du rôle doit être spécifié afin de ne pas générer des éléments avec des noms réservés.
Contrôles des classes
Un groupe ne doit hériter que de groupes
Une classe de stéréotype Schema Group ne peut hériter que d'autres classes du même stéréotype. En l'occurrence, l'héritage vers des classes de stéréotype Enumération ou Interface est prohibé.
Une classe non stéréotypée ne doit pas hériter de groupes
Une classe dont le stéréotype n'est pas Schema Group ne doit pas hériter de groupes. En revanche, les stéréotypes UML usuels comme Frontière, Entité, etc. ne sont pas contrôlés. Toutefois, ils ne devraient pas apparaître dans un schéma (sauf si le modèle de données et la structure du document sont modélisés par les mêmes classes).
Une classe ne doit avoir au maximum qu'un seul attribut ID.
Une balise XML ne peut disposer que d'un seul attribut XML de type ID.
La contrainte dans MEGA concerne donc les classes qui modélisent ces balises.
Une classe doit disposer au maximum d'un seul attribut de type ID.
Toutefois, cette contrainte est rendue plus complexe par le mode de création automatique des attributs de ce type. De plus, il est nécessaire de prendre en compte les attributs hérités par la classe mais non surchargés.
Le contrôle indiquera donc l'ensemble des attributs de type ID ainsi que l'attribut créé automatiquement quand l'option est demandée (paramètre XDD compulsory ID Attribute).
Contrôles des attributs
Les attributs non optionnels ne doivent pas avoir de valeur initiale
Les attributs obligatoires (multiplicité égale à 1 ou non spécifiée), ne peuvent pas disposer de valeur initiale puisqu'ils doivent toujours être spécifiés.
La cardinalité d'un attribut ne doit pas être supérieure à 1
Dans le langage XML, une balise ne peut énoncer un attribut plus d'une fois. Sa multiplicité dans MEGA sera donc au maximum égale à 1. En somme, les valeurs autorisées sont : non renseigné, 0, 0..1 et 1.