オーケストレーションでの SOAP ヘッダーの使用
オーケストレーションは、プロパティ スキーマを使用して SOAP ヘッダー コンテキスト プロパティを定義します。 BizTalk エディターを使用して、SOAP ヘッダー コンテキストのプロパティを設定します。
プロパティ スキーマを使用した SOAP ヘッダー コンテキスト プロパティの定義
オーケストレーション内に定義されている SOAP ヘッダー コンテキスト プロパティを使用するには、プロパティ スキーマが必要です。 プロパティ スキーマには、 のターゲット名前空間 http://schemas.microsoft.com/BizTalk/2003/SOAPHeader
が必要です。 また、Property Schema Base プロパティは MessageContextPropertyBase に設定されている必要があります。 プロパティ スキーマ内の各ルート要素名は、定義されている SOAP ヘッダーのルート要素名に一致する必要があります。 これにより、プロパティ スキーマの名前空間とプロパティ名を使用してコンテキスト プロパティの値を設定できます。
Note
プロパティ スキーマの名前空間は、ターゲット スキーマ (http://schemas.microsoft.com/BizTalk/2003/SOAPHeader
) の名前空間とは異なります。 名前空間には任意の文字列を指定できますが、通常は既定によりプロジェクト名が使用されます。
次のコードは、プロパティ スキーマ名前空間が ORigDest のプロパティ名を持つ SOAPHeader である SOAP ヘッダー コンテキスト プロパティの割り当てを示しています。
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 ヘッダーを正しい文字列に設定することが困難な場合もあります。 BizTalk プロジェクトに Web 参照を追加するときに、すべての複雑な 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 ヘッダー コンテキスト プロパティの内容を検証しません。
Note
SOAP ヘッダーが正しくなければ、BizTalk は Web サービスに SOAP 要求を送信できません。
BizTalk から Web サービスに返される SOAP 応答にも SOAP ヘッダーが含まれている場合があります。 これらの SOAP ヘッダーには、定義されている SOAP ヘッダーである場合にのみアクセスできます。
Note
使用される Web サービスは、定義されている SOAP ヘッダーのみをサポートします。
定義済みの SOAP ヘッダーの詳細については、「 SOAP ヘッダーの使用」を参照してください。 応答 SOAP ヘッダーは、要求 SOAP ヘッダーと同じ構文を使用してコンテキスト プロパティに設定されます。
次のコードは、応答 SOAP ヘッダーへのアクセス方法を示しています。
stringVar = ResponseMessageInstance(SOAPHeader.OrigDest);
コンテキスト プロパティに含まれている値は、XML データを含む文字列です。 これらの文字列は、 メッセージの割り当て または式図形で BizTalk 式 エディターを使用して設定します。 XmlDocument に文字列を読み込み、XPath クエリを使用して特定のフィールドにアクセスします。
BizTalk 式エディターでの XML ドキュメントの作成の詳細については、「 XLANG-s 言語」を参照してください。