Elemento <xsl:key>
L'elemento <xsl:key> dichiara una chiave denominata, ovvero una coppia nome/valore assegnata a un elemento specifico in un documento XML. La chiave viene usata con la funzione key() delle espressioni XPath per consentire un utilizzo efficiente degli elementi assegnati in un documento XML complesso.
<xsl:key
name = QName
match = Criterio
use = Expression
</xsl:key>
Attributi
name
Specifica il Nomi completi (XSLT) della chiave.match
Specifica il Modelli (XSLT) che identifica un nodo contenente la chiave.use
Specifica un valore Espressioni (XSLT) da usare per la chiave. La chiave può avere uno dei seguenti valori: un attributo, un elemento figlio oppure il contenuto dell'elemento corrispondente.
Informazioni sull'elemento
Numero di occorrenze |
Illimitato |
Elementi padre |
|
Elementi figlio |
(Nessun elemento figlio) |
Note
È possibile usare le chiavi come identificatori generici per fare riferimento a elementi di un documento XML. Per eseguire questa operazione, usare innanzitutto <xsl:key> per dichiarare una chiave di un nodo. Quindi chiamare la funzione key() per recuperare il nodo, fornendo il nome e il valore della chiave come argomenti della funzione. Per altre informazioni, vedere l'esempio seguente.
È possibile dichiarare più chiavi in un nodo. Pertanto sono disponibili diversi modi per eseguire query in un nodo.
Se si usano documenti XML di dimensioni relativamente grandi, spesso una chiave consente di eseguire query negli elementi in modo rapido, poiché esegue in anticipo l'indicizzazione delle posizioni dei nodi desiderati. Tuttavia, se gli elementi <xsl:key> sono compilati, il processore XSLT non creerà tali indici a meno che non venga chiamata una funzione key() per le chiavi. In questo modo l'operazione di indicizzazione, che richiede molto tempo, verrà eseguita solo se necessario.
In un foglio di stile, gli elementi <xsl:key> sono elementi di primo livello e non possono essere visualizzati all'interno di un modello. Per evitare i riferimenti circolari, non è possibile usare riferimenti a un parametro o a una variabile come parte di una corrispondenza <xsl:key>.
Esempio
Nell'argomento seguente viene fornito un esempio dell'elemento <xsl:key>.