Вот что у меня есть:
<xsl:template match="*">
<xsl:element name="{local-name()}" namespace="A" >
<xsl:apply-templates />
</xsl:element>
</xsl:template>
<xsl:template match="a-special-element">
<B:a-special-element xmlns:B="B">
<xsl:apply-templates />
</B:a-special-element>
</xsl:template>
Это почти работает; проблема в том, что это не копирование атрибутов. Из того, что я прочитал таким образом, xsl: element не имеет возможности скопировать все атрибуты из элемента «как есть» (наборы атрибутов использования, кажется, не обрезают его).