奇妙な問題があります。MapForce で XSD から XSD へのマッピングを生成していますが、有効で出力を生成しています。しかし、DataPower の担当者が XSLT を使用すると、XSLT の名前空間プレフィックスが原因で、コードが着信メッセージ内のノードを見つけられないと言われています。
たとえば、XSLT では、select は次のようになります。
<xsl:for-each select="ns0:costOrderHeaderLookupResponse/return/ns1:Order">
着信メッセージでは、名前空間のプレフィックスは次のとおりです。
*snip*
<return>
<ns2:Order BillToID="300850001000" DocumentType="0001"....*snip*>
しかし、MapForce は、名前空間プレフィックスの違いがあっても、エラーなしで問題なく出力を生成しています。
DataPower の人々は、ネームスペース プレフィックスの代わりに MapForce をカスタマイズして、次のようなノードを出力するように要求しています:
/*[local-name()='Order']
MapForce のドキュメントを読み、しばらくグーグルで検索しましたが、このような XSLT 出力をカスタマイズする方法が見つかりません。C/Java/etc では可能ですが、XSLT の生成方法を変更する方法がわかりません。