Partager via


Élément <xsl:attribute-set>

Définit un ensemble nommé d'attributs.

<xsl:attribute-set
  name = QName
  use-attribute-sets = QNames
</xsl:attribute-set>

Attributs

  • name
    Obligatoire. L'attribut Noms qualifiés de l'ensemble d'attributs. La valeur de l'attribut name est un nom qualifié.
  • use-attribute-sets
    Liste d'ensembles d'attributs, séparés par des espaces, spécifiée par un Noms qualifiés. La spécification de cet attribut déclare chaque attribut dans chaque ensemble d'attributs de la liste.

Informations sur l'élément

Nombre d'occurrences

Illimité

Éléments parents

xsl:stylesheet, xsl:transform

Éléments enfants

xsl:attribute

Notes

Le contenu de l'élément <xsl:attribute-set> se compose de zéro, un ou plusieurs éléments <xsl:attribute> qui spécifient les attributs de l'ensemble. Pour utiliser des ensembles d'attributs, spécifiez un attribut use-attribute-sets avec les éléments <xsl:element>, <xsl:copy> ou <xsl:attribute-set>.

Une erreur se produit si l'utilisation d'attributs use-attribute-sets avec des éléments <xsl:attribute-set> fait qu'un ensemble d'attributs s'utilise lui-même, directement ou indirectement.

La spécification d'un attribut use-attribute-sets peut être une façon efficace de déclarer plusieurs attributs pour un élément. Pour obtenir les mêmes résultats avec <xsl:attribute>, vous devriez utiliser un élément <xsl:attribute> pour chaque attribut de chaque ensemble d'attributs nommé. Vous ajouteriez ces éléments <xsl:attribute> comme contenu de l'élément <xsl:element>, <xsl:copy> ou <xsl:attribute-set>.

Des ensembles d'attributs peuvent aussi être utilisés en spécifiant un attribut xsl:use-attribute-sets dans un élément de résultat littéral. Pour un élément de résultat littéral, les attributs seront ajoutés dans l'ordre suivant :

  1. Attributs d'ensembles d'attributs nommés dans un attribut xsl:use-attribute-sets, dans l'ordre de ce dernier.

  2. Attributs spécifiés dans l'élément de résultat littéral.

  3. Les attributs éventuellement spécifiés par des éléments <xsl:attribute> seront ajoutés.

Étant donné que l'ajout d'un attribut à un élément remplace tout attribut du même nom existant dans cet élément, les attributs spécifiés dans des ensembles d'attributs peuvent être supplantés par des attributs spécifiés dans l'élément de résultat littéral lui-même.

Le modèle contenu dans chaque élément <xsl:attribute> d'un élément <xsl:attribute-set> est instancié chaque fois que l'ensemble d'attributs est utilisé. Il est instancié avec le même nœud actuel et la même liste de nœuds actuelle que ceux utilisés pour instancier l'élément qui porte l'attribut use-attribute-sets ou xsl:use-attribute-sets. Cependant, c'est la position de l'élément <xsl:attribute> dans la feuille de style — plutôt que la position de l'élément portant l'attribut use-attribute-sets ou xsl:use-attribute-sets — qui détermine les liaisons de variables visibles. Par conséquent, seuls sont visibles les variables et paramètres déclarés par les éléments <xsl:variable> et <xsl:param> de niveau supérieur.

Si un ensemble d'attributs est défini plusieurs fois dans le même nom développé, ces définitions sont fusionnées. Un attribut d'une définition ayant une priorité d'importation plus élevée prévaudra sur tout attribut d'une définition de moindre priorité.

Une erreur se produit s'il y a deux ensembles d'attributs ayant le même nom développé et une même priorité d'importation et que tous deux contiennent le même attribut, à moins qu'il y ait une autre définition de l'ensemble d'attributs qui soit de plus haute priorité et contienne également cet attribut.

La rubrique suivante fournit un exemple d'élément <xsl:attribute-set>.