Учебник по XML

XML ГЛАВНАЯ Введение в XML XML Как использовать XML-дерево Синтаксис XML XML-элементы XML-атрибуты Пространства имен XML Отображение XML XML HttpRequest XML-парсер XML DOM XML XPath XML XSLT XML XQuery XML-ссылка XML-валидатор XML-DTD XML-схема XML-сервер XML-примеры XML-викторина XML-сертификат

XML АЯКС

Введение в АЯКС AJAX XMLHttp АЯКС-запрос AJAX-ответ XML-файл AJAX АЯКС PHP АЯКС АСП База данных AJAX AJAX-приложения Примеры AJAX

XML DOM

Введение в ДОМ DOM-узлы Доступ к DOM Информация об узле DOM Список узлов DOM Обход DOM DOM-навигация DOM Получить значения Узлы изменения DOM DOM Удалить узлы DOM заменить узлы DOM Создание узлов DOM Добавить узлы Узлы клонирования DOM Примеры DOM

Учебник XPath

XPath Введение Узлы XPath Синтаксис XPath Оси XPath Операторы XPath Примеры XPath

XSLT- учебник

Введение в XSLT Языки XSL XSLT-преобразование XSLT <шаблон> XSLT <значение> XSLT <для каждого> XSLT <сортировка> XSLT <если> XSLT <выбрать> XSLT Применить XSLT на клиенте XSLT на сервере XSLT Редактировать XML XSLT-примеры

Учебник по XQuery

Введение в XQuery Пример XQuery XQuery FLWOR XQuery HTML Условия XQuery Синтаксис XQuery XQuery Добавить Выбор XQuery Функции XQuery

XML -DTD

Введение в DTD Строительные блоки DTD Элементы DTD Атрибуты DTD Элементы DTD и Attr Сущности DTD Примеры DTD

XSD- схема

Введение в XSD XSD Как XSD <схема> XSD-элементы XSD-атрибуты XSD-ограничения

Комплекс XSD

XSD-элементы XSD пустой Только элементы XSD Только текст XSD XSD смешанный XSD-индикаторы XSD <любой> XSD <любой атрибут> Замена XSD Пример XSD

XSD- данные

XSD-строка XSD-дата XSD числовой XSD Разное Справочник по XSD

Веб- сервисы

XML-сервисы XML WSDL XML-МЫЛО XML RDF XML RSS

использованная литература

Типы узлов DOM DOM-узел Список узлов DOM DOM NamedNodeMap Документ DOM DOM-элемент Атрибут DOM DOM-текст ДОМ CDATA Дом Комментарий DOM XMLHttpRequest Парсер DOM XSLT-элементы Функции XSLT/XPath

XML WSDL


  • WSDL расшифровывается как язык описания веб-служб.
  • WSDL используется для описания веб-сервисов.
  • WSDL написан на XML
  • WSDL — это рекомендация W3C от 26 июня 2007 г.

WSDL-документы

Документ WSDL описывает веб-службу. Он определяет местоположение службы и методы службы, используя следующие основные элементы:

Element Description
<types> Defines the (XML Schema) data types used by the web service
<message> Defines the data elements for each operation
<portType> Describes the operations that can be performed and the messages involved.
<binding> Defines the protocol and data format for each port type

Основная структура документа WSDL выглядит следующим образом:

<definitions>

<types>
  data type definitions........
</types>

<message>
  definition of the data being communicated....
</message>

<portType>
  set of operations......
</portType>

<binding>
  protocol and data format specification....
</binding>

</definitions>


Пример WSDL

Это упрощенная часть документа WSDL:

<message name="getTermRequest">
  <part name="term" type="xs:string"/>
</message>

<message name="getTermResponse">
  <part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
  <operation name="getTerm">
    <input message="getTermRequest"/>
    <output message="getTermResponse"/>
  </operation>
</portType>

В этом примере элемент <portType> определяет «glossaryTerms» как имя порта и «getTerm» как имя операции .

Операция «getTerm» имеет входное сообщение с именем «getTermRequest» и выходное сообщение с именем «getTermResponse».

Элементы <message> определяют части каждого сообщения и связанные типы данных.


Элемент <portType>

Элемент <portType> определяет веб-службу , операции , которые можно выполнять, и задействованные сообщения .

Тип запроса-ответа является наиболее распространенным типом операции, но WSDL определяет четыре типа:

Type Definition
One-way The operation can receive a message but will not return a response
Request-response The operation can receive a request and will return a response
Solicit-response The operation can send a request and will wait for a response
Notification The operation can send a message but will not wait for a response

Односторонняя операция WSDL

Пример односторонней операции:

<message name="newTermValues">
  <part name="term" type="xs:string"/>
  <part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
  <operation name="setTerm">
    <input name="newTerm" message="newTermValues"/>
  </operation>
</portType >

В приведенном выше примере тип порта «glossaryTerms» определяет одностороннюю операцию, называемую «setTerm».

Операция "setTerm" позволяет вводить новые сообщения терминов глоссария, используя сообщение "newTermValues" с входными параметрами "term" и "value". Однако для операции не определен выход.


Операция запроса-ответа WSDL

Пример операции запрос-ответ:

<message name="getTermRequest">
  <part name="term" type="xs:string"/>
</message>

<message name="getTermResponse">
  <part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
  <operation name="getTerm">
    <input message="getTermRequest"/>
    <output message="getTermResponse"/>
  </operation>
</portType>

В приведенном выше примере тип порта «glossaryTerms» определяет операцию «запрос-ответ» под названием «getTerm».

Операция "getTerm" требует входного сообщения "getTermRequest" с параметром "term" и возвращает выходное сообщение "getTermResponse" с параметром "value".


Привязка WSDL к SOAP

Привязки WSDL определяют формат сообщения и сведения о протоколе для веб-службы.

Пример операции запрос-ответ:

<message name="getTermRequest">
  <part name="term" type="xs:string"/>
</message>

<message name="getTermResponse">
  <part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
  <operation name="getTerm">
    <input message="getTermRequest"/>
    <output message="getTermResponse"/>
  </operation>
</portType>

<binding type="glossaryTerms" name="b1">
   <soap:binding style="document"
   transport="http://schemas.xmlsoap.org/soap/http" />
   <operation>
     <soap:operation soapAction="http://example.com/getTerm"/>
     <input><soap:body use="literal"/></input>
     <output><soap:body use="literal"/></output>
  </operation>
</binding>

Элемент привязки имеет два атрибута — имя и тип.

Атрибут name (вы можете использовать любое имя) определяет имя привязки, а атрибут type указывает на порт для привязки, в данном случае порт "glossaryTerms".

Элемент soap:binding имеет два атрибута — стиль и транспорт.

Атрибут стиля может быть «rpc» или «document». В этом случае мы используем документ. Атрибут транспорта определяет используемый протокол SOAP. В этом случае мы используем HTTP.

Элемент Operation определяет каждую операцию , которую предоставляет portType.

Для каждой операции должно быть определено соответствующее действие SOAP. Вы также должны указать, как кодируются ввод и вывод. В этом случае мы используем «буквальный».