Is this the expected behaviour?
No.
Unrelated to your question, but you could simplify
<xsl:template match="row">
<row>
<xsl:for-each select="@*">
<xsl:attribute name="{name()}">
<xsl:value-of select="."/>
</xsl:attribute>
</xsl:for-each>
</row>
</xsl:template>
to
<xsl:template match="row">
<xsl:copy-of select="."/>
</xsl:template>
David
________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list