Surcharger des attributs
La notion de surcharge est usuelle en programmation orientée objet mais ne s'applique généralement qu'aux méthodes d'opération. Il s'agit du mécanisme permettant de définir des propriétés supplémentaires sur un attribut hérité.
Pour surcharger un attribut dans l’éditeur de schéma :
1. Sélectionnez l’attribut dans le navigateur.
2. Dans la fenêtre de propriétés, cliquez sur l’onglet Compléments.
3. Sélectionnez le paramètre Attribut surchargé, et cliquez sur le bouton Relier.
La fenêtre de sélection apparaît.
4. Sélectionnez Liste des attributs à surcharger.
5. Dans la liste de résultat, sélectionnez l'attribut et cliquez sur relier.
Modélisation UML
Pour surcharger un attribut dans un diagramme :
1. Affichez la fenêtre de propriétés de la classe héritée.
2. Dans l'onglet Attribut, sélectionnez l'attribut à surcharger puis cliquez sur le bouton Propriétés.
3. Procédez comme ci-dessus.
Lorsqu'une classe hérite d'une autre classe, il est possible de modifier les attributs hérités.
Cette surcharge (le fait de modifier les attributs hérités) permet de définir uniquement les spécificités de l'attribut dans la classe fille.
Toutes les propriétés de l'attribut non redéfinies dans la classe fille restent donc identiques à celles de la classe mère.
Résultat
Dans la figure ci-dessous, l'attribut "adresse Web" est surchargé dans la classe "Auteur Web".

Restriction : L'attribut surchargé doit impérativement être un attribut hérité d’une classe ancêtre.

Le type de l'attribut surchargeant n'est pas défini, on considère dans ce cas que son type est celui de l'attribut surchargé (STRING).
Exemple
La classe "Auteur" dispose d'un attribut "adresse web". Cet attribut est surchargé dans la classe "Auteur Web". La différence entre la version originale et la version surchargée de l'attribut est sa multiplicité : dans le premier cas, l'attribut est optionnel et dans la version surchargée, l'attribut est obligatoire.
XSD
<xsd:ComplexType name="Auteur">
<xsd:attribute name="nom" type='xsd:string' use="required"/>
<xsd:attribute name="prenom" type='xsd:string' use="required"/>
<xsd:attribute name="adresseweb" type="xsd:string" />
</xsd:complexType>
<xsd:complexType name="AuteurWeb">
<xsd:simpleContent>
<xsd:restriction base='Auteur'>
<xsd:attribute name="nom" type='xsd:string' use="required"/>
<xsd:attribute name="prenom" type='xsd:string' use="required"/>
<xsd:attribute name="adresseweb" type="xsd:string" use='required' />
</xsd:restriction>
</xsd:simpleContent>
</xsd :complexType>