Re: [xsl] multiple files to single file problem

Subject: Re: [xsl] multiple files to single file problem
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Fri, 26 Dec 2008 20:08:21 -0500
At 2008-12-26 12:28 +0530, Ganesh Babu N wrote:
Is exclude-result prefixes also applicable to attributes?

That depends. When using exclude-result-prefixes=, an *unused* prefix is pruned from literal result elements in the stylesheet tree, but not a prefix that is actually in use. But you aren't using a literal result element, you are using an instruction to create the attribute node.

But the
xlink namespace is populated in the blow example even when we have
used exclude-result-prefixes="xlink" in the <stylesheet>

Here is the example:

<cross-ref refid="aff1">


        <xsl:template match="cross-ref | cross-refs">
                <xsl:element name="xref">
                        <xsl:attribute name="xlink:href">
                                <xsl:value-of select="@refid"/>

output from XSL: <xref xmlns:xlink=""; xlink:href="aff1">

required output:

<xref xlink:href="aff1">

That isn't well-formed unless an ancestral node has already declared the xlink prefix.

How to eliminate namespace prefix in the output?

It cannot be eliminated because the processor determined it was needed because it was not already in the list of available prefixes.

You cannot ask XSLT to create output that is not well-formed unless you use a back door like disable-output-escaping. Without using that, the processor will do everything it can to ensure your output is well-formed.

I hope this helps.

. . . . . . . . . . . Ken

Upcoming XSLT/XSL-FO, UBL and code list hands-on training classes:
:  Sydney, AU 2009-01/02; Brussels, BE 2009-03; Prague, CZ 2009-03
Training tools: Comprehensive interactive XSLT/XPath 1.0/2.0 video
Video sample lesson:
Video course overview:
G. Ken Holman                 mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
Crane Softwrights Ltd.
Male Cancer Awareness Nov'07
Legal business disclaimers:

Current Thread