[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

Subject: Re: exclude-result-prefixes not removing the xmlns attribute in the root element
From: andrew welch <andrew.j.welch@xxxxxxxxx>
Date: Tue, 3 Jan 2006 11:01:29 +0000
remove xmlns .net
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

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.