xsl-list
[Top] [All Lists]

Re: [xsl] Avoid xmlns (namespace)

2009-01-24 05:51:25
2009/1/24 J. S. Rawat <jrawat(_at_)aptaracorp(_dot_)com>:
Hi List,
I want to avoid xmlns="http://www.w3.org/1999/xhtml"; as an attribute of
element "item" (<itemref xmlns="http://www.w3.org/1999/xhtml"; idref="ch1"
linear="yes"/>) from the output xml even after my exclusion entry in the top
(#default). If I remove xmlns from xsl:stylesheet, I am getting xmlns="".

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
xmlns="http://www.w3.org/1999/xhtml";
             exclude-result-prefixes="#default xsl" version="2.0">

<xsl:variable name="metafile" select="document('meta.txt')"/>

<xsl:for-each select="$metafile/items/file">
<xsl:apply-templates select="." mode="manifest"/>
 </xsl:for-each>

<xsl:template match="file" mode="manifest">
 <item id="{title/@id}" href="{(_at_)id}" media-type="application/xhtml+xml"/>
</xsl:template>

Any tip in this direction will be highly appriciable!!!

When you use a literal result element to add an element to the result
(your <item> element) all in-scope namespaces are added to the result
(as its not possible to determine at that point if they are actually
needed)... you can strip the ones that aren't required at that point
use exclude-result-prefixes.

However, in your case the <item> element is in the xhtml namespace, so
you can't strip it using exclude-result-prefixes.

Instead you either need to either not change the default namespace, or
add xmlns="" to the <item> element.

It's unusual though, to want to exclude the default namespace... (I'm
not sure it's even allowed)



-- 
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>