使用 WSDL 指定的標準 SOAP 訊息格式
本主題專門說明舊有技術。 應該使用下列建立 XML Web Service 及 XML Web Service 用戶端: Windows Communication Foundation.
業界標準的 Web 服務描述語言 (WSDL) 提供了兩個核心的 SOAP 格式選項 (WSDL 會定義 XML 文件的結構描述,而 XML 文件則接下來定義 Web 服務)。這兩個選項都是在位於命名空間 https://schemas.xmlsoap.org/wsdl/soap/ 的 XML 項目中指定的,而此項目的所在位置並不是主要的 WSDL 命名空間 https://schemas.xmlsoap.org/wsdl/。這個次要命名空間會認可由 SOAP 通訊協定處理 Web 服務。
SOAP 格式選項
這兩個格式選項如下:
Style:適用於 SOAP 訊息中 Body 項目的子項目及可能的後代項目。這會指定為 binding WSDL 項目 (通常) 或 operation 項目的 Style 屬性。
Use:適用於出現在下一層級的 Web 服務方法參數或傳回值。這會指定為 Body 項目的 use 屬性。
如需 SOAP 規格的詳細資訊,請參閱 W3C 網站 (http://www.w3.org/TR/SOAP)。在 W3C 網站上還可以找到有關 WSDL 規格的詳細資訊。
Style 屬性的允許值
WSDL 允許兩個控制整體 SOAP 本文格式的 style 屬性值:
RPC:會自動將參數或傳回值置入父項目中,而此項目本身的父系是 SOAP Body 項目。參數或傳回值會出現,但是不限定命名空間。在 SOAP 1.1 規格第 7 節中會述及這項配置。已指定
style="rpc"
。就 SOAP 要求而言,SOAP Body 下面的項目是以對應於 Web 服務方法的 WSDL operation 項目來命名。該項目內的每個項目代表一個參數並且按照各自的參數命名。
就 SOAP 回應而言,SOAP Body 之下項目的名稱則是作業名稱附加上 Response。下面項目的名稱 (代表傳回值) 為作業名稱,但是會加上後置詞 Return。
Document:依照 XML 結構描述定義中定義的 XML 項目,在 WSDL 中完整指定 SOAP Body 項目的內容。您可以在 WSDL 文件中指定或匯入 XML 結構描述。WSDL 並不理會參數和傳回值;它只處理 XML 文件。開發人員 (或最好是 Web 服務基礎結構) 會負責管理參數和傳回值轉譯為 XML 結構描述項目和類型的過程。已指定
style="document"
。最上層 XML 項目會指定為訊息部分,即 part 項目 (這些項目是在 message 項目中定義並指向 XSD 項目宣告)。雖然 WSDL 本身並不禁止多個項目,但通常只會有一個部分,所以 SOAP Body 內容是真正的 XML 文件。
WSDL 允許兩個控制參數和傳回值格式的 use 屬性值:
Encoded:根據 SOAP 1.1 規格第 5 節中所述的配置來格式化資料。SOAP 編碼會針對 XML 文件和其所表示資料之間的繫結使用 XML 結構描述的子集。SOAP 編碼還會針對多次出現在文件中的項目使用參考。已指定
use="encoded"
。Literal:根據在 WSDL 文件中指定或匯入的 XML 結構描述定義,將資料逐字格式化。已指定
use="literal"
。