簡單 WSDL
簡單 WSDL 會產生縮減版的 WSDL 文件,用來替代 SQL Server 2005 系統類型的基本 XSD 資料類型,這些資料類型在<預設 WSDL>有更詳細的說明。雖然簡單 WSDL 減少了 SQL Server 資料類型的某些功能性 (而預設 WDSL 中可以完全支援這些功能),但是針對無法對應或處理預設 WSDL 及其類型系統所有 Facet 的用戶端及 Proxy 類型產生器而言,簡單 WSDL 確實可以簡化提供可用的 WSDL 的流程。
簡單 WSDL 與 預設 WSDL 之間的差異
同時有簡單 WSDL 與 預設 WSDL 格式的主要原因,是為了讓不瞭解預設 WSDL 格式的 SOAP 用戶端具有回溯相容性以及提供支援。
這包括使用 SOAP Toolkit 的簡單 Web 服務用戶端。這些用戶端無法將預設 WSDL 文件當作是由 SQL Server 執行個體產生的來進行解譯。此限制是由於 SOAP Toolkit 與其他更簡單的 Web 服務用戶端無法解譯某些 SQL Server 2005 系統類型的多種功能。因此,為了這種較簡單或較舊用戶端的侷限性,所以簡單 WSDL 具有對應至原生 XSD 類型的所有 SQL Server 類型元素。
例如,已知 SOAP Toolkit 用戶端無法瞭解 sqltypes:money,因為這種元素的totalDigits
與 fractionDigits
的定義資料粒度 (Granularity),還有用來衍生原始 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:any> 的一般 <xsd:complexType>。這樣可以允許任何內容。此 WSDL 文件的修改能夠讓簡單 Web 服務用戶端解決其無法剖析衍生 SQL Server 回應類型的問題。
附註: |
---|
WSDL 要求無法參與 SOAP 工作階段。如需有關 SOAP 工作階段的詳細資訊,請參閱<使用 SOAP 工作階段>。 |
簡單 WSDL 的 SQL Server 與 XSD 類型的對應
如需有關 SQL Server 系統資料類型如何對應簡單 WSDL 之 XML 結構描述 (XSD) 類型的詳細資訊, 請參閱<原生 XML Web Service 中的資料類型對應>。