为什么 IIB 映射节点中的条件会使响应无效 XML?

Why conditioning in IIB Mapping Node invalidates the response XML?

我一直在 IIB 映射节点中使用 If 条件,请求的布尔属性 Flag 映射到 messageA 属性作为响应。如果 Flag 的计算结果为 true.

,则完成赋值

还有另一个For Each,它执行列表的深拷贝,并为同一个变量messageA赋值,如果Flag被计算为false

下面是映射器逻辑:

如果 Flagfalse,上述逻辑会产生有效的 XML,但如果是 true,它会成功分配值,但是会使定义的响应无效在 XSD 中,通过附加 messageA 属性作为响应 XML.

的最后一个子项

第二种情况如何处理?考虑到后面节点中没有自定义 ESQL 逻辑。

当您在映射器中没有有效值并且您通过 ESQL 覆盖它并且它没有在您期望的位置创建时,在指定位置创建标记。

为避免这种情况,请使用 Create 函数中内置的映射器。

这将为您的元素保留 space,并且当您填充它的值时,这将位于预期的位置,并且架构也会得到验证