Subject: RE: exclude-result-prefixes
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 5 Nov 2004 00:17:54 -0000
|
exclude-result-prefixes only affects the evaluation of literal result
elements.
xsl:copy-of makes an exact copy of a node, together with all its children,
attributes, and namespaces. It is not affected by exclude-result-prefixes.
XSLT 2.0 provides an option for xsl:copy-of to exclude unused namespaces.
If you are building your stylesheet dynamically, why don't you build one
that is less tortuous?
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Kevin Collins [mailto:kevin.collins@xxxxxxx]
> Sent: 04 November 2004 21:28
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: exclude-result-prefixes
>
> In the following stylesheet I use the document function to access the
> current stylesheet in order copy the contents of a variable.
> The reason
> I do this is because the stylesheet is built dynamically and the
> variable may not exist.
>
> The problem is the xsl namespace attached to the <tr> element in the
> output. How do I exclude that?
>
> I tried adding exclude-result-prefixes="xsl" to the <tr>
> element inside
> the variable but it didn't work.
>
> Thanks,
> Kevin Collins
>
>
> XSL:
> <xsl:stylesheet
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> version="1.0">
> <xsl:output method="xml" indent="yes" />
>
> <xsl:template match="/">
> <table>
> <xsl:copy-of
>
> select="document('')/*/xsl:variable[@name='optionalstuff']/*" />
> <tr>
> <td>Common stuff here.</td>
> </tr>
> </table>
> </xsl:template>
>
> <xsl:variable name="optionalstuff">
> <tr>
> <td>Optional stuff here.</td>
> </tr>
> </xsl:variable>
>
> </xsl:stylesheet>
>
> Output:
> <table>
> <tr xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <td>Optional stuff here.</td>
> </tr>
> <tr>
> <td>Common stuff here.</td>
> </tr>
> </table>
|