This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Identity transformation (without using xsl:copy)
- From: "Michael Kay" <michael dot h dot kay at ntlworld dot com>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Mon, 18 Mar 2002 17:49:32 -0000
- Subject: RE: [xsl] Identity transformation (without using xsl:copy)
- Reply-to: xsl-list at lists dot mulberrytech dot com
In XSLT 1.0 the only way to create a namespace node in the result document
is to copy it from the source document or stylesheet. So you'll have to use
<xsl:copy>. Why don't you want to?
Michael Kay
Software AG
home: Michael.H.Kay@ntlworld.com
work: Michael.Kay@softwareag.com
> -----Original Message-----
> From: owner-xsl-list@lists.mulberrytech.com
> [mailto:owner-xsl-list@lists.mulberrytech.com]On Behalf Of Roger L.
> Costello
> Sent: 18 March 2002 17:24
> To: xsl-list@lists.mulberrytech.com; costello@mitre.org
> Subject: [xsl] Identity transformation (without using xsl:copy)
>
>
> Does anyone have a stylesheet which does an identity transformation
> without using xsl:copy? The below stylesheet works fine provided the
> instance document does not use namespaces, e.g., it does not copy over
> the namespace declarations, and it results in an error being generated
> when an element is encountered that is explicitly
> namespace-qualified.
> Could someone show me how to enhance this to deal properly with
> namespaces? Thanks! /Roger
>
> identity.xsl
>
> <?xml version="1.0"?>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> version="1.0">
>
> <xsl:output method="xml"/>
>
> <xsl:template match="*">
> <xsl:element name="{name(.)}">
> <xsl:for-each select="@*">
> <xsl:attribute name="{name(.)}">
> <xsl:value-of select="."/>
> </xsl:attribute>
> </xsl:for-each>
> <xsl:apply-templates/>
> </xsl:element>
> </xsl:template>
>
> </xsl:stylesheet>
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list