共用方式為


在協調流程中使用 SOAP 標頭

協調流程會使用屬性結構描述來定義 SOAP 標頭內容屬性。 您可以使用 BizTalk 編輯器設定 SOAP 標頭內容屬性。

使用屬性結構描述定義 SOAP 標頭內容屬性

您需要屬性結構描述,才能在協調流程中使用已定義的 SOAP 標頭內容屬性。 屬性架構必須具有 的目標命名空間 http://schemas.microsoft.com/BizTalk/2003/SOAPHeader ,且 屬性架構基底 屬性設定為 MessageCoNtextPropertyBase。 屬性結構描述中的各根項目名稱,必須符合已定義 SOAP 標頭中的根項目名稱。 您接著便可以使用屬性結構描述的命名空間和屬性名稱,來設定內容屬性的值。

注意

屬性架構的命名空間與目標架構的命名空間不同 (http://schemas.microsoft.com/BizTalk/2003/SOAPHeader) 。 雖然您的命名空間可以是任何字串,但通常會預設為專案名稱。

下列程式碼顯示指派 SOAP 標頭內容屬性,其中屬性架構命名空間是 SOAPHeader ,其屬性名稱為 OrigDest

requestMessageInstance(SOAPHeader.OrigDest) = stringVar;  

如需屬性架構和內容屬性的詳細資訊,請參閱 屬性架構

使用 BizTalk 編輯器設定 SOAP 標頭內容屬性

針對協調流程,SOAP 標頭內容屬性會設為包含 XML 資料的字串。 您可以在 訊息指派運算式 圖形中使用 BizTalk 運算式編輯器來設定這些字串。

下列範例說明設定內容屬性的字串:

RequestMessageInstance(SOAPHeader.OrigDest) = "<?xml version=\"1.0\"?>  
<OrigDest xmlns=\"http://SOAPHeaderSchemas.OrigDestSOAPHeader\">  
<Origination>Home</Origination>  
<Destination>Work</Destination>  
</OrigDest>"  

使用 BizTalk 編輯器建立 SOAP 標頭根項目的執行個體

要將 SOAP 標頭設定為正確的字串,可能並不容易。 將 Web 參考加入到 BizTalk 專案時,所有複雜的 Web 訊息部分都會當做根項目加入到 Reference.xsd 中。 Reference.xsd 還包含每個已定義的 SOAP 標頭的根項目。 為確保您使用正確的字串設定 SOAP 標頭,請使用 BizTalk 編輯器為 Reference.xsd 建立 SOAP 標頭根項目的執行個體。 您可以直接使用產生的執行個體資料,或使用執行個體資料來包含實際的資料。

如需使用 BizTalk 編輯器產生實例資料的詳細資訊,請參閱 如何產生實例訊息

建立 XmlDocument 來設定內容屬性

您可以建立 XmlDocument 並將 XmlDocument 的字串值寫入內容屬性,以設定內容屬性。 您可以宣告 XMLDocument 類型的變數,並指派 XML 資料。

下列範例示範如何設定宣告 XMLDocument 類型的變數,並指派 XML 資料:

xmlDoc.LoadXml("<?xml version=\"1.0\"?><OrigDest xmlns=\"http://SOAPHeaderSchemas.OrigDestSOAPHeader\"><Origination>Home</Origination><Destination>Work</Destination></OrigDest>");  

下列範例說明如何設定內容屬性:

RequestMessageInstance(SOAPHeader.OrigDest) = xmlDoc.OuterXml;  

如需使用 BizTalk 運算式編輯器的詳細資訊,請參閱 運算式的需求和限制。 如需呼叫 .NET 類別的詳細資訊,請參閱 在使用者程式碼中建構訊息

建立 SOAP 要求的 SOAP 標頭

建立 SOAP 要求的 SOAP 標頭時,您必須確定建立的 SOAP 標頭是否正確無誤。 SOAP 配接器不會驗證 SOAP 標頭內容屬性的內容。

注意

如果 SOAP 標頭不正確,BizTalk 將無法傳送 SOAP 要求至 Web 服務。

BizTalk 傳回 Web 服務的 SOAP 回應可能也包含 SOAP 標頭。 您只能存取其中已定義的 SOAP 標頭。

注意

已使用的 Web 服務只支援已定義的 SOAP 標頭。

如需已定義 SOAP 標頭的詳細資訊,請參閱 使用 SOAP 標頭。 將回應 SOAP 標頭設定為內容屬性所使用的語法,與設定要求 SOAP 標頭的語法相同。

下列程式碼說明如何存取回應 SOAP 標頭:

stringVar = ResponseMessageInstance(SOAPHeader.OrigDest);  

內容屬性中包含的值是包含 XML 資料的字串。 您可以在 訊息指派運算式 圖形中使用 BizTalk 運算式編輯器來設定這些字串。 您會在 XmlDocument 中載入字串,並使用 XPath 查詢來存取特定欄位。

如需在 BizTalk 運算式編輯器中建立 XML 檔的詳細資訊,請參閱 XLANG-s 語言

另請參閱

XLANG-s 語言
SOAP 標頭與已使用的 Web 服務