Élément attribute du schéma XML

Définition et utilisation

L'élément attribute définit un attribut.

Informations sur l'élément

Nombre d'apparitions Défini une fois dans l'élément schema. Référencé plusieurs fois dans les types complexes ou les groupes d'attributs.
Élément parent attributeGroup、schema、complexType、restriction (simpleContent)、extension (simpleContent)、restriction (complexContent)、extension (complexContent)
Contenu annotation、simpleType

Grammaire

<attribute
default=string
fixed=string
form=qualified|unqualified
id=ID
name=NCName
ref=QName
type=QName
use=optional|prohibited|required
any attributes
>
(annotation?,(simpleType?))
</attribute>

(? le symbole indique que cet élément peut apparaître zéro ou une fois dans l'élément attribute。)

Attribut

default

Optionnel. Définit la valeur par défaut de l'attribut. Les attributs default et fixed ne peuvent pas être utilisés simultanément.

fixed

Optionnel. Définit la valeur fixe de l'attribut. Les attributs default et fixed ne peuvent pas être utilisés simultanément.

form

Optionnel. Définit le format de l'attribut. La valeur par défaut est celle de l'attribut attributeFormDefault de l'élément schema contenant cette propriété. Il peut être configuré avec les valeurs suivantes :

  • "qualified" - Indique que cette propriété doit être limitée par un préfixe de nom d'espace et par le nom sans deux-points (NCName) de cette propriété.
  • "unqualified" - Indique que cette propriété n'a pas besoin d'être limitée par un préfixe de nom d'espace, et n'a pas besoin de correspondre au nom sans deux-points (NCName) de cette propriété, c'est-à-dire au nom local.

id

Optionnel. Définir l'ID unique de cet élément.

name

Optionnel. Définir le nom de l'attribut. Les attributs name et ref ne peuvent pas apparaître en même temps.

ref

Optionnel. Définir la référence à l'attribut spécifié. Les attributs name et ref ne peuvent pas apparaître en même temps. Si ref apparaît, les éléments simpleType, form et type ne peuvent pas apparaître.

type

Optionnel. Définir le type de données intégré ou le type simple. L'attribut type ne peut apparaître que lorsque le contenu ne contient pas d'élément simpleType.

use

Optionnel. Définir la manière d'utiliser cet attribut. Les valeurs suivantes peuvent être définies :

  • Optionnel - L'attribut est optionnel et peut avoir toute valeur (par défaut).
  • Interdit - Ne pas utiliser l'attribut.
  • Requis - L'attribut est obligatoire.

any attributes

Optionnel. Définir toute autre propriété avec un espace de noms non-schématique.

Exemple

Exemple 1

<xs:attribute name="code">
<xs:simpleType>
  <xs:restriction base="xs:string">
    <xs:pattern value="[A-Z][A-Z]"/>
  </xs:restriction>
</xs:simpleType>
</xs:attribute>

L'exemple ci-dessus indique que l'attribut "code" a une restriction. Les seules valeurs acceptables sont deux lettres majuscules A à Z.

Exemple 2

Pour utiliser une définition d'attribut existante dans un type complexe pour déclarer un attribut, utilisez l'attribut ref :

<xs:attribute name="code">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[A-Z][A-Z]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:attribute>
<xs:complexType name="someComplexType">
  <xs:attribute ref="code"/>
</xs:complexType>

Exemple 3

L'attribut peut avoir une valeur par défaut ou une valeur fixe spécifiée. Lorsqu'aucune autre valeur n'est spécifiée, la valeur par défaut est automatiquement attribuée à l'attribut. Dans l'exemple suivant, la valeur par défaut est "EN":

<xs:attribute name="lang" type="xs:string" default="EN"/>

Lorsqu'aucune autre valeur n'est spécifiée, la valeur fixe est automatiquement attribuée à l'attribut. Mais contrairement à la valeur par défaut, si vous avez spécifié une autre valeur que la valeur fixe pour l'attribut, le document sera vérifié comme étant invalide. Dans l'exemple suivant, la valeur fixe est "EN":

<xs:attribute name="lang" type="xs:string" fixed="EN"/>

Exemple 4

Toutes les propriétés sont par défaut optionnelles. Pour spécifier explicitement une propriété comme optionnelle, utilisez l'attribut "use" :

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

Rendre une propriété obligatoire :

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