Инструкция xsl:copy-of
всегда делает точную копию;Вы не можете использовать его для копирования с изменениями.Для этого используйте шаблон удостоверения, чтобы точно скопировать то, что вы хотите скопировать, и другой шаблон для того, что вы хотите изменить.Таким образом:
<xsl:template match="*">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<xsl:template match="text()">
<xsl:value-of select="upper-case(.)"/>
</xsl:template>