Секция types

Эта секция содержит набор схем в формате XML Schema, каждая из которых описывает абстрактные типы, не зависящие от какого-либо языка или машины. Эта секция не является обязательной и может быть опущена, если Web-сервис не нуждается в дополнительных типах (как правило, это составные типы – complex types) и вполне обходится стандартными, определенными в XML Schema.

SQLXML определяет четыре схемы типов:

http://schemas.microsoft.com/SQLServer/2001/12/SOAP/types. Эта схема описывает базовые типы, используемые при построении сообщений.

Простой тип nonNegativeInteger – целочисленный тип без знака в диапазоне от 0 до 2147483647.

Атрибут IsNested булевого типа.

Сложный тип SqlRowSet – используется в случае, когда результирующее сообщение имеет тип DataSet object. Более подробно о типах результирующих сообщений см. раздел «Создание Web-методов».

Сложный тип SqlXml – используется в случае, когда результирующее сообщение имеет тип XML objects.

Простой тип SqlResultCode - целочисленный тип без знака в диапазоне от 0 до 2147483647, который используется для описания возвращаемого хранимой процедурой значения.

http://schemas.microsoft.com/SQLServer/2001/12/SOAP/types/SqlMessage. Эта схема определяет единственный тип, который описывает сообщение от SQL Server-а в случае ошибки.

Сложный тип SqlMessage – содержит поля для описания кода ошибки, номера строки, строкового представления ошибки и других параметров.

http://schemas.microsoft.com/SQLServer/2001/12/SOAP/types/SqlResultStream. Эта схема определяет единственный сложный тип, который описывает любой ответ от сервера.

Сложный тип SqlResultStream – содержит одно и более вхождений полей следующих типов: SqlRowSet, SqlXml, SqlMessage и SqlResultCode.

Пространство имен конкретного Web-сервиса, которое импортирует все вышеперечисленные пространства имен и описывает типы, необходимые конкретным Web-методам. В данный момент эта схема не содержит ни одного описания, так как пока Web-сервис не определил каких-либо Web-методов.

В качестве примера приведу фрагмент WSDL-файла, сгенерированного при создании виртуальной директории.

Типы SQLXML:

<wsdl:types> <xsd:schema targetNamespace="http://schemas.microsoft.com/SQLServer/2001/12/SOAP/types" elementFormDefault="qualified" attributeFormDefault="qualified"> <xsd:import namespace="http://www.w3.org/2001/XMLSchema"/> <xsd:simpleType name="nonNegativeInteger"> <xsd:restriction base="xsd:int"> <xsd:minInclusive value="0"/> </xsd:restriction> </xsd:simpleType> <xsd:attribute name="IsNested" type="xsd:boolean"/> <xsd:complexType name="SqlRowSet"> <xsd:sequence> <xsd:element ref="xsd:schema"/> <xsd:any/> </xsd:sequence> <xsd:attribute ref="sqltypes:IsNested"/> </xsd:complexType> <xsd:complexType name="SqlXml" mixed="true"> <xsd:sequence> <xsd:any/> </xsd:sequence> </xsd:complexType> <xsd:simpleType name="SqlResultCode"> <xsd:restriction base="xsd:int"> <xsd:minInclusive value="0"/> </xsd:restriction> </xsd:simpleType> </xsd:schema> <xsd:schema targetNamespace="http://schemas.microsoft.com/SQLServer/2001/12/SOAP/types/SqlMessage" elementFormDefault="qualified" attributeFormDefault="qualified"> <xsd:import namespace="http://www.w3.org/2001/XMLSchema"/> <xsd:import namespace="http://schemas.microsoft.com/SQLServer/2001/12/SOAP/types"/> <xsd:complexType name="SqlMessage"> <xsd:sequence minOccurs="1" maxOccurs="1"> <xsd:element name="Class" type="sqltypes:nonNegativeInteger"/> <xsd:element name="LineNumber" type="sqltypes:nonNegativeInteger"/> <xsd:element name="Message" type="xsd:string"/> <xsd:element name="Number" type="sqltypes:nonNegativeInteger"/> <xsd:element name="Procedure" type="xsd:string"/> <xsd:element name="Server" type="xsd:string"/> <xsd:element name="Source" type="xsd:string"/> <xsd:element name="State" type="sqltypes:nonNegativeInteger"/> </xsd:sequence> <xsd:attribute ref="sqltypes:IsNested"/> </xsd:complexType> </xsd:schema> <xsd:schema targetNamespace="http://schemas.microsoft.com/SQLServer/2001/12/SOAP/types/SqlResultStream" elementFormDefault="qualified" attributeFormDefault="qualified"> <xsd:import namespace="http://www.w3.org/2001/XMLSchema"/> <xsd:import namespace="http://schemas.microsoft.com/SQLServer/2001/12/SOAP/types"/> <xsd:import namespace="http://schemas.microsoft.com/SQLServer/2001/12/SOAP/types/SqlMessage"/> <xsd:complexType name="SqlResultStream"> <xsd:choice minOccurs="1" maxOccurs="unbounded"> <xsd:element name="SqlRowSet" type="sqltypes:SqlRowSet"/> <xsd:element name="SqlXml" type="sqltypes:SqlXml"/> <xsd:element name="SqlMessage" type="sqlmessage:SqlMessage"/> <xsd:element name="SqlResultCode" type="sqltypes:SqlResultCode"/> </xsd:choice> </xsd:complexType> </xsd:schema> <xsd:schema targetNamespace="http://dcit06/srv/webserv" elementFormDefault="qualified" attributeFormDefault="qualified"> <xsd:import namespace="http://www.w3.org/2001/XMLSchema"/> <xsd:import namespace="http://schemas.microsoft.com/SQLServer/2001/12/SOAP/types"/> <xsd:import namespace="http://schemas.microsoft.com/SQLServer/2001/12/SOAP/types/SqlMessage"/> <xsd:import namespace="http://schemas.microsoft.com/SQLServer/2001/12/SOAP/types/SqlResultStream"/> </xsd:schema></wsdl:types>

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



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