Определение типов данных в WSDL
Для определения типов данных, используемых веб-сервисом, в WSDL-документах рекомендуется использовать механизм XML-схем. Следующий пример демонстрирует задание двух типов данных: «GetCatalogs» и «GetCatalogsResponse». Первый из них представляет собой пустой тип данных (ангалог void в C++), а второй – массив записей о каталогах интернет-магазина, содержащий поля Id и Name:
<wsdl:types>
<s:schema elementFormDefault="qualified"
targetNamespace="http://www.mephi.ru/order">
<s:element name="GetCatalogs">
<s:complexType />
</s:element>
<s:element name="GetCatalogsResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="GetCatalogsResult" type="tns:ArrayOfCatalog" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfCatalog">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="Catalog" nillable="true" type="tns:Catalog" />
</s:sequence>
</s:complexType>
<s:complexType name="Catalog">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="Id" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="Name" type="s:string" />
</s:sequence>
</s:complexType>
</s:schema>
</wsdl:types>
Для использования этих типов данных необходимо задать сообщения веб-сервиса, в которых они будут задействованы:
<wsdl:message name="GetCatalogsSoapIn">
<wsdl:part name="parameters"
element="tns:GetCatalogs" />
</wsdl:message>
<wsdl:message name="GetCatalogsSoapOut">
<wsdl:part name="parameters"
element="tns:GetCatalogsResponse" />
</wsdl:message>
Таким образом, было задано два сообщения, которые могут быть использованы при определении операций веб-сервиса. Первое сообщение было определено как пустое, а содержание второго может быть, к примеру, следующим:
<?xml version="1.0" encoding="utf-8" ?>
<ArrayOfCatalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.mephi.ru/order">
<Catalog>
<Id>1</Id>
<Name>Процессоры</Name>
</Catalog>
<Catalog>
<Id>2</Id>
<Name>Видеокарты</Name>
</Catalog>
</ArrayOfCatalog>
Дата добавления: 2015-02-28; просмотров: 1075;