fn:namespace-uri-for-prefix
Returns the namespace URI of one of the in-scope namespaces for $element
,
identified by its namespace prefix.
Signature
fn:namespace-uri-for-prefix(
$prefix as xs:string?,
$element as element()
) as xs:anyURI?
Properties
This function is deterministic, context-independent, and focus-independent.
Rules
If $element
has an in-scope namespace whose namespace prefix is equal to
$prefix
, the function returns the namespace URI of that namespace.
If $element
has no in-scope namespace whose namespace prefix is equal to
$prefix
, the function returns the empty sequence.
If $prefix
is the zero-length string or the empty sequence, then if
$element
has a default namespace (that is, a namespace node with no
name), the function returns the namespace URI of the default namespace. If
$element
has no default namespace, the function returns the empty
sequence.
Prefixes are equal only if their Unicode codepoints match exactly.
Examples
let $e :=
<z:a xmlns="http://example.org/one" xmlns:z="http://example.org/two">
<b xmlns=""/>
</z:a>
The expression fn:namespace-uri-for-prefix("z", $e)
returns "http://example.org/two"
.
The expression fn:namespace-uri-for-prefix("", $e)
returns "http://example.org/one"
.
The expression fn:namespace-uri-for-prefix((), $e)
returns "http://example.org/one"
.
The expression fn:namespace-uri-for-prefix("xml", $e)
returns "http://www.w3.org/XML/1998/namespace"
.
The expression fn:namespace-uri-for-prefix("xml", $e)
returns "http://www.w3.org/XML/1998/namespace"
.