The value of a variable (local or global variable, local or global parameter) may be
referred to using the construct
is the variable name.
The variable is always bound at the textual place where the expression containing it appears; for example a variable used within an xsl:attribute-set must be in scope at the point where the attribute-set is defined, not the point where it is used.
A variable may be declared to be of a particular type, for example it may be constrained to be an integer, or a sequence of strings, or an attribute node. In a schema-aware environment, this may also be a reference to a user-defined type in a schema. If there is no type declared for the variable, it may take a value of any data type, and in general it is not possible to determine its data type statically.
It is an error to refer to a variable that has not been declared.
Starting with XPath 2.0, variables (known as range variables) may be declared within an
XPath expression, not only using xsl:variable elements in an XSLT stylesheet. The expressions that declare variables
are the for expressions, and quantified expressions (
every). In XPath 3.0, variables can also be declared in a let expression, as well as in the signature of an