我花了三天时间研究和探索在输入节点访问 XML 消息的根元素的不同方法,但无法从此操作中获得非空结果:
DECLARE RootElement CHARACTER FIELDNAME(InputRoot.XMLNSC.*[<]);
RootElement 始终为空,但是当我这样做时(如下),消息被正确复制。
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 开发的信息。即使有红皮书(这里),我也无法理解如何让事情发挥作用。我将不胜感激。谢谢。