0

我试图弄清楚两件事:

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

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

这两个问题似乎是多余的,但我打破它们是因为:

  1. 我不知道我的想法是否有意义/是否正确使用 XPath,

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

如果有帮助,这是现实世界的场景:

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

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

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

因此,在将任何事件推送到日历之前,我想删除该日期范围内的所有事件,并在 UID 中有应用程序指示器,这样我就不会得到双倍的日历项目,或者更糟糕的是,旧的我日历上不再正确的项目。

由于我无法找到正确的方法来在一个请求中执行这样的查询/删除/添加所有操作,因此我认为 XPath 是一种不太专有的解决方案。但我什至不确定 XPath 查询将在哪里修改为请求,或者即使最好的 xml 解析器会得出预期的目标。

抱歉,这比我的意思要啰嗦。简短版本:我可以在 SOAP 请求中使用 XPath 吗?如果是这样,怎么做?

4

2 回答 2

1

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

嗯。不,XPath 是一种高度依赖的语言,它自己不能做任何事情。像 CSS 一样,它需要一个解释器和一个 DOM 才能工作。

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

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

恐怕我不能给出比“可能不是”更具体的答案,因为尽管有你的解释,但我不知道你实际上想做什么。要获得更具体的答案,您必须显示您的代码(或反映您想法的伪代码)。

于 2010-04-19T10:03:38.320 回答
0

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

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

于 2010-05-06T09:39:02.427 回答