[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] problem - generating XML schema via XSLT


Subject: Re: [xsl] problem - generating XML schema via XSLT
From: Christian Sell <christian.sell@xxxxxxxxxxxxx>
Date: Fri, 03 Oct 2003 20:17:55 +0200

Michael Kay wrote:
Namespace declarations in the source document are translated by the XML
parser into namespace nodes, they are not treated by XSLT as attribute
nodes. Therefore, a namespace declaration can never contain an attribute
value template (because it isn't an attribute).

You need to produce in the result tree a namespace node whose name
(=prefix) is "" and whose string value (=namespace URI) is "test". (It's
very confusing that you chose to use the name "prefix" to refer to the
namespace URI!

yes. In my case, they happen to be equivalent - but the wording was wrong.


In XSLT 2.0 you can do this with

<xsl:namespace name=""><xsl:value-of select="@prefix"/></xsl:namespace>

In 1.0 there is no direct way of doing this. The nearest equivalent is:

<xsl:variable name="dummy">
  <xsl:element name="e" namespace="{@prefix}"/>
</xsl:variable>

<xsl:copy select="xx:node-set($dummy)/*/namespace::*[.=@prefix]"/>

This creates a dummy element in the required namespace, and then copies
the required namespace node to the result tree.

amazingly, this does not yield any change in the output document. I am using Xalan (where the function is named nodeset as opposed to node-set). The new namespace decl does not appear.


thanks,
christian


XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list




Current Thread
Keywords