Expressions are used in XSL Transformations (XSLT) for the following purposes.
Selecting nodes for processing.
Specifying conditions for different ways of processing a node.
Generating text to be inserted in the result tree.
Expressions occur as the value of certain attributes on XSLT-defined elements and within curly braces in attribute value templates.
Expression evaluation occurs with respect to a context. In XSLT, an outermost expression (that is, an expression that is not part of another expression) gets its context as follows.
The context node comes from the current node.
The context position comes from the position of the current node in the current node list; the first position is 1.
The context size comes from the size of the current node list.
The variable bindings are the bindings in scope on the element that has the attribute in which the expression occurs.
The set of namespace declarations are those in scope on the element that has the attribute in which the expression occurs.
The function library consists of those found at XPath Functions and any functions defined by a binding mechanism such as the addObject method or the msxsl:script Element. Calling a function with no corresponding binding is an error.