入力ノードで XML メッセージのルート要素にアクセスするためのさまざまな方法を調査し、調査するために 3 日間を費やしましたが、この操作から null 以外の結果を得ることができませんでした。
DECLARE RootElement CHARACTER FIELDNAME(InputRoot.XMLNSC.*[<]);
RootElement は常に null ですが、(以下) を実行すると、メッセージが適切にコピーされます。
SET OutputRoot = InputRoot;
問題は、着信メッセージに名前空間が宣言されておらず、計算ノードで割り当てようとしているということです。
SET OutputRoot.(XMLNSC.NamespaceDecl)xmlns = orgs_crm;
ここで、orgs_crmは
DECLARE NS_CRM_MDO CONSTANT CHARACTER 'http://example.org/schema_crm';
DECLARE orgs_crm NAMESPACE NS_CRM_MDO;
入力メッセージは次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<Message><MessageId>5348569534564534682</MessageId></Message>
出力は次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<Message xmlns="http://example.org/schema_crm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<MessageId>5348569534564534682</MessageId>
</Message>
残念ながら、IBM の Integration Toolkit の開発に関する情報が十分ではありません。RedBook ( here ) を使用しても、どうすれば機能するのか理解できませんでした。どんな助けにも感謝します。ありがとう。