Élément <xsl:attribute>

Crée un nœud d'attribut et le joint à un élément de sortie.

<xsl:attribute
  name = "attribute-name"  
  namespace = "uri-reference">
</xsl:attribute>

Attributs

  • name
    Obligatoire. Nom de l'attribut à créer. Si cette valeur est un nom qualifié (QName), le nœud d'attribut est créé dans l'espace de noms actuellement lié au préfixe, sauf s'il est remplacé par un attribut namespace. La valeur de l'attribut name est interprétée comme un modèle de valeur d'attribut — des expressions entre accolades sont évaluées et converties en chaînes, comme dans l'élément <xsl:value-of>. Cela permet de calculer le nom de l'attribut ou de l'obtenir du XML source.
  • espace de noms
    URI d'espace de noms de l'attribut créé. Si l'attribut name contient un nom qualifié, le préfixe spécifié sera lié à l'espace de noms spécifié dans l'attribut namespace. Cela pourrait entraîner l'ajout d'autres déclarations d'espace de noms lors de la sérialisation. Cette valeur est interprétée comme un modèle de valeur d'attribut.

Informations sur l'élément

Nombre d'occurrences

Illimité

Éléments parents

xsl:copy, xsl:element, xsl:fallback, xsl:for-each, xsl:if, xsl:message, xsl:otherwise, xsl:param, xsl:template, xsl:variable, xsl:when, xsl:with-param

Éléments enfants

xsl:apply-imports, xsl:apply-templates, xsl:call-template, xsl:choose, xsl:copy, xsl:copy-of, xsl:fallback, xsl:for-each, xsl:if, xsl:message, xsl:number, xsl:text, xsl:value-of, xsl:variable

Notes

Le contenu de cet élément spécifie la valeur de l'attribut.

Des attributs peuvent être ajoutés ou modifiés pendant la transformation en plaçant l'élément <xsl:attribute> dans des éléments qui génèrent une sortie, comme l'élément <xsl:copy>. Notez que <xsl:attribute> peut être appliqué directement à des éléments de sortie et pas seulement en conjonction avec <xsl:element>.

Tous les attributs doivent être appliqués avant que les enfants soient ajoutés à l'élément.

Exemples

Ce petit exemple génère un attribut qui obtient sa valeur de la source XML. Il génère une sortie sous la forme <IMG src="value-from-XML-source"/>, utilisant une expression XPath qui récupère les données appropriées de la source XML – ici, "imagenames/imagename".

Fichier XSLT

<IMG>
  <xsl:attribute name="src">
    <xsl:value-of select="imagenames/imagename" />
  </xsl:attribute>
</IMG>

Sortie

<IMG src=" imagenames/imagename"/>

Alors que l'élément <xsl:attribute> peut être extrêmement utile pour créer de manière dynamique des attributs qui ne sont pas connus avant de transformer un document, vous ne devez pas utiliser cet élément si vous connaissez déjà les attributs. Dans l'exemple précédent, il se peut que vous sachiez déjà qu'un élément IMG doive contenir un attribut src. Puisque vous connaissez cette exigence avant de transformer le document, vous devriez ne pas avoir à utiliser l'élément <xsl:attribute>. Vous pourriez simplifier la syntaxe de transformation et obtenir le même résultat en utilisant :

<IMG src="{imagenames/imagename}"/>

En utilisant l'élément <xsl:attribute> au lieu de modèles de valeur d'attribut, vous pouvez :

  • Calculer le nom de l'attribut

  • Utiliser des conditionnels, des modèles et des ensembles d'attributs en relation avec la génération d'attributs

  • Ajouter des attributs à un élément généré par l'élément <xsl:copy> ou <xsl:element>

Cette section comporte également les exemples complets suivants.