In XSLT 1.0 the usual circumvention is to create an RTF containing the
required namespace node, and then copy it (which requires xx:node-set):
<xsl:variable name="dummy">
<xsl:element name="{$prefix}:xxx" namespace="{$uri}"/>
</xsl:variable>
...
<xsl:copy-of
select="xx:node-set($dummy)/*/namespace::*[name()=$prefix]"/>
Copying of namespace nodes is defined by an erratum to XSLT 1.0.
In case the prefix and the namespace-uri are known in advance, the namespace
declaration can be put within the xsl:stylesheet element.
This will avoid the need to create an RTF -- just use:
<xsl:copy-of select="document('')/*/namespace::*[name()=$prefix]"/>
=====
Cheers,
Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list