<pre class="brush:xquery">
copy $c := doc('/docexample.xml')//node[@id = 1]
modify rename node $c as 'copyOfNode'
return $c
The node element with @id=1 is copied and subsequently assigned a new QName using the rename expression. Note that the transform expression is the only expression which returns an actual XDM instance as a result. You can therefor use it to modify results and especially DOM nodes. This is an issue beginners are often confronted with. More on this topic can be found in the [[Update#Returning Results|XQUF Concepts]] section.
The following example gives another example. The <entry> element (here it is passed to the expression as a DOM node) can also be replaced by a database node (e.g. copy $c := (docdb:open('example')//entry)[1]). In this case, the original database node remains untouched as all updates are performed on a copy.
<pre class="brush:xquery">