Xalan-J 2.7.1 fails to copy the namespace nodes from an RTF. Maybe this is a known issue. If so, my apologies.
Saxon 6.5 and 9.1 as well as LibXSLT 1.1.24 produce namespace declarations as expected. Michael Ludwig Input: ------ <Tomate/> XSL: ---- <xsl:stylesheet version="1.0" xmlns:exsl="http://exslt.org/common" extension-element-prefixes="exsl" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output indent="yes"/> <xsl:variable name="ns-rtf"> <u:Urmel xmlns:u="http://urmel.de"/> <g:Gurke xmlns:g="http://gurke.de"/> </xsl:variable> <xsl:template match="/*"> <xsl:copy> <xsl:copy-of select="exsl:node-set( $ns-rtf)//*/namespace::node()"/> <xsl:copy-of select="node()"/> <xsl:element name="u:Test" namespace="http://urmel.de"/> <xsl:element name="g:Test" namespace="http://gurke.de"/> </xsl:copy> </xsl:template> </xsl:stylesheet> Expected output: ---------------- <?xml version="1.0"?> <Tomate xmlns:u="http://urmel.de" xmlns:g="http://gurke.de"> <u:Test/> <g:Test/> </Tomate> Xalan-J 2.7.1 output: --------------------- <?xml version="1.0" encoding="UTF-8"?><Tomate> <u:Test xmlns:u="http://urmel.de"/> <g:Test xmlns:g="http://gurke.de"/> </Tomate>