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

В будущей версии Microsoft SQL Server эта возможность будет удалена. Избегайте использования этой возможности в новых разработках и запланируйте изменение существующих приложений, в которых она применяется.

Простой язык WSDL формирует усеченную версию WSDL-документа, который замещает типы данных примитивов XSD для системных типов SQL Server, которые подробно описаны в разделе Язык 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.

ПримечаниеПримечание

Запросы на языке WSDL не могут участвовать в SOAP-сеансе. Дополнительные сведения о SOAP-сеансах см. в разделе Работа с сеансами SOAP.

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

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