|
|
fn:namespace-uri-for-prefix(
|
|
$prefix as xs:string?,
|
|
$element as element()
|
| ) as xs:anyURI? |
|
 |
Summary:
Returns the namespace URI of one of the in-scope namespaces for $element,
identified by its namespace prefix.
If $element has an in-scope namespace whose namespace prefix is equal to
$prefix, it returns the namespace URI of that namespace. If $prefix is the
zero-length string or the empty sequence, it returns the namespace URI of
the default (unnamed) namespace. Otherwise, it returns the empty sequence.
Prefixes are equal only if their Unicode code points match exactly.
|
Parameters:
$prefix
:
A namespace prefix to look up.
|
$element
:
An element node providing namespace context.
|
|
Example:
xquery version "0.9-ml"
declare namespace ex="http://www.example.com/example"
let $x := <ex:hello>1</ex:hello>
return
fn:namespace-uri-for-prefix("ex", $x)
=> the namespace URI corresponding to
"http://www.example.com/example".
|
|
|
|
fn:QName(
|
|
$paramURI as xs:string?,
|
|
$paramQName as xs:string
|
| ) as xs:QName |
|
 |
Summary:
Returns an xs:QName with the namespace URI given in $paramURI.
If $paramURI is the zero-length string or the empty sequence, it
represents "no namespace"; in this case, if the value of $paramQName
contains a colon (:), an error is raised [err:FOCA0002].
The prefix (or absence of a prefix) in $paramQName is retained in
the returned xs:QName value. The local name in the result is taken
from the local part of $paramQName.
|
Parameters:
$paramURI
:
A namespace URI, as a string.
|
$paramQName
:
A lexical qualified name (xs:QName), a string of the form "prefix:localname"
or "localname".
|
|
Usage Notes:
If $paramQName does not have the correct lexical form for
xs:QName an error is raised [err:FOCA0002].
Note that unlike xs:QName this function does not require an
xs:string literal as the argument.
|
Example:
fn:QName("http://www.example.com/example", "person")
=> an xs:QName with namespace URI =
"http://www.example.com/example",
local name = "person", and
prefix = "".
fn:QName("http://www.example.com/example", "ht:person")
=> an xs:QName with namespace URI =
"http://www.example.com/example",
local name = "person",
and prefix = "ht".
|
|
|
|
fn:resolve-QName(
|
|
$qname as xs:string?,
|
|
$element as element()
|
| ) as xs:QName? |
|
 |
Summary:
Returns an xs:QName value (that is, an expanded QName)
by taking an xs:string that has the lexical form of an
xs:QName (a string in the form "prefix:local-name" or
"local-name") and resolving it using the in-scope namespaces for a
given element.
|
Parameters:
$qname
:
A string of the form "prefix:local-name".
|
$element
:
An element providing the in-scope namespaces to use to resolve the
qualified name.
|
|
Usage Notes:
Sometimes the requirement is to construct an xs:QName
without using the default namespace. This can be achieved by writing:
if ( fn:contains($qname, ":") )
then ( fn:resolve-QName($qname, $element) )
else ( fn:QName("", $qname) )
If the requirement is to construct an xs:QName using the
namespaces in the static context, then the xs:QName
constructor should be used.
If $qname does not have the correct lexical form for xs:QName
an error is raised [err:FOCA0002].
If $qname is the empty sequence, returns the empty sequence.
More specifically, the function searches the namespace bindings of $element for
a binding whose name matches the prefix of $qname, or the zero-length string
if it has no prefix, and constructs an expanded QName whose local name is
taken from the supplied $qname, and whose namespace URI is taken from the
string value of the namespace binding.
If the $qname has a prefix and if there is no namespace binding for $element
that matches this prefix, then an error is raised [err:FONS0004].
If the $qname has no prefix, and there is no namespace binding for $element
corresponding to the default (unnamed) namespace, then the resulting
expanded QName has no namespace part.
The prefix (or absence of a prefix) in the supplied $qname argument is retained
in the returned expanded QName, as discussed in Section 2.1 Terminology[DM].
|
Example:
Assume that the element bound to $element has a single
namespace binding bound to the prefix "eg".
fn:resolve-QName("hello", $element)
=> a QName with local name "hello"
that is in no namespace.
fn:resolve-QName("eg:myFunc", $element)
=> an xs:QName whose namespace URI is specified
by the namespace binding corresponding to the
prefix "eg" and whose local name is "myFunc".
|
|
|