使用 WSDL

Web 服務描述語言 (WSDL) 用於爲所有在 HTTP 端點上公開的 RPC 函數定義 Web 接口定義,並且還說明了端點的 SQL 批處理功能。客戶端可以請求來自 SQL Server 的 WSDL 響應,並使用它生成對服務器的 RPC 和 SQL 批處理請求,方法是通過使用已配置爲支持 WSDL 類型的 HTTP 端點。WSDL 響應實際上是基於請求時與端點關聯的 RPC 函數而動態生成的 XML 文檔。

配置爲支持提供 WSDL 的 HTTP 端點可以指定以下一種 WSDL 配置,用於響應提交 WSDL 請求的客戶端。

  • 默認的 WSDL
  • 自定義的 WSDL

當將 SQL Server 2005 配置爲默認的 WSDL 選項時,它將爲兩種類型的 WSDL 提供支持:默認或擴展的 WSDL 格式和簡化的 WSDL 格式。

儘管其中任一 WSDL 文檔都說明了端點上支持的方法,但是默認的 WSDL 使用 XML 架構 (XSD) 的附加功能對端點可用的或由其公開的方法、數據類型、參數和返回值提供了更豐富的說明。

簡化的 WSDL 格式可能是向下兼容舊客戶端時需要使用的,它使用僅需要基元數據類型的非常基本的 XSD 架構。如果默認或簡化的 WSDL 都不提供適合於特定客戶端的確切的 WSDL 內容,則您可以根據需要更新服務器以提供 WSDL 的自定義版本。

SQL Server 實例在通過提交 WSDL 請求的 Web 服務客戶端第一次連接到 HTTP 端點時,將生成並返回 WSDL 響應。

當定義了端點後,將使用 CREATE ENDPOINT Transact-SQL 語句中的 WSDL 參數來爲服務器指定是否爲端點生成並返回 WSDL 響應以說明其 Web 可編程功能。如果使用 WSDL=NONE 值建立了端點,則服務器將不會返回 WSDL 響應。

如果指定生成默認的 WSDL(例如,創建端點時指定了 WSDL=DEFAULT),服務器返回的 WSDL 的格式將取決於客戶端用來連接到 HTTP 端點的 URL 字符串。客戶端可以使用以下一種 URL 格式請求 WSDL:

  • 默認 WSDL 這是擴展的 WSDL 響應的完整版本,當使用 http://server/endpoint_path?wsdl URL 連接到端點時返回。此格式使用 XSD 派生類型爲更復雜的 SQL 類型提供映射支持。有關詳細信息,請參閱默認 WSDL
  • 簡單 WSDL 這是默認的 WSDL 的簡化版本,可以將所有 SQL Server 系統數據類型映射到本機 XSD 類型。當使用 http://server/endpoint_path?wsdlsimple 作爲 URL 連接到端點時返回此格式。有關詳細信息,請參閱簡單 WSDL
  • 自定義的 WSDL 當客戶端對 SQL Server 實例返回的默認的 WSDL 版本或簡化的 WSDL 版本都無法接受時,您可以指定提供自定義的 WSDL。此選項要求設計並實現附加代碼。以這種方式,存儲過程可用來生成並返回作爲客戶端結果的自定義的 WSDL 內容,這些客戶端在基於 HTTP 的查詢中指定自定義的 WSDL 類型。有關詳細信息,請參閱實現自定義 WSDL 支持

Web 服務描述語言 (WSDL) 實例是一個含有根 <definitions> 元素的一個 XML 文檔,該元素用於指定 WSDL 命名空間 (http://schemas.xmlsoap.org/wsdl) 和定義一組 Web 服務作爲網絡端點或端口的集合。一個典型 WSDL 文檔將具有以下頂級結構:

<wsdl:definitions>
  <wsdl:types>...</wsdl:types>
  <wsdl:message>...<wsdl:message/>
  <wsdl:portType>...</wsdl:portType>
  <wsdl:binding>...</wsdl:binding>
  <wsdl:service>...<wsdl:service>
<wsdl:definitions>

正如此 WSDL 格式的簡化視圖所示,使用了多個元素來指示 WSDL 文檔中的主要部分。下表簡要說明了其中每一元素的角色。

元素 說明

wsdl:types

使用 XML 架構 (XSD) 或其他相似的數據類型系統生成的數據類型定義的容器元素。

wsdl:message

傳送的消息數據的定義。此消息可以由多個部分組成並且每一部分可以是不同的類型。

wsdl:portType

一個或多個端點支持的操作的抽象集。

wsdl:binding

特定端口類型的具體協議和數據格式規範。

wsdl:service

相關端點的集合。

SQL Server 2005 中包含帶有本機 XML Web 服務的以下系統存儲過程,用以支持默認和簡單的 WSDL 實現並可被調用來響應 WSDL 的請求:

  • sp_http_generate_wsdl_defaultcomplexorsimple
  • sp_http_generate_wsdl_defaultsimpleorcomplex
  • sp_http_generate_wsdl_complex
  • sp_http_generate_wsdl_simple
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章