Subject: RE: Namespace missing after transform
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 8 Sep 2006 13:34:17 +0100
|
You say "When I copy it ...", but you aren't copying it, you are creating a
new element that happens to have the same local name as the original. Use
<xsl:copy> instead, and all the namespace nodes will be copied
automatically.
Alternatively, use <xsl:copy-of select="namespace::*"/>.
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Hofman, Peter [mailto:peter.hofman@xxxxxxxxxxxxx]
> Sent: 08 September 2006 12:53
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Namespace missing after transform
>
> Hi,
>
> I have difficulties getting all necessary namespaces in the
> output while performing XML to XML transformation.
>
> The source document contains typed elements like this:
>
> <elem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xsi:type="xs:short">30</elem>
>
> When I copy it using the following xsl template the xmlns:xs
> reference is missing.
>
> Template:
>
> <xsl:template match="elem">
> <xsl:element name="elem">
> <xsl:attribute name="xsi:type"
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> <xsl:value-of select="@xsi:type"/>
> </xsl:attribute>
> <xsl:value-of select="."/>
> </xsl:element>
> </xsl:template>
>
> Result:
>
> <elem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:type="xs:short">30</elem>
>
> Any ideas how to fix this?
>
> Additional information:
> XSL version: 1.0
> XSLT processor: not sure, I think it is SAX based. Anyway,
> problem also occurs with msxsl.exe (version 4.0).
>
> Kind regards,
>
> Peter Hofman
>
>
> This e-mail and any attachment is for authorised use by the
> intended recipient(s) only. It may contain proprietary
> material, confidential information and/or be subject to legal
> privilege. It should not be copied, disclosed to, retained or
> used by, any other party. If you are not an intended
> recipient then please promptly delete this e-mail and any
> attachment and all copies and inform the sender. Thank you.
|