SOAP ヘッダーにアクセスするための機能がいくつか用意されています。 HTTP ヘッダーにアクセスするための詳細については、このトピックの末尾にある最初の 4 つの参照トピックを参照してください。
SOAP ヘッダーにアクセスできるのは、EGL 生成の Java ベースの SOAP サービス、または EGL 生成の Java ベースまたは JavaScript ベースの SOAP サービス・リクエスターに限られます。
Record SOAPHeader
field1 string{@xmlelement{namespace = "http://services";}};
field2 string{@xmlelement{namespace = "http://services";}};
end
このレコード・パーツは、非構造化レコードでなければならず、各フィールドで名前空間を指定しなければなりません。
service SayHello
function hello()
getSOAPRequestHeaders(header);
//...
header SOAPHeader{field1="valueA", field2="valueB"};
ServiceLib.setSOAPResponseHeaders(header);
end
end
関数 hello によって、SOAP 要求ヘッダーを前述のタイプのレコードに取り込み、そのレコードに値を割り当て、それらの要求した値で SOAP 応答ヘッダーを設定します。
srvc SayHello{@BindService {}};
header SOAPHeader{field1="value1", field2="value2"};
ServiceLib.setSOAPRequestHeaders(srvc, header);
response string = srvc.hello("ABC");
ServiceLib.getSOAPResponseHeaders(srvc, header);
リクエスターでは、サービス・アクセス変数を宣言し、前述のタイプのレコードに値を割り当て、それらの値で SOAP 要求ヘッダーを設定し、サービスを呼び出し、応答ヘッダーを前述のタイプのレコードに取り込みます。