以下是我打电话给他们的网络服务后从第三方收到的真实消息:
<TransferRequest>
<SecurityHeader>
<...Removed, but not bothered by this/>
</SecurityHeader>
<TransferReq xmlns="'http://www.removedforthepostonstackoverflow">
.....
在我的BizTalk映射中,我需要没有给定安全头的信息(所以使用TransferReq作为root) - 我已经尝试生成包含头的XSD但我不能这样做 - 由于默认命名空间在下面命名根。
我已尝试修改BizTalk InboundBodyPathExpression,因此它使用XPath查找我的相关节点作为其根节点,根据此处的microsofts文档:Specifying the Message Body for the WCF Adapters
这是我的xpath:
/*[local-name()='TransferRequest']/*[local-name()='TransferReq' and namespace()='http://www.removedforthepostonstackoverflow']
以上是第三方返回的内容
然而,我得到了这个,被抛出:端点处理程序通信异常。处理message时发生错误错误描述:System.InvalidOperationException:入站正文路径表达式“/ [local-name()='TransferRequest'] / [local-name()='TransferReq'和名称空间()='http://www.removedforthepostonstackoverflow']“无效。
有人能看出我做错了吗?
答案 0 :(得分:2)
问题很明显:
没有XPath函数namespace()
- 您需要使用标准的XPath函数:
namespace-uri()