xquery version "3.1"; let $root := element {fn:node-name($e)} {$e/@*, 2 * fn:data($e)} for $node in root($root) return element root { root ($node)/text(), attribute root {'root'}, element not-root{attribute type{"root"}, root($root)} }