Определение типов данных в WSDL

Для определения типов данных, используемых веб-сервисом, в WSDL-документах рекомендуется использовать механизм XML-схем. Следующий пример демонстрирует задание двух типов данных: «GetCatalogs» и «GetCatalogsResponse». Первый из них представляет собой пустой тип данных (ангалог void в C++), а второй – массив записей о каталогах интернет-магазина, содержащий поля Id и Name:

<wsdl:types>

<s:schema elementFormDefault="qualified"

targetNamespace="https://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="https://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="https://www.w3.org/2001/XMLSchema"

xmlns="https://www.mephi.ru/order">

<Catalog>

<Id>1</Id>

<Name>Процессоры</Name>

</Catalog>

<Catalog>

<Id>2</Id>

<Name>Видеокарты</Name>

</Catalog>

</ArrayOfCatalog>


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: