Home >
Online Product Documentation >
Table of Contents >
Obtaining Namespace Information
Obtaining Namespace Information
You can call functions to obtain namespace information. This topic discusses
In addition to a discussion of the functions you call, this section covers the following:
Obtaining the Namespace URI
To obtain the URI for a namespace, call the
namespace-uri()
function. The format is
The
namespace-uri()
function returns the namespace URI of the expanded name of the node in the node-set argument that is first in document order. If the node-set argument is empty, the first node has no expanded name, or the namespace URI of the expanded name is
null
, the XPath processor returns an empty string. If you omit the argument, it defaults to a node set with the context node as its only member.
Call the
namespace-uri()
function on element or attribute nodes. For example, the query
returns the string
For any other type of node, the XPath processor always returns an empty string.
Obtaining the Local Name
To obtain the local portion of a node name, excluding the prefix, call the
local-name()
function. The format is
The
local-name()
function returns the local part of the expanded name of the node in the node-set argument that is first in document order. If the node-set argument is empty or the first node has no expanded name, the function returns an empty string. If you omit the argument, it defaults to a node set with the context node as its only member. For example, the following query returns
my:book
nodes:
Obtaining the Expanded Name
To obtain the expanded name of a node, call the
name()
function. The expanded name is the namespace prefix, if any, plus the local name. The format is
The
name()
function returns a string that represents the expanded name of the node in the node-set argument that is first in document order. The returned string represents the expanded name with respect to the namespace declarations in effect on the node whose expanded name is being represented.
Typically, this is the name in the XML source. This need not be the case if there are namespace declarations in effect on the node that associate multiple prefixes with the same namespace.
If the node-set argument is empty or the first node has no expanded name, the XPath processor returns an empty string. If you omit the argument, it defaults to a node set with the context node as its only member.
Except for element and attribute nodes, the string that the
name()
function returns is the same as the string the
local-name()
function returns.
Specifying Wildcards with Namespaces
Element and attribute names that include colons (
:
) can include wildcards; that is, asterisks (
*
). For example, queries can include
*:*
,
*:a
, or
a:*
.
Examples of Namespaces in Queries
The following example finds all
book
elements in the current context. This query does not return any
book
elements that are not in the default namespace. For example, it does not return
my:book
elements.
The next query finds all
book
elements with the prefix
my
. This query does not return unqualified
book
elements; that is,
book
elements in the default namespace.
The following query finds all
book
elements with a
my
prefix that have an
author
subelement:
The following query finds all
book
elements with a
my
prefix that have an
author
subelement with a
my
prefix:
The next example returns the
style
attribute with a
my
prefix for
book
elements in the current context: