Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

SoapRequestMessage

これは、複数の Web メソッドに同じ SoapAction が含まれている場合に使用します。既定のシナリオでは、このキーワードにより、要求メッセージの SOAP 本文内に最上位要素名を指定します。Web サービスまたは Web クライアントとして定義されているクラス内でのみ適用されます。

使用法

要求メッセージの SOAP 本文内に最上位要素名を指定するには、以下の構文を使用します。

Method name(formal_spec) As returnclass [ WebMethod, SoapAction = "MyAct", SoapRequestMessage="MyReqMessage" ]
{
   //implementation
}

soaprequestmessage は有効な XML 識別子です。

詳細

Note:

このキーワードは、折り返しありのドキュメント/リテラル・メッセージにのみ有効です。

折り返しありのドキュメント/リテラル・メッセージのために、要求メッセージの SOAP 本文内で最上位要素名をこのキーワードで指定します。(折り返しありのドキュメント/リテラル・メッセージが既定となります。詳細は、"Caché での Web サービスおよび Web クライアントの作成" の “メッセージ・バリエーションの例” を参照してください。)

同一 Web サービス内で複数の Web メソッドの SoapAction のために同じ値を使用する場合は、このキーワードを指定します。それ以外の場合は、通常はこのキーワードは必要ありません。

WSDL との関係

SoapRequestMessage キーワードは、Web サービスのための WSDL の <message> セクションに影響します。例えば、以下の Web メソッドを考えてみます。

Method Add(a as %Numeric,b as %Numeric) As %Numeric [ SoapAction = MyAct,SoapRequestMessage=MyReqMessage, WebMethod ]
{
    Quit a + b
}

この Web サービスでは、WSDL には以下のものが含まれています。

<message name="AddSoapIn">
   <part name="parameters" element="s0:MyReqMessage"/>
</message>
<message name="AddSoapOut">
   <part name="parameters" element="s0:AddResponse"/>
</message>

これらの要素は、それに対応して <types> セクションで定義されます。

既定では、メソッドで SoapRequestMessage キーワードを指定しないと、<message> のセクションが次のようになる場合があります。

<message name="AddSoapIn">
   <part name="parameters" element="s0:Add"/>
</message>
<message name="AddSoapOut">
   <part name="parameters" element="s0:AddResponse"/>
</message>

SOAP ウィザードを使用して WSDL から Caché Web サービスまたはクライアントを生成する場合、その WSDL に応じてこのキーワードが設定されます。

メッセージへの影響

前述の Web メソッドの場合、Web サービスでは、次の形式の要求メッセージを想定しています。

<?xml version="1.0" encoding="UTF-8" ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/'
 xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:s='http://www.w3.org/2001/XMLSchema'>
  <SOAP-ENV:Body>
    <MyReqMessage xmlns="http://www.myapp.org"><a>1</a><b>2</b></MyReqMessage>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

その一方で、メソッドで SoapRequestMessage キーワードを指定しないと、メッセージが次のようになる場合があります。

<?xml version="1.0" encoding="UTF-8" ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/'
 xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:s='http://www.w3.org/2001/XMLSchema'>
  <SOAP-ENV:Body>
    <Add xmlns="http://www.myapp.org"><a>1</a><b>2</b></Add>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

関連項目

FeedbackOpens in a new tab