Простой язык 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.
См. также