Share via


Simple WSDL

This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

The simple WSDL produces a trimmed down version of the WSDL document that substitutes primitive XSD data types for SQL Server system types that are more richly described in Default WSDL. Although the simple WSDL does reduce some of the richness of the SQL Server data types that are fully supported in the default WSDL, it does simplify the process of providing consumable WSDL documents to clients and proxy class generators that are not equipped to map or handle all facets of the default WSDL and its type system.

Differences Between Simple and Default WSDL

The primary reason for having both simple and default WSDL formats is that the simple WSDL format is designed to provide backward compatibility and support for SOAP clients that do not understand the default WSDL format.

This includes simple Web service clients like those that based upon the SOAP Toolkit. These clients cannot interpret the default WSDL document as it is generated by an instance of SQL Server. This limitation is because SOAP Toolkit and other simpler Web service clients do not interpret the richness of some system types introduced in SQL Server 2005. Therefore, to allow for this limitation of the simpler or older clients, the simple WSDL has all SQL Server types elements mapped to native XSD types.

For example, the SOAP Toolkit client has been known to have problems understanding sqltypes:money because of its definition granularity of totalDigits and fractionDigits, and other additional elements that are used to derive the original XSD types. However, the SOAP Toolkit can handle direct mapping of XSD types just fine, such as int.

Derived Types (Default 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>

Direct Mapping (Simple WSDL)

<xsd:simpleType name="int">
    <xsd:restriction base="xsd:int">
    </xsd:restriction>
</xsd:simpleType>

Another example is an RPC response. The default WSDL sets a response type to SqlResultStream. This is additionally defined in its "Types" section. In contrast, the response type is set to a generic <xsd:complexType> that specifies <xsd:any> . This allows for any content. This modification to the WSDL document allows the simple Web service client to work around its inability to parse the derived SQL Server response types.

Note

WSDL requests cannot participate within a SOAP session. For more information about SOAP sessions, see Working with SOAP Sessions.

SQL Server to XSD Type Mappings for Simple WSDL

For more information about how SQL Server system data types are mapped to XML Schema (XSD) types for simple WSDL, see Data Type Mappings in Native XML Web Services.