RE: [xsl] Namespace on output node but not not in source

Subject: RE: [xsl] Namespace on output node but not not in source
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Tue, 18 Oct 2005 08:38:54 +0100
The rules for a literal result element say that all its in-scope namespaces
are copied to the result tree.

However, you should be able to prevent this using exclude-result-prefixes.
If this isn't working, please supply a complete (but small!) stylesheet to
demonstrate the problem so we can see what you are doing wrong.

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

> -----Original Message-----
> From: Antsnio Mota [mailto:amsmota@xxxxxxxxx]
> Sent: 18 October 2005 00:59
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Namespace on output node but not not in source
>
> Hi:
>
> I have a xsl with a namespace declared
>
> <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
> 	version="1.0"
> 	xmlns:xs="http://www.w3.org/2001/XMLSchema";>
>
> so i can make some lookups on a xsd file
>
>  <xsl:variable name="tipo"
> select="$schema/xs:schema/xs:element[@name=$nome]/@type"/>
>
> and that's all i do, i don't copy any node from $schema to
> the output tree.
>
> However, this
>
>         <xsl:template match="/">
>                 <table>
>                         <xsl:apply-templates
> select="(//Menu)[position()=$pos]"/>
>                 </table>
>         </xsl:template>
>
> produces a
>
> <table xmlns:xs="http://www.w3.org/2001/XMLSchema";>
>      <...>
> </table>
>
> and i don't understand why, and i don't want it there.
>
> I add a exclude-result-prefixes="xs" but it seems it makes no
> diference.
>
> Why is this?
>
>
> Thanks.

Current Thread