XSLTを使用してXMLの一部を入力XMLに追加しようとしています。しかし、出力は期待どおりに来ていません。ヘルプを削除します。
私の入力XML:
<input xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="nbA2.8.90.xsd">
<nodeA id="test">
<inodeAA> Sample </inodeAA>
<inodeAB> Samples </inodeAB>
</nodeA>
<nodeB id="test">
<inodeBA> Sample </inodeBA>
<inodeBB> Samples </inodeBB>
</nodeB>
</input>
以下は、XSLTにパラメーターとして渡した別のXML部分です。この部分は、入力XMLに追加されます。
<ns3:output xmlns:ns3="http://mysample.org">
<ns3:reply id="rep">
<ns3:zip>55555</ns3:zip>
<ns3:place>SampleLoc</ns3:place>
</ns3:reply>
</ns3:output>
以下は私の期待される出力です:
<input xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="nbA2.8.90.xsd">
<nodeA id="test">
<inodeAA> Sample </inodeAA>
<inodeAB> Samples </inodeAB>
</nodeA>
<nodeB id="test">
<inodeBA> Sample </inodeBA>
<inodeBB> Samples </inodeBB>
</nodeB>
<ns3:output xmlns:ns3="http://mysample.org">
<ns3:reply id="rep">
<ns3:zip>55555</ns3:zip>
<ns3:place>SampleLoc</ns3:place>
</ns3:reply>
</ns3:output>
</input>
以下は、このタスクに使用しているXSLです。
以下のXSLTでは、パラメーター「outParam」は、入力に追加しようとしているxml部分を保持しています。
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns3="http://mysample.org"
exclude-result-prefixes="soap xsl">
<xsl:output omit-xml-declaration="yes" indent="yes" />
<xsl:param name="outParam"></xsl:param>
<xsl:template match="input">
<input>
<xsl:copy-of copy-namespaces="no" select="./@*" />
<xsl:copy-of copy-namespaces="no" select="node() | @*" />
</input>
<xsl:copy >
<xsl:value-of select="$outParam" disable-output-escaping="yes" ></xsl:value-of>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
以下は私が得ている出力です。これは私の期待する出力と一致していません。
<input xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ns3="http://mysample.org"
xsi:noNamespaceSchemaLocation="nbA2.8.90.xsd" >
<nodeA id="test">
<inodeAA> Sample </inodeAA>
<inodeAB> Samples </inodeAB>
</nodeA>
<nodeB id="test">
<inodeBA> Sample </inodeBA>
<inodeBB> Samples </inodeBB>
</nodeB>
</input>
<input xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns3:output xmlns:ns3="http://mysample.org">
<ns3:reply id="rep">
<ns3:zip>55555</ns3:zip>
<ns3:place>SampleLoc</ns3:place>
</ns3:reply>
</ns3:output>
</input>
助けてください。私は多くの組み合わせを試しましたが、運がありません。:(
注:この変換は、提供されたXSLTに基づいてペイロードXMLを変換するMuleXSLTTransformerを使用して実行しています。