Subject: [xsl] Re: problem - generating XML schema via XSLT From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx> Date: Fri, 3 Oct 2003 22:35:37 +0200 |
> > 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. This example works with Saxon, MSXML, JD, .Net xsltTransform (Framework 1.1). It also works with Xalan C 1.5 (but with XalanJ 2.1.4 the namespace node is not copied): <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:extc="http://exslt.org/common" exclude-result-prefixes="extc" > <xsl:output omit-xml-declaration="yes"/> <xsl:template match="library"> <xsl:variable name="dummy"> <xsl:element name="e" namespace="{@prefix}"/> </xsl:variable> <extc:xxx> <xsl:copy-of select="extc:node-set($dummy)/*/namespace::*[. = current()/@prefix]"/> </extc:xxx> </xsl:template> </xsl:stylesheet> When the above transformation is applied against this source.xml: <library prefix="test"> <element name="dosome"/> </library> the result is: <extc:xxx xmlns:extc="http://exslt.org/common" xmlns="test"/> ===== Cheers, Dimitre Novatchev. http://fxsl.sourceforge.net/ -- the home of FXSL XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] problem - generating XML , Michael Kay | Thread | Re: [xsl] problem - generating XML , Christian Sell |
Re: [xsl] problem - generating XML , Christian Sell | Date | [xsl] Re: msxsl:script and selectSi, Dimitre Novatchev |
Month |