Élément <xsl:key>
L'élément <xsl:key> déclare une clé nommée — à savoir, une paire nom-valeur assignée à un élément spécifié d'un document XML. Cette clé est utilisée avec la fonction key() dans des expressions XPath pour vous aider à accéder efficacement aux éléments assignés dans un document XML complexe.
<xsl:key
name = QName
match = Pattern
use = Expression
</xsl:key>
Attributs
name
Spécifie le Noms qualifiés (XSLT) de la clé.match
Spécifie le Modèles (XSLT) identifiant un nœud qui contient cette clé.use
Spécifie une Expressions (XSLT) à utiliser comme valeur pour la clé. La valeur de la clé doit être : un attribut, un élément enfant ou le contenu de l'élément correspondant.
Informations sur les éléments
Nombre d'occurrences |
Illimité |
Éléments parents |
|
Éléments enfants |
(Pas d'éléments enfants) |
Notes
Vous pouvez utiliser des clés comme identificateurs généralisés servant à faire référence à des éléments dans un document XML. Pour ce faire, utilisez d'abord <xsl:key> pour déclarer une clé correspondant à un nœud. Appelez ensuite la fonction key() pour récupérer ce nœud, en fournissant comme arguments le nom et la valeur de la clé. Pour plus d'informations, voir l'exemple ci-dessous.
Plusieurs clés peuvent être déclarées dans un même nœud. Cela permet d'accéder de plusieurs manières à ce nœud.
Lorsque vous travaillez avec des documents XML relativement volumineux, une clé est souvent une façon rapide de rechercher des éléments. En effet, elle indexe d'avance les emplacements des nœuds souhaités. Cependant, lorsque des éléments <xsl:key> sont compilés, le processeur XSLT ne crée pas de tels index tant qu'une fonction key() n'y fait pas référence. De cette façon, l'indexation, qui est une opération qui prend du temps, n'est effectuée que lorsque c'est nécessaire.
Dans une feuille de style, les éléments <xsl:key> sont des éléments de niveau supérieur et ne peuvent pas apparaître dans un modèle. Afin d'éviter les références circulaires, vous ne pouvez pas utiliser des références à des paramètres ou à des variables dans un <xsl:key>.
Exemple
La rubrique suivante fournit un exemple d'élément <xsl:key>.