Déclaration d'attributs (XSD)
Les déclarations d'attributs indiquent la présence d'attributs dans un type de balise. De même que pour les déclarations d'éléments, on peut appliquer des contraintes sur les attributs :
• présence optionnelle ou non
• valeur par défaut
• etc.
Modélisation des attributs XSD
Les attributs UML des classes correspondent aux attributs des types de balise. Pour ajouter une déclaration d'attribut dans un type de balise, vous devez créer un attribut dans la classe. Le type de l'attribut de la balise est déduit du type de l'attribut UML.
L'éditeur de schémas vous permet de paramétrer les déclarations d'attributs.

Sélectionnez l’attribut dans le navigateur. Sa fenêtre de propriétés s’affiche dans la partie droite de l’éditeur.
Onglet XSD :
• XSD Name : nom de l'attribut dans le cadre de la génération XSD. Si ce paramètre n'est pas renseigné, c’est le nom de l'attribut qui est pris pour la génération.
• XSD Id : permet d’identifier la balise <attribute>.
• XSD Form : donne la valeur de l'attribut "form".
• XDD Attribut UML en tant qu’élément XML : permet de spécifier si les attributs UML sont générés systématiquement en éléments XML ou s’ils sont générés suivant leur type de base. Il existe deux options possibles :
• Déterminé à partir du type de base : si l’attribut est de type simple, un attribut XML est généré. Si l’attribut est de type complexe, c’est un élément XML qui est généré.
• Forcé en tant qu’élément : quelque soit le type de base, l’attribut UML est généré en tant qu’élément XML.
Onglet Caractéristiques :
• Multiplicité : détermine la valeur de l'attribut "use" de la déclaration d'attribut. La multiplicité peut prendre les valeurs "0", "0..1" ou "1". Par défaut la multiplicité est "1".
Si multiplicité = "0", "use" = "prohibited".
Si multiplicité = "0..1", "use" = "optional".
Si multiplicité = "1", "use" = "required".
• Modifiable : lorsque cet attribut est positionné à "non", il en résulte un attribut "fixed" dans la balise <attribute> (si toutefois une valeur est donnée au paramètre valeur initiale).
• Valeur initiale : si "Modifiable" est à "non", l'attribut "fixed" est généré avec la valeur contenue dans "Valeur initiale". Sinon, c'est un attribut "default" qui est généré avec pour valeur celle de "Valeur initiale".
Références des attributs (XSD)
De même que vous pouvez faire des déclarations d'éléments globaux, vous pouvez déclarer des attributs au niveau du schéma. Ces déclarations sont utilisées dans les types par référence.
<XSD:attribute name="globAttribute" type="globType"/>
<XSD:complexType name="cType">
<XSD:attribute ref="globAttribute"/>
</XSD:complexType>
Attributs de type ID (XSD)
Les attributs de types ID permettent d'identifier les éléments de manière unique dans tout le document.
Par défaut, les types complexes sont générés avec des attributs de types "ID". Cela provient du fait que les classes ont le paramètre de génération "XDD compulsory ID Attribute" affecté à "oui". Ce paramètre entraîne la génération d'un attribut de type "ID" dont le nom est spécifié par le paramètre "XDD ID Attribute Name" et l'option d'utilisation par le paramètre "XDD ID Attribute Required".

Vous pouvez modifier les paramètres de toutes les classes d'un paquetage en modifiant les paramètres du paquetage en question.
Lorsqu’un attribut UML de type expression "ID" est présent sur la classe, les paramètres précisés sous l’onglet Génération ne sont pas pris en compte. Il ne doit pas y avoir plus d'un attribut de type "ID" sur une classe.
Associations non composées (XSD)
Les associations "simples" (sans composition) ne sont pas interprétées comme des déclarations d'élément. Lorsqu'une association relie deux classes, les rôles navigables indiquent que la classe opposée au rôle navigable référence la classe adjacente. Cela se traduit par la création d'un attribut de type "IDREF" dans le type correspondant à la classe "référençante".
Le nom de l'attribut généré est tiré du nom du rôle. De plus, la multiplicité du rôle oriente la manière dont l'attribut est généré :
• Multiplicité = "0", "use" = "prohibited"
• Multiplicité = "0..1", "use" = "optional"
• Multiplicité = "1", "use" = "required"
• Multiplicité > 1, le type de l'attribut est "IDREFS"
<xsd:complexType name="Type2" mixed="false">
<xsd:attribute name="id" use="required" type="xsd:ID"/>
<xsd:attribute name="Referencedelements" use="optional" type="xsd:IDREFS"/>
</xsd:complexType>