xsl:attribute
The xsl:attribute
element is used to add an attribute value to an
xsl:element
element or general formatting element, or to an
element created using xsl:copy
. The attribute must be output
immediately after the element, with no intervening character data. The name of
the attribute is indicated by the name
attribute and the value by
the content of the xsl:attribute
element.
Category: instruction
Content:
sequence-constructor
Permitted parent elements:
xsl:attribute-set
; any XSLT element whose content model is sequence
constructor; any literal result element
Attributes
|
|
Attribute name, interpreted as an attribute value template, so it may contain string expressions within curly braces. The full syntax of string expressions is outlined in XPath Expression Syntax. |
|
|
|
|
|
The attribute value may be given either by a
|
|
|
String used to specify an alternative separator. |
|
|
New in XSLT 2.0. Indicates the data type of
the value of the attribute. The value must either be a built-in type defined in
XML Schema, for example |
|
|
Details
There are two main uses for the xsl:attribute
element:
-
It is the only way to set attributes on an element generated dynamically using xsl:element.
-
It allows attributes of a literal result element to be calculated using xsl:value-of.
The xsl:attribute
must be output immediately after the relevant
element is generated: there must be no intervening character data (other than
white space which is ignored). Saxon outputs the closing ">" of the element
start tag as soon as something other than an attribute is written to the output
stream, and rejects an attempt to output an attribute if there is no
currently-open start tag. Any special characters within the attribute value will
automatically be escaped (for example, "<" will be output as "<")
If two attributes are output with the same name, the second one takes precedence.
Examples
The following code creates a <FONT>
element with several
attributes: