Dear BaseX team,

I have a problem with a subtle bug which has been introduced with version 7.8, 
it seems.

In 7.7, the
   declare copy-namespaces ..., inherit;

was implemented correctly - see below for example code and result.

But from 7.8 on, copy namespaces mode "inherit" is ignored.

I would greatly appreciate if you could restore the correct behaviour, as I 
have code running which must be compatible with XQuery 1.0 and which needs to 
"add" in-scope namespaces dynamically. (And in XQuery 1.0 I see no alternative 
to the pattern shown below.)


Kind regards -
Hans-Juergen

Example code:
================================
declare copy-namespaces preserve, inherit;

declare function local:addNamespace($elem, $prefix, $uri) {
let $qname := QName($uri, concat($prefix, ':dummy'))
return
   <A>{
      attribute {$qname} {""},
      $elem
   }</A>/*
};

let $elem := <foo/>
return
   local:addNamespace($elem, 'z', 'http:example.com')

================================

=>
BaseX 7.7:

<foo xmlns:z="http:example.com"/>

BaseX >= 7.8:
<foo/>

Reply via email to