次のXMLがあり、XMLドキュメントにどちらの形式でも表示できます。
<Message xsi:schemaLocation="http://www.location.com StructureFile.xsd" xmlns=http://www.thenamespace.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
また
<Message xmlns="http://www.thenamespace.com">
出力は次のようにする必要があります。
<Message xmlns="http://www.theNEWnamespace.com">
私は現在、2つのxmlの可能性の短いバージョンを処理するためにこのテンプレートを持っています:
<xsl:template match="*">
<xsl:element name="{name()}" namespace="http://www.theNEWnamespace.com">
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
ただし、これにより、xmlのSchemeLocationまたはxmlns:xsi部分が存在する場合、それらは削除されません。
両方の可能性を処理するために、上記をどのように適応させるのでしょうか。
乾杯、
編集:XML構造:
<?xml version="1.0" encoding="utf-8"?>
<Message xsi:schemaLocation="http://www.location.com StructureFile.xsd" xmlns="http://www.thenamespace.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Header>
<Info></Info>
</Header>
</Message>