XSLT 2.0 and XPath 2.0 Programmer's Reference, 4th Edition (301 page)

BOOK: XSLT 2.0 and XPath 2.0 Programmer's Reference, 4th Edition
5.78Mb size Format: txt, pdf, ePub

It's relatively unusual to see variables whose name includes a namespace prefix. It can be useful, though, if you want to write a general-purpose reusable library module in XSLT or XQuery; you can then define global variables to hold constants visible to users of the library, and putting these in a specific namespace will help to ensure that there are no naming conflicts. In fact, XQuery requires that global variables exported from a module are declared in the namespace associated with that module.

Examples

$x
$lowest-common-denominator
$ALPHA
$my-ns-prefix:param1
$ Π
$ (: you can have a comment here :) x

Parenthesized Expressions

A
ParenthesizedExpr
either consists of an expression enclosed in parentheses, or it consists of an empty pair of parentheses, used to represent the empty sequence.

Expression
Syntax
ParenthesizedExpr
(
Expr?
)

When the contained
Expr
is present, parentheses have the same effect in XPath as in most other languages; they change the order of evaluation, so that the enclosed expression is evaluated first, regardless of the normal operator precedence.

Parentheses are sometimes needed around an expression that uses the
,
operator (which denotes list concatenation), to avoid the
,
being interpreted as a separator between the arguments in a function call or the clauses of a
for
expression. For example, to find the maximum of two numbers
$i
and
$j
, you need to write
max(($i, $j))
, to make it clear that the function is being called with one argument (a sequence) and not with two. The
,
operator is described in detail in Chapter 10. Because
,
has the lowest precedence of any operator, it is generally necessary to use parentheses with it. However, if it is used at the top level of an XPath expression, the parentheses are not needed. For example, one can write in XSLT:

Other books

The Death Row Complex by Kristen Elise
Silver by K.A. Linde
Rich Promise by Ashe Barker
Hidden Witness by Nick Oldham
Guarding Me by Slayer, Megan
My Lord Vampire by Alexandra Ivy
Killer Colada: a Danger Cove Cocktail Mystery by Hodge, Sibel, Ashby, Elizabeth
Unexpected Family by Molly O'Keefe
One Endless Hour by Dan J. Marlowe