Condividi tramite


Elemento <xsl:attribute>

Crea un nodo Attribute e lo collega a un elemento di output.

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

Attributi

  • Nome
    Obbligatorio. Il nome dell'attributo da creare. Se il valore è un nome completo (QName), il nodo Attribute viene creato nello spazio dei nomi correntemente associato al prefisso, a meno che non venga sottoposto a override da un attributo namespace. Il valore dell'attributo name viene considerato come un modello del valore dell'attributo, ovvero le espressioni contenute in parentesi graffe vengono valutate e convertite in stringhe, come nell'elemento <xsl:value-of>. Ciò consente di calcolare o di ottenere il nome dell'attributo dall'XML di origine.

  • namespace
    L'URI (Uniform Resource Identifier) dello spazio dei nomi dell'attributo creato. Se l'attributo name contiene un nome completo, il prefisso specificato sarà associato allo spazio dei nomi specificato nell'attributo namespace. Ciò potrebbe provocare l'aggiunta di ulteriori dichiarazioni di spazio dei nomi in caso di serializzazione. Il valore è considerato come un modello del valore dell'attributo.

Informazioni sull'elemento

Numero di occorrenze

Illimitato

Elementi padre

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, elementi di output

Elementi figlio

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

Note

Il contenuto di questo elemento specifica il valore dell'attributo.

È possibile aggiungere o modificare gli attributi durante la trasformazione posizionando l'elemento <xsl:attribute> all'interno di elementi che generano output, quale l'elemento <xsl:copy>. Notare che <xsl:attribute> può essere usato direttamente su elementi di output e non solo assieme a <xsl:element>.

È necessario applicare tutti gli attributi prima di aggiungere elementi figlio all'elemento.

Esempi

Questo breve esempio genera un attributo che ottiene il proprio valore dall'origine XML. L'output viene generato nella forma <IMG src="value-from-XML-source"/>, usando un'espressione XPath che recupera i dati appropriati dall'origine XML. In questo caso, "imagenames/imagename".

ms256165.collapse_all(it-it,VS.120).gifFile XSLT

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

ms256165.collapse_all(it-it,VS.120).gifOutput

<IMG src=" imagenames/imagename"/>

L'elemento <xsl:attribute> può essere estremamente utile per la creazione dinamica di attributi di output che non sono noti prima della trasformazione di un documento, tuttavia non è necessario usarlo se si conoscono già gli attributi. Nell'esempio precedente è possibile che si sappia già che un elemento IMG deve contenere un attributo src. Poiché si conosce questo requisito prima della trasformazione del documento, non sarà necessario usare l'elemento <xsl:attribute>. Sarà possibile semplificare la sintassi di trasformazione e ottenere comunque lo stesso risultato usando la seguente stringa:

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

Usando l'elemento <xsl:attribute> al posto dei modelli del valore dell'attributo, è possibile:

  • Calcolare il nome dell'attributo.

  • Usare insiemi di condizionali, modelli e attributi assieme alla generazione di attributi.

  • Aggiungere attributi a un elemento generato dall'elemento <xsl:copy> o dall'elemento <xsl:element>.

Questa sezione contiene anche i seguenti esempi completi.