L'élément attribute permet de représenter un attribut XML dans une définition de schéma.

<xsd:attribute 
  default = string 
  fixed = string 
  form = (qualified | unqualified)
  id = ID 
  name = NCName 
  ref = QName 
  type = QName 
  use = (optional | prohibited | required) : optional
  {tout attribut ayant un espace de noms 
        différent de celui du schéma...}>
  Contenu : (annotation?, (simpleType?))
</xsd:attribute>

L'élément attribute possède plusieurs attributs destinés à définir précisément l'attribut d'un élément XML.

Attributs Description
default précise une valeur par défaut pour l'attribut.
fixed empêche une dérivation par restriction du type de l'attribut.
form indique si l'attribut XML doit être ou non qualifié par un espace de noms.
id précise un identificateur unique pour l'attribut.
name indique le nom de l'attribut XML.
ref spécifie une référence à un autre élément de schéma.
type fournit le type de données accepté par l'attribut.
use indique comment l'attribut doit apparaître.

L'élément attribute ne peut être inclus que dans les éléments suivants :

Exemple [voir]
<?xml version="1.0"?>
<element_racine attribut_racine="valeur"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
            xsi:noNamespaceSchemaLocation="c:\schema.xsd">
  <element_enfant attribut_enfant="valeur">
  Chaîne de caractères
  </element_enfant>
</element_racine>

<xsd:schema
        xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        elementFormDefault="qualified">
  <xsd:complexType name="type_element_enfant">
  <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attribute name="attribut_enfant"
                             type="xsd:string" use="required"/>
      </xsd:extension>
  </xsd:simpleContent>
  </xsd:complexType>
  <xsd:element name="element_racine">
  <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="element_enfant"
                            type="type_element_enfant"/>
      </xsd:sequence>
      <xsd:attribute name="attribut_racine"
                           type="xsd:string" use="required"/>
  </xsd:complexType>
  </xsd:element>
</xsd:schema>