SOAP 要求ヘッダは、SOAP エンベロープ内の XML フラグメントです。SOAP 操作とそのパラメータはリモートプロシージャコール (RPC) であると考えることができますが、SOAP 要求ヘッダを使用して、特定の要求や応答内のメタ情報を転送できます。SOAP 要求ヘッダによって、認証情報やセッション基準などのアプリケーションのメタデータが転送されます。
SOAPHEADER 句は、SOAP 要求ヘッダエントリに準拠する有効な XML フラグメントである必要があります。複数の SOAP 要求ヘッダエントリを指定できます。ストアドプロシージャまたはファンクションによって、SOAP ヘッダ要素 (SOAP-ENV:Header) 内に SOAP 要求ヘッダエントリが自動的に注入されます。SOAPHEADER 値では、静的定数として宣言したり、代入パラメータメカニズムを使用して動的に設定したりできる SOAP ヘッダが指定されます。次に、サンプルの SOAP 要求の一部を示します。これにはそれぞれ Authentication と Session という 2 つの XML ヘッダが含まれています。
<?xml version="1.0"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="HTTP://localhost:8082"> <SOAP-ENV:Header> <Authentication xmlns="CustomerOrderURN"> <userName pwd="none" mustUnderstand="1"> <first>John</first> <last>Smith</last> </userName> </Authentication> <Session xmlns="SomeSession">123456789</Session> </SOAP-ENV:Header> <SOAP-ENV:Body> <m:SoapOperation> <m:intVariable>123</m:intVariable> <m:charVariable>data</m:charVariable> </m:SoapOperation> </SOAP-ENV:Body> </SOAP-ENV:Envelope> |
SOAP 呼び出しによって返される SOAP 応答ヘッダの処理は、関数とプロシージャによって異なります。最も柔軟で推奨される方法である関数を使用すると、SOAP 応答エンベロープ全体が受信されます。その後、OPENXML 演算子を使用して応答エンベロープを処理し、SOAP ヘッダと SOAP 本文のデータを抽出できます。プロシージャを使用すると、IN または INOUT 変数にマッピングする代入パラメータを使用する場合にのみ SOAP 応答ヘッダを抽出できます。SOAP プロシージャで許容される IN または INOUT パラメータは、1 つだけです。
Web サービス関数は、応答 SOAP エンベロープを解析して、ヘッダエントリを取得する必要があります。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |