This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: problem generating dynamic namespace declarations
> PS: copying namespace nodes using <xsl:copy>, as per your previous reply,
> isn't guaranteed to work: the effect is undefined.
so, a version that only explictly copies element and attribute nodes.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
xmlns:saxon="http://icl.com/saxon"
extension-element-prefixes="saxon"
>
<xsl:output method="xml" indent="yes"/>
<xsl:param name="p" select="'foo'"/>
<xsl:param name="n" select="'http://x/y/z'"/>
<xsl:template match="/">
<xsl:variable name="x">
<xxx path="{$p}:that">
<xsl:attribute name="{$p}:x" namespace="{$n}"/>
</xxx>
</xsl:variable>
<xsl:for-each select="saxon:node-set($x)/*">
<xsl:copy>
<xsl:copy-of select="@*[local-name()!='x']"/>
</xsl:copy>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
bash-2.01$ saxon ns3.xsl ns3.xsl
<?xml version="1.0" encoding="utf-8" ?>
<xxx xmlns:foo="http://x/y/z" path="foo:that"/>
as it doesn't use namespace:: this also works with xt (once you change
the extension namespace)
David
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list