É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 seule 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 apparaître ensemble.

fixed

Optionnel. Définit la valeur fixe de l'attribut. Les attributs default et fixed ne peuvent pas apparaître ensemble.

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 l'attribut.

  • "qualified" - Indique que cet attribut doit être limité par un préfixe de nom d'espace et un nom sans deux-points (NCName) de l'attribut.
  • "unqualified" - Indique que cet attribut n'a pas besoin d'être préfixé par un namespace, et n'a pas besoin de correspondre au nom (NCName) sans préfixe de cet attribut, 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 ensemble.

ref

Optionnel. Définir la référence à l'attribut spécifié. Les attributs name et ref ne peuvent pas apparaître ensemble. Si ref apparaît, l'élément simpleType, form et type ne peuvent pas apparaître.

type

Optionnel. Définir le type de données ou le type simple intégré. L'attribut type ne peut apparaître que si 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 - L'attribut ne peut pas être utilisé.
  • Requis - L'attribut est obligatoire.

any attributes

Optionnel. Définir toute autre propriété avec une namespace 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>

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

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

La propriété 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 assignée à la propriété. 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 propriété est automatiquement assignée une valeur fixe. Cependant, contrairement à la valeur par défaut, si vous spécifiez une valeur autre que la valeur fixe pour la propriété, le document la valide comme étant invalide. Dans l'exemple suivant, la valeur fixe est "EN":

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

Exemple 4

Tous les attributs sont par défaut optionnels. Pour spécifier explicitement qu'un attribut est optionnel, utilisez l'attribut "use" :

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

Rendre l'attribut obligatoire :

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