Skip to content

xsl:with-param⚓︎

Used to define an actual parameter to a template: within an xsl:call-template, xsl:apply-templates, xsl:apply-imports, or xsl:next-match element. Also used to define parameters to an iteration (using xsl:next-iteration) or to a dynamic invocation of an XPath expression (using xsl:evaluate).

Available in XSLT 1.0 and later versions. Available in all Saxon editions.

Attributes⚓︎

name
eqname
The name of the parameter.
select?
expression
The value of the parameter may be defined either by a select attribute, or by the contents of the xsl:param element, in the same way as for xsl:variable.
as?
sequence-type
Defines the required type of the parameter. The supplied value of the parameter will be converted to this type if required.
tunnel?
boolean
Used only when passing parameters to templates. The attribute tunnel="yes" creates a tunnel parameter which is accessible to called templates at any depth, whether or not they are declared in intermediate templates. However, the value is only accessible if tunnel="yes" is also specified on the corresponding xsl:param element.
saxon:as?
sequence-type
Allows additional type information to be supplied using Saxon extension syntax.

Details⚓︎

For an example, see xsl:template.

The parameter has no effect unless the called template includes a matching xsl:param element. But when using xsl:call-template, it is an error to specify a parameter that isn't declared in the target template, or to omit a parameter that's described in the target template with required="yes".

See also⚓︎

Comments