Поделиться через


Простой язык WSDL

Простой язык WSDL формирует усеченную версию WSDL-документа, который замещает типы данных примитивов XSD для системных типов SQL Server 2005, которые подробно описаны в разделе Язык WSDL по умолчанию. Хотя простой язык WSDL использует все типы данных SQL Server, которые полностью поддерживаются в языке WSDL по умолчанию, он упрощает процесс подготовки работоспособных WSDL-документов клиентами и генераторами классов-посредников, которые не способны отображать все аспекты языка WSDL по умолчанию и его системой типов, а также управлять этими аспектами и системой типов.

Отличия простого языка WSDL и языка WSDL по умолчанию

Главная причина поддержки двух форматов WSDL заключается в том, что простой язык WSDL предназначен для обратной совместимости и поддержки клиентов SOAP, которые не понимают формата языка WSDL по умолчанию.

Речь идет о простых клиентах веб-служб вроде тех, которые основаны на SOAP Toolkit. Эти клиенты не способны интерпретировать документ языка WSDL по умолчанию в том виде, в котором он создан экземпляром SQL Server. Это ограничение возникает потому, что SOAP Toolkit и другие простые клиенты веб-служб не интерпретируют сложность некоторых системных типов SQL Server 2005. Поэтому, чтобы обойти ограничения простых и старых клиентов, простой язык WSDL содержит все элементы типов SQL Server, сопоставленные со встроенными типами XSD.

Например клиент SOAP Toolkit имеет проблемы при интерпретации типа sqltypes:money из-за гранулярности определения элементов totalDigits и fractionDigits, а также других элементов, производных от исходных типов XSD. Однако клиент SOAP Toolkit прекрасно обрабатывает прямое сопоставление типов XSD, например типа данных int.

Производные типы (язык WSDL по умолчанию)

<xsd:simpleType name="money">

<xsd:restriction base="xsd:decimal">

<xsd:totalDigits value="19">

</xsd:totalDigits>

<xsd:fractionDigits value="4">

</xsd:fractionDigits>

<xsd:maxInclusive value="922337203685477.5807">

</xsd:maxInclusive>

<xsd:minInclusive value="-922337203685477.5808">

</xsd:minInclusive>

</xsd:restriction>

</xsd:simpleType>

Прямое сопоставление (простой язык WSDL)

<xsd:simpleType name="int">

<xsd:restriction base="xsd:int">

</xsd:restriction>

</xsd:simpleType>

Еще один пример — ответ RPC. Простой язык WSDL устанавливает тип ответа в SqlResultStream. Это дополнительно определено в его разделе «Types». Тип ответа же установлен в универсальный тип <xsd:complexType>, который определяет тип <xsd:any>, что допускает наличие произвольного содержимого. Такое изменение WSDL-документа позволяет простому клиенту веб-службы обойти неспособность выполнять синтаксический анализ производных типов ответов SQL Server.

ms190968.note(ru-ru,SQL.90).gifПримечание.
Запросы на языке WSDL не могут участвовать в SOAP-сеансе. Дополнительные сведения о SOAP-сеансах см. в разделе Работа с сеансами SOAP.

Сопоставление типов SQL Server и типов XSD для простого языка WSDL

Дополнительные сведения о том, как системные типы данных SQL Server сопоставлены типам XML Schema (XSD) для простого языка WSDL, см. в разделе Сопоставления типов данных в собственных веб-службах с поддержкой XML.

См. также

Справочник

WSDL-документ по умолчанию
Реализация поддержки пользовательского формата WSDL

Основные понятия

Использование языка WSDL

Справка и поддержка

Получение помощи по SQL Server 2005