XQuery-XML-Memory-Operations icon indicating copy to clipboard operation
XQuery-XML-Memory-Operations copied to clipboard

mem-op namespace is output

Open tademianhess opened this issue 7 years ago • 1 comments

It looks like this was partially fixed in 2014 with commit 0b3a72d9dd581123e83e0f6b6c7deea45a89b88b, but I am still getting the mem-op namespace included in output if I call insert-child on the same element used for in mem:copy()

Example shows the problem:

xquery version "1.0-ml";
import module namespace mem = "http://maxdewpoint.blogspot.com/memory-operations/functional" 
   at "memory-operations-functional.xqy";
let $x := <root><original-container><one/><two/><three/><four/><five/></original-container><new-container/></root> 
return mem:execute( mem:insert-child(mem:copy($x), $x, <foo/>) )
===>
<root xmlns:mem-op="http://maxdewpoint.blogspot.com/memory-operations"><original-container><one/><two/><three/><four/><five/></original-container><new-container/><foo/></root>

This example avoids the problem (inserting into original-container and not root):

xquery version "1.0-ml";
import module namespace mem = "http://maxdewpoint.blogspot.com/memory-operations/functional" 
   at "memory-operations-functional.xqy";
let $x := <root><original-container><one/><two/><three/><four/><five/></original-container><new-container/></root> 
let $oc := $x/original-container
return mem:execute( mem:insert-child(mem:copy($x), $oc, <foo/>) )
===>
<root><original-container><one/><two/><three/><four/><five/><foo/></original-container><new-container/></root>

tademianhess avatar Apr 07 '17 19:04 tademianhess

It might help to add

declare copy-namespaces no-preserve, no-inherit; 

in the module

benibela avatar Jul 19 '20 13:07 benibela