XML である名前空間から別の名前空間に移動していますが、型指定された要素の xsi:type 属性に関する問題に直面しています。ある名前空間を持つ要素を別の名前空間に簡単に移動する次のテンプレートを使用しています。
<xsl:template match="ent:*" >
<xsl:element name="ent:{local-name()}"
namespace="http://ns3">
<xsl:copy-of select="@*" />
<xsl:apply-templates />
</xsl:element>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
しかし、特定の名前空間に属する属性値を xsi:type 属性として更新することはできません。
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ser:getAsByIdResponse xmlns:ser="http://osde.com.ar/services">
<return xmlns:xsi=".." xmlns:ns3New="http://ns3" xmlns:ns1New="http://ns2" xsi:type="nsold:aType"/>
</ser:getAsByIdResponse>
</soap:Body/>
</soap:Envelope>
上記の例では、「nsold:atype」を、新しい名前空間を使用する「ns3New:atype」のようなものに変更できません。この種の値を調整する方法はありますか?