2012-11-13 211 views
1

以下是從第三方接收一個真實的消息,一旦我把他們的Web服務:的BizTalk發送端口InboundBodyPathExpression的XPath

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

在我的BizTalk映射,我需要沒有給出安全包頭中的信息(所以使用TransferReq作爲根) - 我試着生成一個包含頭的XSD,但我不能這樣做 - 由於在根下面命名的默認命名空間。

我試圖修改的BizTalk InboundBodyPathExpression所以它使用XPath找到我的相關節點作爲根節點使用,按照微軟的文檔在這裏:Specifying the Message Body for the WCF Adapters

這是我的XPath:

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

以上就是由第三方

我得到這個但是其返回,被拋出:

端點處理程序通信異常。處理messageError時發生錯誤錯誤描述:System.InvalidOperationException:入站正文路徑表達式「/ [local-name()='TransferRequest']/ [local-name()='TransferReq'和namespace()='http://www.removedforthepostonstackoverflow ']「 是無效的。

有人可以看到我做了什麼錯嗎?

回答

2

的問題是顯而易見的

沒有XPath函數namespace() - 你需要使用標準的XPath函數:

namespace-uri()

+0

我在看着它在這麼多次並錯過了這樣一個顯而易見的東西 - 謝謝你...當它讓我的賞金! – Chris

+0

@克里斯,不客氣。 –

相關問題