1

以下是我调用他们的网络服务后从第 3 方收到的真实消息:

<TransferRequest>
<SecurityHeader>
<...Removed, but not bothered by this/>
</SecurityHeader>
<TransferReq xmlns="'http://www.removedforthepostonstackoverflow">
.....

在我的 BizTalk 映射中,我需要没有给定安全标头的信息(因此使用 TransferReq 作为根)-我尝试生成包含标头的 XSD,但我不能这样做-因为默认命名空间在根之下命名。

我已经尝试修改 BizTalk InboundBodyPathExpression,以便它使用 XPath 来查找我的相关节点以用作其根节点,根据此处的微软文档:为 WCF 适配器指定消息正文

这是我的 xpath:

/*[local-name()='TransferRequest']/*[local-name()='TransferReq' and namespace()='http://www.removedforthepostonstackoverflow']

以上是第三者返回的内容

然而,我得到了这个,被抛出:

端点处理程序通信异常。处理message时出错错误描述:System.InvalidOperationException: Inbound body path expression "/ [local-name()='TransferRequest']/ [local-name()='TransferReq' and namespace()=' http:// /www.removedforthepostonstackoverflow ']" 无效。

有人可以看到我做错了什么吗?

4

1 回答 1

2

问题很明显

没有 XPath 函数namespace()——您需要使用标准的 XPath 函数:

namespace-uri()

于 2012-11-15T23:54:38.347 回答