Чтобы изменить префиксы пространства имен без изменения URI пространства имен, вы можете использовать такой код в XSLT 2.0:
<xsl:template match="soapenv:*" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<xsl:element name="S:{local-name()}" namespace="namespace-uri()">
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
Определить одно такое правило шаблона для каждого пространства имен.
В версии 1.0 на месте soapenv:*
использовать *[namespace-uri()='http://schemas.xmlsoap.org/soap/envelope/']