WSDL との関係
SoapMessageName キーワードは、Web サービスの WSDL の <messages> セクションと <types> セクションに影響します。例えば、以下の Web メソッドを考えてみます。
Method Add(a as %Numeric,b as %Numeric) As %Numeric [ SoapMessageName=MyResponseMessage,WebMethod ]
{
Quit a + b
}
この Web サービスでは、WSDL の <types> セクションと <messages> セクションは次のようになります。
<types>
<s:schema elementFormDefault="qualified" targetNamespace="http://www.mynamespace.org">
<s:element name="Add">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" name="a" type="s:decimal"/>
<s:element minOccurs="0" name="b" type="s:decimal"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="MyResponseMessage">
<s:complexType>
<s:sequence>
<s:element name="AddResult" type="s:decimal"/>
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</types>
<message name="AddSoapIn">
<part name="parameters" element="s0:Add"/>
</message>
<message name="AddSoapOut">
<part name="parameters" element="s0:MyResponseMessage"/>
</message>
既定では、メソッドで SoapMessageName キーワードを指定しないと、AddSoapOut メッセージには、MyResponseMessage の代わりに AddResponse という名前の要素が含められます。
SoapMessageName は、応答メッセージの子要素 (AddResult など) には影響しません。
SOAP ウィザードを使用して WSDL から Web サービスまたはクライアントを生成する場合、その WSDL に応じてこのキーワードが設定されます。