можно использовать xpath в исходящем SOAP-запросе (конверте) независимо от конфигурации сервера SOAP? - PullRequest
0 голосов
/ 19 апреля 2010

Я пытаюсь понять две вещи:

  1. Можно ли использовать Xpath для запроса сервера веб-служб на основе SOAP?

  2. Встроено ли это в протокол SOAP таким образом, чтобы любой хороший сервер SOAP обрабатывал запросы правильно, не добавляя пользовательскую обработку запросов XPath?

Эти два вопроса могут показаться излишними, но я их ломаю, потому что:

  1. Я не знаю, имеет ли смысл то, что я имею в виду / будет правильным использованием XPath,

  2. Если это имеет смысл, является ли это уже понятной особенностью протокола SOAP (и, таким образом, может объяснить, почему я не могу найти какую-либо конкретную документацию для веб-службы, с которой я на самом деле имею дело.)

Вот сценарий реального мира, если это поможет:

У меня есть база данных календаря (очень простая, MySQL), и я хочу обновить календарь MS Exchange через EWS. Всякий раз, когда я помещаю события из моей базы данных в календарь, две вещи верны:

  1. Диапазон дат всегда будет одинаковым (с начала недели до конца недели, когда происходит толчок).

  2. UID каждого события будет иметь индикатор того, что оно было отправлено этим конкретным приложением.

Итак, прежде чем какие-либо события будут помещены в календарь, я хотел бы удалить все события, которые находятся в этом диапазоне дат и имеют индикатор приложения в UID, чтобы я не получал двойные элементы календаря, или хуже того, старые элементы в моем календаре, которые больше не соответствуют действительности.

Поскольку у меня возникают проблемы с поиском правильного способа выполнить такой запрос / удалить / добавить все в одном запросе, я подумал, что XPath является менее проприетарным решением. Но я даже не уверен, где запрос XPath будет изменен к запросу, или даже если лучший из анализаторов xml получит намеченную цель.

Извините, это было более затянуто, чем я хотел. Краткая версия: могу ли я использовать XPath в запросе SOAP? Если да, то как?

Ответы [ 2 ]

1 голос
/ 19 апреля 2010

1 - Можно ли использовать Xpath для запроса к серверу веб-служб на основе SOAP?

Ммм. Нет. XPath - это сильно зависимый язык, он ничего не может сделать сам по себе. Как и CSS, для работы ему нужен интерпретатор и DOM.

2 - Встроено ли это в протокол SOAP таким образом, чтобы любой хороший сервер SOAP обрабатывал запросы правильно, не добавляя пользовательскую обработку запросов XPath?

Нет. SOAP - это протокол обмена данными, построенный на основе HTTP. Он используется для обмена объектами (которые были сериализованы как XML) предсказуемым и программируемым способом. Несмотря на то, что XPath имеет соединение с XML, он не имеет внутренней связи с SOAP.

Боюсь, я не могу дать более конкретный ответ, чем "вероятно, нет", поскольку, несмотря на ваши объяснения, я понятия не имею, что вы на самом деле пытаетесь сделать. Чтобы получить более конкретный ответ, вам нужно будет показать свой код (или псевдокод, который отражает вашу идею).

0 голосов
/ 06 мая 2010

В рассматриваемой службе SOAP может быть реализован метод, который принимает запрос XPath в качестве входных данных (где запрос XPath просто отправляется как строковый параметр в метод SOAP). Затем реализуйте логику на сервере SOAP, который выполняет запрос XPath и удаляет записи. НО это только использует XPath в качестве формата для запроса, это не имеет ничего общего с SOAP, являющимся xml! Формат параметра запроса также может быть SQL.

Я работал с методом SOAP, который выполняет запрос на основе структуры gml (отображает векторные данные в форме xml). Метод принял параметр фильтра в виде строки, содержащей действительный gml, и возвратил результат в виде еще одной строки, содержащей данные карты в действительном gml.

...