无论SOAP服务器配置如何,xpath都可以在传出的SOAP请求(信封)中使用?

时间:2010-04-19 08:24:43

标签: web-services soap xpath exchangewebservices

我想弄清楚两件事:

  1. 可以使用Xpath查询基于SOAP的Web服务服务器吗?

  2. 这是否构建在SOAP协议中,以便任何好的SOAP服务器都能正确处理请求,而无需添加自定义的XPath查询处理?

  3. 这两个问题可能看似多余,但我打破它们是因为:

    1. 我不知道我的想法是否合理使用XPath,

    2. 如果它确实有意义,它是否已经被理解为SOAP协议的特性(因此可以解释为什么我找不到我正在处理的Web服务的任何特定文档。)

    3. 以下是真实场景,如果有帮助的话:

      我有一个日历数据库(非常简单,MySQL),我想通过EWS更新我的MS Exchange日历。每当我将事件从我的数据库推送到我的日历时,有两件事情是真的:

      1. 日期范围将始终相同(一周的开始到推动发生的一周结束时)。

      2. 每个事件的UID都会有一个指示符,表明它是由此特定应用发出的。

      3. 因此,在将任何事件推送到日历之前,我想删除该日期范围内的任何事件并在UID中使用app-indicator,这样我就不会获得双倍的日历项目,或者更糟糕的是,我日历上不再合适的旧物品。

        由于我无法找到在一个请求中执行此类查询/删除/添加的正确方法,因此我认为XPath是不太专有的解决方案。但是我甚至不确定将XPath查询修改为请求的位置,或者即使最好的xml解析器也会得到预期的目标。

        对不起,这是更长时间的啰嗦然后我的意思是。简短版本:我可以在SOAP请求中使用XPath吗?如果是这样,怎么样?

2 个答案:

答案 0 :(得分:1)

  

1 - 可以使用Xpath查询基于SOAP的Web服务服务器吗?

嗯。不,XPath是一种高度依赖的语言,它本身无法做任何事情。像CSS一样,它需要一个解释器和一个DOM来工作。

  

2 - 这是否构建在SOAP协议中,以便任何好的SOAP服务器都能正确处理请求而无需添加自定义的XPath查询处理?

没有。 SOAP是建立在HTTP之上的数据交换协议。它用于以可预测和可编程的方式交换对象(已被序列化为XML)。尽管XPath与XML有连接,但它与SOAP没有内在联系。

我担心我不能提供比“可能不是”更具体的答案,因为尽管你的解释我不知道你实际试图做什么。要获得更具体的答案,您必须显示您的代码(或反映您的想法的伪代码)。

答案 1 :(得分:0)

有问题的SOAP服务可以实现一个方法,该方法将XPath查询作为输入(其中XPath查询仅作为字符串参数发送到SOAP方法)。然后在执行XPath查询的SOAP服务器上实现逻辑并删除记录。但这只会使用XPath作为查询的格式,它与SOAP无关啊!查询参数的格式也可以是SQL。

我使用过SOAP方法,该方法基于gml结构(xml形式的地图矢量数据)进行查询。该方法将filter参数作为包含有效gml的字符串,并将结果作为另一个包含有效gml中的地图数据的字符串返回。