0

私は2つのことを理解しようとしています:

  1. Xpathを使用してSOAPベースのWebサービスサーバーにクエリを実行できますか?

  2. これはSOAPプロトコルに組み込まれているので、XPathクエリのカスタム処理を追加しなくても、優れたSOAPサーバーが要求を正しく処理できますか?

2つの質問は冗長に見えるかもしれませんが、次の理由でそれらを破っています。

  1. 私が考えていることが理にかなっているかどうか/XPathの正しい使用法であるかどうかはわかりませんが、

  2. それが理にかなっている場合、それはすでにSOAPプロトコルの理解されている機能ですか(したがって、実際に扱っているWebサービスの特定のドキュメントが見つからない理由を説明している可能性があります)。

それが役立つ場合は、実際のシナリオを次に示します。

カレンダーデータベース(非常に単純なMySQL)があり、EWSを介してMSExchangeカレンダーを更新したいと考えています。イベントをデータベースからカレンダーにプッシュするときはいつでも、2つのことが当てはまります。

  1. 日付範囲は常に同じです(プッシュが発生する週の始まりから終わりまで)。

  2. 各イベントのUIDには、この特定のアプリによって送信されたことを示すインジケーターがあります。

そのため、予定がカレンダーにプッシュされる前に、その日付範囲内にあり、UIDにアプリインジケーターが含まれている予定を削除して、カレンダーアイテムが2倍になったり、さらに悪いことに古いものになったりしないようにします。カレンダー上のアイテムで、正しくなくなったもの。

このようなクエリ/削除/追加をすべて1つのリクエストで実行する正しい方法を見つけるのに苦労しているので、XPathはあまり独占的でないソリューションだと思っていました。しかし、XPathクエリがリクエストのどこで修正されるのか、あるいは最高のxmlパーサーが意図した目標を導き出すのかどうかさえわかりません。

申し訳ありませんが、これはもっと長蛇の列でした。短いバージョン:SOAPリクエスト内でXPathを使用できますか?もしそうなら、どのように?

4

2 に答える 2

1

1-Xpathを使用してSOAPベースのWebサービスサーバーにクエリを実行できますか?

うーん。いいえ。XPathは依存度の高い言語であり、それ自体では何もできません。CSSと同様に、動作するにはインタプリタとDOMが必要です。

2-これはSOAPプロトコルに組み込まれているため、XPathクエリのカスタム処理を追加しなくても、優れたSOAPサーバーが要求を正しく処理できますか?

いいえ。SOAPはHTTP上に構築されたデータ交換プロトコルです。これは、予測可能でプログラム可能な方法で(XMLとしてシリアル化された)オブジェクトを交換するために使用されます。XPathにはXMLへの接続がありますが、SOAPへの固有の接続はありません。

あなたの説明にもかかわらず、あなたが実際に何をしようとしているのかわからないので、「おそらくそうではない」よりも具体的な答えを出すことはできないのではないかと思います。より具体的な答えを得るには、コード(またはアイデアを反映した擬似コード)を表示する必要があります。

于 2010-04-19T10:03:38.320 に答える
0

問題のSOAPサービスは、XPathクエリを入力として受け取るメソッドを実装できます(XPathクエリは文字列パラメーターとしてSOAPメソッドに送信されるだけです)。次に、XPathクエリを実行してレコードを削除するロジックをSOAPサーバーに実装します。ただし、これはクエリの形式としてXPathのみを使用するため、SOAPがxmlであることとは関係ありません。クエリパラメータの形式もSQLにすることができます。

gml構造(xml形式のマップベクターデータ)に基づいてクエリを実行するSOAPメソッドを使用しました。このメソッドは、有効なgmlを含む文字列としてフィルターパラメーターを受け取り、有効なgmlのマップデータを含む別の文字列として結果を返しました。

于 2010-05-06T09:39:02.427 に答える