[xquery-talk] Re: zero-length string namespaces URI

Pierrick Brihaye pierrick.brihaye at free.fr
Wed Sep 28 19:33:19 PDT 2005


Pierrick Brihaye a écrit :

> Another question on zero-length string namespaces URI. Given :
> 
>> If the URILiteral part of a namespace declaration is a zero-length 
>> string, any existing namespace binding for the given prefix is removed 
>> from the statically known namespaces. This feature provides a way to 
>> remove predeclared namespace prefixes such as local.
> 
> 
> What could be a pratical use case ? Should :
> 
> declare namespace fn="";
> fn:current-time()
> 
> raise an error ?

Testing this with Saxon :

declare namespace local="";
declare function local:depth($e as node()) as xs:integer
{
    (: A node with no children has depth 1 :)
    (: Otherwise, add 1 to max depth of children :)
    if (fn:empty($e/*)) then 1
    else fn:max(for $c in $e/* return local:depth($c)) + 1
};

local:depth(<a><b><c/></b></a>)

returns :

XPST0003: XQuery syntax error in #declare namespace local="";#:
A namespace URI cannot be empty

Cheers,

p.b.



More information about the talk mailing list