简单 WSDL

后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。

简单 WSDL 可产生修整版的 WSDL 文档,这种 WSDL 文档可替代 SQL Server 系统类型的基元 XSD 数据类型。这种系统类型在默认 WSDL 中有更为详细的介绍。虽然简单 WSDL 减少了默认 WSDL 完全支持的 SQL Server 数据类型的全面性,但它确实简单了为客户端提供可使用的 WSDL 文档的过程以及代理类生成器(不能映射或处理默认 WSDL 及其类型系统的所有方面)。

简单 WSDL 和默认 WSDL 之间的差异

简单 WSDL 和默认 WSDL 格式同时存在的主要原因是简单 WSDL 格式旨在提供向后兼容,并为不能识别默认 WSDL 格式的 SOAP 客户端提供支持。

这包括与那些基于 SOAP Toolkit 类似的简单 Web 服务客户端。由于默认 WSDL 文档由 SQL Server 实例生成,因此这些客户端无法解释它们。这种限制是因为 SOAP Toolkit 以及其他更简单的 Web 服务客户端不解释 SQL Server 2005 中引入的某些系统类型的多样性。因此,简单 WSDL 具有所有映射至本机 XSD 类型的 SQL Server 类型元素,以便将此限制应用至更简单和更旧版本的客户端。

例如,众所周知,由于自身的 totalDigits 和 fractionDigits 的定义粒度以及其他用来派生原始 XSD 类型的附加元素,SOAP Toolkit 客户端在识别 sqltypes:money 方面存在问题。但是,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。另外,“类型”部分中也定义了此内容。而响应类型则设置为指定 <xsd:any> 的一般 <xsd:complexType>。这对于任何都是适用的。对 WSDL 文档所作的这种修改可以使简单的 Web 服务客户端避开其分析派生的 SQL Server 响应类型的缺点。

注意注意

WSDL 请求不能参与到 SOAP 会话中。有关 SOAP 会话的详细信息,请参阅使用 SOAP 会话

针对简单 WSDL 的从 SQL Server 到 XSD 类型的映射

有关如何针对简单 WSDL 将 SQL Server 系统数据类型映射到 XML 架构 (XSD) 类型的详细信息,请参阅本机 XML Web 服务中的数据类型映射