[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: Removing namespace attributes

Subject: RE: Removing namespace attributes
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Thu, 22 Sep 2005 12:59:52 +0100
remove namespaces using xslt
exclude-result-prefixes only affects the namespaces created using literal
result elements. It has no effect on namespaces copied from the source
document using xsl:copy or xsl:copy-of.

XSLT 2.0 provides a copy-namespaces=yes|no attribute on these instructions.
In 1.0 you have to switch from using xsl:copy to using an modified-identity
template with xsl:element name="{local-name()}".

Rather than this:

<xsl:template match="@* | node()">
>      <xsl:if test="name()!='xlink:href'">
>        <xsl:copy>
>          <xsl:apply-templates select="@* | node()" />
>        </xsl:copy>
>      </xsl:if>
>    </xsl:template>

it's much cleaner to do this:

<xsl:template match="@* | node()">
        <xsl:copy>
          <xsl:apply-templates select="@* | node()" />
        </xsl:copy>
</xsl:template>

<xsl:template match="@xlink:href"/>

Apart from anything else, it doesn't depend on the document author's choice
of namespace prefix.


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

> -----Original Message-----
> From: Hank Ratzesberger [mailto:hankr@xxxxxxxxxxxxxxxx] 
> Sent: 22 September 2005 01:31
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject:  Removing namespace attributes
> 
> I want to strip all namespaces and one 
> attribute (declared in the namespace).
> 
> In my stylesheet, I declare the namespaces
> and then list them in the exclude-result-prefixes.
> But it doesn't work.  The namespaces remain.
> 
> Thank you for your ideas,
> Hank
> 
> Hank Ratzesberger
> NEES Programmer
> Institute for Crustal Studies
> University of California, Santa Barbara
> 
> 
> <xsl:stylesheet version="1.0"
>   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>   xmlns:flextps="http://flextps.org/schema/"
>   xmlns:xlink="http://www.w3.org/1999/xlink"
>   exclude-result-prefixes="flextps">
>   <xsl:template match="@* | node()">
>      <xsl:if test="name()!='xlink:href'">
>        <xsl:copy>
>          <xsl:apply-templates select="@* | node()" />
>        </xsl:copy>
>      </xsl:if>
>    </xsl:template>
> </xsl:stylesheet>

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.