I think the answer to your question is yes. You can send node XSLT functions.
If you are interested in what to use for the value of the as = "attribute, you have several options. If you want to be very weak and accept anything, use as =" item () * " .
item () * .. kind of node node? W3c
Yes, I agree that this looks pretty pointless, doesn't it. But. Starting with CR, this is pretty important, especially if you want to use types. And I want to generate, say, a set of nodes .. sorry sequences in the variable.
This creates a variable that you can hack into using xpath quite easily. That is, remember the element () *.
types ... a few examples. W3c
From Mike Kay's explanatory letter, thanks to Mike. Examples:
<xsl:param name="x" as="item()"/>
the parameter value can be any element (i.e. a node or atomic value). But it must be one element.
<xsl:param name="x" as="item()?"/>
the parameter may be a single element or an empty sequence
<xsl:param name="x" as="item()+"/>
the parameter must be a sequence of one or more elements - an empty sequence is not allowed
<xsl:param name="x" as="item()*"/>
a parameter can be any sequence of zero or more objects - this does not put a limit on its value.
<xsl:param name="x" as="node()*"/>
the parameter can be any sequence of zero or more nodes
<xsl:param name="x" as="xs:atomicValue*"/>
a parameter can be any sequence of zero or more atomic values (for example, integers, strings, or logical values).
item () * is the most common type possible, it matches everything, like an "Object" in Java. For this reason, it can usually be omitted. But there is not always, for example, the default type in xsl: the variable is not an element () *, but document-node (), to make sure
<xsl:variable name="rtf"><a>thing</a> </xsl:variable>
continues to behave like XSLT 1.0
Use them to specify parameters, variable types, etc.