I have a problem to specify the element namespace in output XML file after XSLT transformation. Here is my testing stylesheet file:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet
xmlns:env="test:envelope"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.0">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<xsl:template match="/">
<env:envelope xsi:schemaLocation="test:envelope envelope.xsd">
<env:Id>Test ID</env:Id>
<env:CreDt>2007-08-01</env:CreDt>
<env:Msg.01 xmlns="test:Msg:01">
<xsl:call-template name="Msg01-Tmpl" />
</env:Msg.01>
<env:Msg.02 xmlns="test:Msg:02">
<xsl:call-template name="Msg02-Tmpl" />
</env:Msg.02>
</env:envelope>
</xsl:template>
<xsl:template name="Msg01-Tmpl">
<Name>Test Msg 01 Name</Name>
</xsl:template>
<xsl:template name="Msg02-Tmpl">
<Nm>Test Msg 02 Nm</Nm>
</xsl:template>
</xsl:stylesheet>
The output is:
<env:envelope xmlns:env="test:envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="test:envelope envelope.xsd">
<env:Id>Test ID</env:Id>
<env:CreDt>2007-08-01</env:CreDt>
<env:Msg.01 xmlns="test:Msg:01">
<Name
xmlns="">Test Msg 01 Name</Name>
</env:Msg.01>
<env:Msg.02 xmlns="test:Msg:02">
<Nm
xmlns="">Test Msg 02 Nm</Nm>
</env:Msg.02>
</env:envelope>
I don't know why the highlighted part is generated. Please help!