Книга: C# для профессионалов. Том II

WSDL

WSDL

WSDL полностью описывает службы Web, доступные методы и различные способы вызова этих методов. Все детали этого опять же не так уж важны, но общее понимание будет полезно.

WSDL имеет синтаксис, полностью соответствующий XML, и определяет службы Web по доступным методам, типам данных, используемых этими методами, форматам сообщений запросов и ответов, посылаемых методам и из методов с помощью различных протоколов (чистый SOAP, HTTP GET и т.д.), и различным связываниям между упомянутыми выше элементами.

Возможно, что наиболее важной частью файла WSDL является раздел определения типов данных. Он использует схемы XML для описания формата обмена данными и их отношениями с помощью элементов XML.

Например, метод службы Web, использованной в качестве примера в последнем разделе:

int DoSomething(string stringParam, int intParam)

будет иметь типы, объявленные для запроса следующим образом:

<?xml version="1.0" ?>
<definitions xmlns:s="http://www.w3.org/2000/10/XMLSchema"
 xmlns="http://schemas.xmlsoap.org/wsdl/"
 ... другие пространства имен ... >
 <types>
  <s:schema attributeFormDefault="qualified" elementFormDefault="qualified"
   targetNamespace="http://tempuri.org/">
   <s:import namespace="http://www.w3.org/2000/10/XMLSchema" />
   <s:element name="DoSomething" >
    <s:complexType>
     <s:sequence>
      <s:element name="stringParam" nullable="true" type="s:string" />
      <s:element name="intParam" nullable="true" type="s:int" />
     </s:sequence>
    </s:complexType>
   </s:element>
   <s:element name="DoSomethingResponse">
    <s:complexType>
     <s:sequence>
      <s:element name="DoSomethingResult" type="s:int" />
     </s:sequence>
    </s:complexType>
   </s:element>
   <s:element name="int" type="s:int" />
  </s:schema>
 </types>
 ... другие определения ...
</definitions>

Все, что требуется для запросов и ответов SOAP и HTTP, которые мы видели ранее, определяется этими типами, которые далее в этом файле связываются с такими операциями. Все типы определяются с помощью стандартного синтаксиса схемы XML, например:

<s:element name="DoSomethingResponse">
 <s:complexType>
  <s:sequence>
   <s:element name="DoSomethingResult" type="s:int" />
  </s:sequence>
 </s:complexType>
</s:element>

Этот код определяет, что элемент с именем <DoSomethingResponse> имеет элемент-потомок с именем <DoSomethingResult>, который содержит целое число.

Если мы имеем доступ к коду WSDL для службы Web, то мы можем его использовать. Как мы скоро увидим, это не так уж трудно сделать.

Теперь, когда мы кратко ознакомились с SOAP и WSDL, пришло время посмотреть, как создаются и используются службы Web.

Оглавление книги


Генерация: 1.747. Запросов К БД/Cache: 2 / 0
поделиться
Вверх Вниз