Невозможно воспроизвести описанную проблему .
Я выполнил следующее преобразование с 10 различными процессорами xslt (Msxml3, Msxml4, Msxml6, .NET XslTransform,.NET XslCompiledTransform, AltovaXml (для XSLT 1.01.0), Saxon6.5.4, Saxon 9.1.07, Saxon 9.1.07.NET и XML-SPY-XSLT2.0), и они все дают одинаковый правильный результат .
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:user="http://some-internal-thing/user">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"/>
<xsl:template match="/*">
<xsl:copy>
<xsl:attribute name="account"><xsl:value-of select="@account"/></xsl:attribute>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
при выполнении этого преобразования в следующем XML-документе :
<?xml version="1.0" encoding="UTF-8"?>
<foo account="0x0406" other-stuff="blah" something-name="blah again"/>
ожидаемый, правильный результат будет получен :
<foo account="0x0406" />
В случае, если ваш XSLT-процессор не является одним из них, и вы действительно получили неправильный результат, это ошибка, о которой следует сообщить поставщикам.