This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]