Rétro-génération XSD : SimpleType
La balise "SimpleType" définit une définition de balise ou d'attribut XML, autrement dit, elle définit la structure d'une balise ou d'un attribut. Cette structure peut ensuite être réutilisée par plusieurs balises ou attributs. La structure est simple, c'est-à-dire qu'elle ne peut contenir ni d'attribut, ni de sous-tag. Par contre, elle peut représenter une liste, une union de types ou encore imposer des restrictions sur des types simples déjà existants.
La balise "SimpleType" est modélisée par une classe UML.
Attributs de "SimpleType"
• Final : est modélisé par trois paramètres de génération représentant les types d 'héritage interdits :
• XSD Final Restriction à valeur tabulée "oui" ou "non"
• XSD Final List à valeur tabulée "oui" ou "non"
• XSD Final Union à valeur tabulée "oui" ou "non"
• Id : est modélisé par le paramètre de génération XSD Id.
• Name : est modélisé par le nom de la classe. Pour générer un nom différent de celui de la classe, entrez le nouveau nom dans le paramètre XSD Name.
• Type : il s'agit de modéliser quel est le type rétro-généré : type simple ou type complexe. Cet attribut est modélisé par le paramètre XSD Type qui prend les valeurs "type simple" ou"type complexe". Dans le cas présent, il prend la valeur "type simple". Il est facultatif.
Restriction
Le type de base ou le type interne de la restriction est modélisé par le lien de typage "UML type de base de l'expression" entre le type simple et le type de base. De plus, le type simple est de stéréotype "Expression". Si le type est local, on crée une classe imbriquée dans le type simple.
Les facets sont modélisées par des contraintes de stéréotype "XSD Facet" sur la classe (excepté pour Enumeration).
Dans le cas d'une facet de type "énumération", le simpletype est de stéréotype "Enumeration". Les valeurs de l'énumération sont stockées en tant que "valeurs litérales".
Liste
La liste est modélisée de la manière suivante :
• Le type de base ou le type interne de la liste est modélisé par le lien de typage "UML type de base de l'expression" entre le type simple et le type de base. De plus, le type simple est de stéréotype "Expression". Si le type est local, on crée une classe imbriquée dans le type simple.
• "La liste est modélisée par le paramètre XSD List qui prend la valeur "oui" si s’agit d’une liste ou "non" dans le cas contraire.
Union
L'union est modélisée de la manière suivante :
• Les types peuvent être définis dans la liste de types memberTypes séparés par des espaces et/ou en local. Ils sont modélisés en tant qu'attributs de la classe associée au type simple. Le nom de l'attribut est le nom du type. S'il y a des types locaux, on crée des classes imbriquées dans le type simple.
• Le typage Union est modélisé par le paramètre XSD Union initialisé à "oui" ("non" dans les autres cas). Le type simple doit en plus être de stéréotype "Structure".