Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Использование XML совместно с SQL.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
1.39 Mб
Скачать

Секция message

Эта секция содержит описания параметров Web-методов. В текущем WSDL-файле ее нет, так как мы пока еще не определили никакого метода. Вообще, секция message состоит из набора частей (parts), каждая из которых описывает конкретный параметр. Часть может быть и одна, в этом случае используется несколько отличный синтаксис, при котором задается конкретный элемент части, вместо перечисления нескольких типов. Ниже приведен пример одинаковых параметров.

Фрагмент WSDL-определения параметров с помощью встроенных типов XML Schema

<wsdl:message name="mes1">

<wsdl:part name="param1" type="xsd:int"/>

<wsdl:part name="param2" type="xsd:int"/>

</wsdl:message>

Фрагмент WSDL-определения параметров с помощью собственного типа

<wsdl:types>

<xsd:schema targetNamespace="http://tempuri.org"

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

xmlns:tns="http://tempuri.org">

<xsd:complexContent name="params">

<xsd:sequence>

<xsd:element name="param1" type="xsd:int"/>

<xsd:element name="param2" type="xsd:int"/>

</xsd:sequence>

</xsd:complexContent>

</xsd:schema>

</wsdl:types>

<wsdl:message name="mes1">

<wsdl:part name="params" type="tns:param"/>

</wsdl:message>

Фрагмент WSDL-определения параметров с помощью элемента собственного типа.

<wsdl:types>

<xsd:schema targetNamespace="http://tempuri.org"

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

xmlns:tns="http://tempuri.org">

<xsd:element name="params">

<xsd:complexContent>

<xsd:sequence>

<xsd:element name="param1" type="xsd:int"/>

<xsd:element name="param2" type="xsd:int"/>

</xsd:sequence>

</xsd:complexContent>

</xsd:element>

</xsd:schema>

</wsdl:types>

<wsdl:message name="mes1">

<wsdl:part name="params" element="tns:params"/>

</wsdl:message>

В SQLXML принят последний стиль описания параметров, так как в нем используется документ-литеральная форма SOAP-сообщений. О формах сообщений мы поговорим чуть позже.

Секция portType

Последняя секция, где описываются абстрактные параметры Web-сервиса. Эта секция является обязательной и содержит неопределенное количество необязательных разделов operation. Операции описывают конкретные Web-методы. Так как у нас пока нет Web-методов, то и количество разделов operation равно нулю.

У каждой операции есть имя и набор входных, выходных и ошибочных параметров, представленных элементами input, output и fault соответственно. Входные и выходные параметры могут образовывать различные типы операций: запрос/ответ, запрос, ответ и ответ/запрос. Это достигается с помощью соответствующей комбинации элементов input и output. Например, следующий псевдофрагмент описывает схему взаимодействия запрос/ответ (вопросительный знак обозначает необязательность элемента, звездочка – неопределенное количество элементов):

<wsdl:portType .... >

<wsdl:operation name="nmtoken" parameterOrder="nmtokens">

<wsdl:input name="nmtoken"? message="qname"/>

<wsdl:output name="nmtoken"? message="qname"/>

<wsdl:fault name="nmtoken" message="qname"/>*

</wsdl:operation>

</wsdl:portType >