Condividi tramite


Elemento <xsl:attribute-set>

Definisce un set denominato di attributi.

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

Attributi

  • name
    Obbligatorio. Nomi completi (XSLT) del set di attributi. Il valore dell'attributo name è un nome completo.

  • use-attribute-sets
    Un elenco di insiemi di attributi separati da spazi vuoti, specificato come un Nomi completi (XSLT). Se si specifica questo attributo, viene dichiarato ogni attributo in ogni set di attributi elencati.

Informazioni sull'elemento

Numero di occorrenze

Illimitato

Elementi padre

xsl:stylesheet, xsl:transform

Elementi figlio

xsl:attribute

Note

Il contenuto dell'elemento <xsl:attribute-set> consiste di zero o più elementi <xsl:attribute> che specificano gli attributi nell'insieme. Per usare insiemi di attributi, specificare un attributo use-attribute-sets sugli elementi <xsl:element>, <xsl:copy> o <xsl:attribute-set>.

Se a seguito dell'utilizzo di attributi use-attribute-sets su elementi <xsl:attribute-set> un insieme di attributi usa se stesso direttamente o indirettamente, si verifica un errore.

Un metodo efficace per dichiarare più attributi su un elemento è quello di specificare un attributo use-attribute-sets. Per ottenere lo stesso risultato con <xsl:attribute>, sarebbe necessario usare un elemento <xsl:attribute> per ogni attributo dell'insieme denominato di attributi. Questi elementi <xsl:attribute> verranno aggiunti nel contenuto dell'elemento <xsl:element>, <xsl:copy> o <xsl:attribute-set>.

Gli insiemi di attributi possono essere usati anche specificando un attributo xsl:use-attribute-sets su un elemento del risultato letterale. Per un elemento del risultato letterale, gli attributi verranno aggiunti nel seguente ordine:

  1. Attributi provenienti dall'insieme di attributi denominati in un attributo xsl:use-attribute-sets, nell'ordine specificato in quell'attributo.

  2. Attributi specificati sull'elemento del risultato letterale.

  3. Verranno aggiunti tutti gli attributi specificati dagli elementi <xsl:attribute>.

Poiché aggiungendo un attributo a un elemento si sostituiscono tutti gli attributi con lo stesso nome esistenti nell'elemento, gli attributi specificati negli insiemi di attributi possono essere sottoposti a override da parte degli attributi specificati sull'elemento del risultato letterale stesso.

Viene creata un'istanza del modello che si trova all'interno di ogni elemento <xsl:attribute> in un elemento <xsl:attribute-set> ogni volta che viene usato l'insieme di attributi. L'istanza viene creata usando lo stesso nodo corrente ed elenco di nodi corrente usati per creare l'istanza dell'elemento che dispone dell'attributo use-attribute-sets o xsl:use-attribute-sets. La visibilità delle associazioni variabili, tuttavia, è determinata dalla posizione dell'elemento <xsl:attribute> nel foglio di stile e non dalla posizione dell'elemento che dispone dell'attributo use-attribute-sets o xsl:use-attribute-sets. Di conseguenza sono visibili solo le variabili e i parametri dichiarati da elementi di primo livello <xsl:variable> e <xsl:param>.

Vengono unite più definizioni di un insieme di attributi con lo stesso nome espanso. Un attributo di una definizione che dispone di una priorità di importazione maggiore ha la precedenza su un attributo di una definizione che presenta una priorità di importazione minore.

Se sono disponibili due insiemi di attributi con lo stesso nome espanso, la stessa priorità di importazione e lo stesso attributo, si verifica un errore a meno che non sia disponibile una definizione dell'insieme di attributi con priorità d'importazione maggiore che contenga anch'esso l'attributo.

Nell'argomento seguente viene fornito un esempio dell'elemento <xsl:attribute-set>.