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

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

as an
AxisStep
means
child::node()
and therefore selects only children of the context node. If you want to select attributes as well, write
@*|node()
.

If you want to select all elements, you can use the
KindTest
element()
, and if you want to select all attributes, you can use
attribute()
. However, it is more usual in these cases simply to use the
NodeTest
*
. Specifying
*
selects the nodes of the principal node kind for the selected axis, which will always be elements in the case of an axis that can contain elements, and attributes in the case of an axis that can contain attributes. The
KindTests
element()
and
attribute()
are generally used with parameters that specify the schema-defined type of the required elements or attributes, as described in Chapter 11.

Similarly, the
KindTest
document-node()
can be used without parameters to select all document nodes. But you won't see this used much in practice, because the document node can be selected using the simpler syntax
/
, discussed later in this chapter on page 623. With parameters, the
document-node()
KindTest
can be used to test for the document node containing an element of a particular schema-defined type—again, this is described in Chapter 11.

There is no specific
KindTest for
namespace nodes. But all the nodes on the namespace axis are namespace nodes, so the expressions
namespace::*
and
namespace::node()
both work fine, provided that your implementation supports use of the namespace axis.

Other books

The Chilling Spree by LS Sygnet
The Black Palmetto by Paul Carr
Save for Shardae by Raelynn Blue
The Butterfly in Amber by Kate Forsyth
Jaded by Bast, Anya
Blind-Date Baby by Fiona Harper
Crimson Waters by James Axler
Private: #1 Suspect by James Patterson; Maxine Paetro