|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: exclude-result-prefixes not removing the xmlns at
May be I wasn't clear. I do not want to remove the namespace prefix
from all elements and attributes. I just want to remove
xmlns:wicket="http://wicket..." from the root tag
thanks
Juergen
On 1/3/06, andrew welch <andrew.j.welch@xxxxxxxxx> wrote:
> On 1/3/06, Juergen Donnerstag <juergen.donnerstag@xxxxxxxxx> wrote:
> > I need to remove the xmlns attribute from the root tag of the output.
> > From various docs I understood that the xsl processor inserts it
> > automatically and by means of exclude-result-prefixes it can be
> > removed. In my case however the
> > xmlns:wicket="http://wicket.sourceforge.net" attribute is already part
> > of the root tag of the input and it seems to me
> > exclude-result-prefixes="wicket" does not remove it. The output
> > actually is the same; with and without exclude-result
> > prefixes="wicket".
> >
> > The xsl sheet I'm using:
> > <?xml version="1.0" encoding="ISO-8859-1"?>
> >
> > <xsl:stylesheet version="1.0"
> > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> > xmlns:wicket="http://wicket.sourceforge.net"
> > exclude-result-prefixes="wicket">
> >
> > <xsl:output method="xml" omit-xml-declaration="yes"/>
> >
> > <!-- Just copy everything. This is basically the same as xsl:copy-of -->
> > <xsl:template match="/ | @* | node()">
> > <xsl:copy> <xsl:apply-templates select="@* | node()"/> </xsl:copy>
> > </xsl:template>
> >
> > </xsl:stylesheet>
> >
> > and the input:
> >
> > <span xmlns:wicket="http://wicket.sourceforge.net"
> > wicket:id="test4"><span wicket:id="myBorder2"
> > testAttr="myValue"><wicket:border>before body -
> > <wicket:body>border</wicket:body> - after
> > body</wicket:border></span></span>
> >
> > Any idea on how to remove xmlns:wicket from the output? Your help is
> > very much appreciated. Thanks
>
> In 2.0 you can use copy-namespaces="no"
>
> In 1.0, the namespace and element name are fixed together, the only
> way to 'remove' it is to create a new element in no namespace, so
> modify your identity transform to be:
>
> <xsl:template match="*">
> <xsl:element name="{local-name()}">
> <xsl:apply-templates select="@*|*"/>
> </xsl:element>
> </xsl:template>
>
> <xsl:template match="@*">
> <xsl:attribute name="{local-name()}">
> <xsl:value-of select="."/>
> </xsl:attribute>
> </xsl:template>
>
> cheers
> andrew
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








