Élément <xsd:attribute>

Déclare un attribut.

<attribute
  default = string
  fixed = string
  form = (qualified | unqualified)
  id = ID
  name = NCName
  ref = QName
  type = QName
  use = (optional | prohibited | required): optional
  {any attributes with non-schema Namespace...}>
Content: (annotation?, (simpleType?))
</attribute>

Attributs

  • default
    L'attribut a une valeur par défaut. Si l'attribut n'est pas spécifié dans une instance au sein d'un document XML, il prend la valeur fournie. Si l'attribut n'est pas présent dans le document d'instance, il doit apparaître dans les informations obtenues après validation du schéma. Les processeurs du schéma doivent agir comme si l'attribut était spécifié avec la valeur par défaut s'il ne se trouvait pas réellement dans le document d'instance. Les attributs default et fixed ne peuvent pas être tous les deux présents.

    Facultatif.

  • fixed
    L'attribut a une valeur fixe. Si l'attribut est présent dans un document d'instance, sa valeur doit être égale à la valeur fixe fournie S'il n'est pas présent, l'attribut reçoit la valeur fournie. Les attributs default et fixed ne peuvent pas être tous les deux présents.

    Facultatif.

  • form
    Forme de l'attribut. La valeur par défaut est la valeur de l'attribut attributeFormDefault de l'élément schema qui contient l'attribut. La valeur doit correspondre à l'une des chaînes suivantes : « qualified » ou « unqualified ».

    Si la valeur n'est pas qualifiée, cet attribut ne requiert pas de qualification par préfixe d'espace de noms et sa mise en correspondance s'effectue en fonction du NCName (nom sans signes deux-points) de l'attribut (nom local).

    Si la valeur est qualifiée, cet attribut doit être qualifié en combinant le targetNamespace du schéma et le NCName de l'attribut.

    Facultatif.

  • id
    ID de cet élément. La valeur id doit être du type ID et unique dans le document contenant cet élément.

    Facultatif.

  • name
    Nom de l'attribut. Ce nom doit être un NCName, comme défini dans la spécification sur les espaces de noms XML. Obligatoire si l'élément conteneur est l'élément schema. Les attributs Name et ref ne peuvent pas être présents en même temps.

    Lorsqu'un document XML est validé en fonction d'un schéma, chaque attribut figurant dans le document est validé par rapport à un élément attribute du schéma.

    Facultatif.

  • ref
    Nom d'un attribut déclaré dans ce schéma (ou un autre schéma indiqué par l'espace de noms spécifié). La valeur de ref doit être un nom qualifié (QName). Le type peut inclure un préfixe d'espace de noms. Les attributs Name et ref ne peuvent pas être présents en même temps. Si l'attribut ref est présent, l'élément simpleType, form et type ne peuvent pas être présents.

    Pour déclarer un attribut à l'aide d'une définition d'attribut existante dans un type complexe, utilisez l'attribut ref pour spécifier la définition d'attribut existante.

    <xs:attribute name="mybaseattribute">
      <xs:simpleType>
       <xs:restriction base="xs:integer">
          <xs:maxInclusive value="1000"/>
       </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:complexType name="myComplexType">
      <xs:attribute ref="mybaseattribute"/>
    </xs:complexType>
    

    Facultatif.

  • type
    Nom d'un type de données intégré ou d'un type simple défini dans ce schéma (ou dans un autre schéma indiqué par l'espace de noms spécifié). Ce type doit être un nom qualifié (QName). Le type peut inclure un préfixe d'espace de noms. L'attribut type ne peut être présent que lorsque le contenu ne comporte pas d'élément simpleType.

    Facultatif.

  • use
    Indicateur de la façon dont l'attribut est utilisé.

    S'il est spécifié, cet attribut doit avoir l'une des valeurs suivantes.

    optional

    L'attribut est facultatif et peut avoir n'importe quelle valeur. Il s'agit de la valeur par défaut. Les lignes de code suivantes sont équivalentes.

    <xs:attribute name="myattr" type="xs:string"/>
    <xs:attribute name="myattr" type="xs:string" use="optional"/>

    prohibited

    L'attribut ne peut pas être utilisé. Cet attribut est utilisé dans une restriction d'un autre type complexe afin d'interdire l'utilisation des attributs existants.

    <xs:complexType name="A">
      <xs:attribute name="x" type="xs:NCName"/>
      <xs:attribute name="y" type="xs:QName"/>
     </xs:complexType>
    

    <xs:complexType name="B"> <xs:complexContent> <xs:restriction base="xs:A"> <xs:attribute name="x" use="required" /> <xs:attribute name="y" use="prohibited"/> </xs:restriction> </xs:complexContent> </xs:complexType>

    required

    L'attribut doit apparaître une fois.

    L'attribut est obligatoire et peut contenir n'importe quelle valeur autorisée par cette définition de type de l'attribut.

    <xs:attribute name="myattr" type="xs:string" use="required"/>

    Cet attribut est utilisé dans une restriction ou une extension d'un autre type complexe, afin d'exiger la présence d'un ou plusieurs attributs spécifiés.

    <xs:complexType name="A">
      <xs:attribute name="x" type="xs:NCName"/>
      <xs:attribute name="y" type="xs:QName"/>
     </xs:complexType>
    

    <xs:complexType name="B"> <xs:complexContent> <xs:restriction base="xs:A"> <xs:attribute name="x" use="required" /> <xs:attribute name="y" use="prohibited"/> </xs:restriction> </xs:complexContent> </xs:complexType>

    Si l'attribut est déclaré comme global (son élément parent est schema), il est obligatoire pour tous les éléments du schéma.

    Facultatif.

Informations sur l'élément

Nombre d'occurrences

Défini une fois dans l'élément schema. Plusieurs références dans des types complexes ou des groupes d'attributs.

Éléments parents

attributeGroup, schema, complexType, restriction (simpleContent), extension (simpleContent), restriction (complexContent), extension (complexContent)

Contenu

annotation, simpleType

Notes

Une déclaration d'attribut associe un nom à une définition de type, qui peut être un type de données intégré ou un type simple.

Des déclarations d'attributs peuvent être présentes en tant qu'éléments enfants des éléments schema, complexType et attributeGroup (de portée globale) ou au sein de définitions de types complexes. Pour les types complexes, des déclarations d'attributs peuvent être présentes en tant que déclarations locales ou que références à des attributs de portée globale.

En outre, des éléments peuvent apparaître par référence dans des éléments attributeGroup et complexType.

Exemples

Dans l'exemple suivant, un attribut est déclaré par référence à un type intégré avec une valeur par défaut définie à test et utilisé dans un élément complexType.

Dans l'exemple suivant, un attribut required est déclaré directement dans un élément complexType.

Dans l'exemple suivant, un attribut est déclaré par dérivation à partir du type integer intégré (par restriction) et par restriction de la plage de valeurs pour que celles-ci soient comprises entre "60" et "95", inclus.

Dans l'exemple suivant, un attribut est déclaré sous la forme d'une liste contenant des valeurs décimales. (Cela permet à un attribut tel que shoeSizes="10.5 9 8 11" de contenir une liste des valeurs 10,5, 9, 8 et 11).

Autres ressources

Pour plus d'informations, consultez le document du W3C sur les schémas XML, notamment le tome 1 relatif aux structures, à l'adresse www.w3.org/TR/2001/REC-xmlschema-1-20010502/\#element-all.

Voir aussi

Référence

Référence du schéma XML (XSD)
Éléments de schéma XML