2014-05-12 36 views
0

下面計數沒有的參數是機構(的WCF服務)的SOAP消息的 -在SOAP操作

<s:Body> 
<Multiply xmlns="http://tempuri.org/"> 
<x xmlns:a="http://schemas.datacontract.org/2004/07/CService" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
<a:L>4</a:L> 
<a:M>3</a:M> 
</x> 
<y xmlns:a="http://schemas.datacontract.org/2004/07/CService" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
<a:L>-2</a:L> 
<a:M>2</a:M> 
</y> 
</Multiply> 
</s:Body> 

在上述中,操作乘法具有相同類型的兩個參數:x &年。 CService的其他操作只有一個相同類型的參數(與x或y相同)。

我已經定義了一個命名空間表作爲

<namespaceTable> 
      <add prefix="o" namespace="http://tempuri.org/" /> 
</namespaceTable> 

現在我想使用XPath,以確定任何操作是否有相應的參數計算一個或兩個路由消息像如下─

<filters> 
      <filter name="one" filterType="XPath" filterData="//o:Count > 1" /> 
      <filter name="two" filterType="XPath" filterData="//o:Count = 1" /> 
</filters> 
定義過濾器

但我無法找到任何解決方案。有什麼方法可以計算肥皂操作中的參數數量嗎?

回答

0

如果我瞭解你,你的XPath是不正確的!

我想你想指望Multiply有兩個孩子,即xy?如果是這樣,那麼你只需要計算Multiply在名字空間http://tempuri.org/

例如count(//o:Multiply/child::o:*)

<filters> 
    <filter name="one" filterType="XPath" filterData="count(//o:Multiply/child::o:*) gt 1" /> 
    <filter name="two" filterType="XPath" filterData="count(//o:Multiply/child::o:*) eq 1" /> 
</filters> 
相關問題