RE: [xsl] Global namespace prefixes (Corrected Examples)

Subject: RE: [xsl] Global namespace prefixes (Corrected Examples)
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 14 Nov 2008 00:06:47 -0000
> >> The crux of my question is this:
> >>
> >> Is there a way to get namespace prefix declarations into the root 
> >> element of the result tree through the XSLT API?
> >
> > With XSLT 2.0, use the xsl:namespace instruction
> >
> 
> I'm stuck with XSLT 1.0

You have my deepest sympathy.
> 
> 
> > With XSLT 1.0, you can use xsl:copy-of to copy a namespace 
> node from 
> > the source document to the result document.
> 
> But that only works if the namespace exists in the source document.
> 

There's a workaround here if your processor has the xx:node-set() extension:
you can create an element in the required namespace, and then copy its
namespace nodes:

<xsl:variable name="dummy">
  <xsl:element name="{$prefix}:dummy" namespace="{$uri}"/>
</xsl:variable>
<xsl:copy-of select="xx:node-set($dummy)//namespace::*"/>

Michael Kay
http://www.saxonica.com/

Current Thread