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?

SoapNameSpace

Web メソッドが使用する XML ネームスペースを指定します。Web サービスまたは Web クライアントとして定義されているクラス内でのみ適用されます。

使用法

メソッドが (Web メソッドとして使用される場合に) 使用する既定の XML ネームスペースをオーバーライドするには、以下の構文を使用します。

Method name(formal_spec) As returnclass [ SoapNameSpace = "soapnamespace", WebMethod ]
{
   //implementation
}

soapnamespace はネームスペース URI です。URI にコロン (:) が含まれる場合、文字列は引用符で囲む必要があります。つまり、次のように使用できます。

Method MyMethod() [ SoapNameSpace = "http://www.mynamespace.org", WebMethod ] 

また、次のようにすることもできます。

Method MyMethod() [ SoapNameSpace = othervalue, WebMethod ] 

ただし、次のようにはできません。

Method MyMethod() [ SoapNameSpace = http://www.mynamespace.org, WebMethod ] 
Important:

手動で作成した Web サービスでは、通常はこのキーワードの既定値が最適な値となります。SOAP ウィザードで WSDL から Web クライアントまたは Web サービスを生成すると、このキーワードはその WSDL に最適に設定されます。この値を変更すると、Web クライアントまたは Web サービスは機能しなくなる場合があります。

詳細

このキーワードは、この Web メソッドが使用する XML ネームスペースを指定します。詳細は、"Caché での Web サービスおよび Web クライアントの作成" を参照してください。

Note:

このキーワードは、メソッドが RPC スタイルのバインディングを使用する場合にのみ有効です。つまり、メソッド (またはそれを含むクラス) は、SoapBindingStyle = rpc とマークする必要があります。(ドキュメント・スタイルのバインディングを使用するメソッドでこのキーワードを指定する場合、WSDL は自己矛盾したものになります。)

既定値

このキーワードを省略すると、メソッドは、Web サービスまたはクライアント・クラスの NAMESPACE パラメータで指定されるネームスペースに配置されます。

WSDL との関係

Caché Web サービスでは、SoapNameSpace キーワードは <definitions> 要素内のネームスペース宣言に影響します。指定したネームスペース (http://www.customtypes.org など) は、ここに追加されます。以下に例を示します。

...
xmlns:ns2="http://www.customtypes.org" 
xmlns:s0="http://www.wsns.org" 
...
targetNamespace="http://www.wsns.org"

この例では、http://www.customtypes.org ネームスペースは、接頭語 ns2 に割り当てられます。

WSDL でも、通常どおり、Web サービスのネームスペース (http://www.wsns.org) を宣言します。この例では、このネームスペースは接頭語 s0 に割り当てられ、ターゲットのネームスペースとしても使用されます。

SOAP メッセージへの影響

この SOAP メッセージは以下のようになります (読みやすいように、改行とスペースが追加されています)。

<?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' 
                   xmlns:SOAP-ENC='http://schemas.xmlsoap.org/soap/encoding/' 
                   xmlns:tns='http://www.customtypes.org' >
   <SOAP-ENV:Body SOAP-ENV:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'>
      <tns:AddResponse>
         <AddResult>42</AddResult>
      </tns:AddResponse>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

<AddResponse> 要素は、http://www.webservicetypesns.org ネームスペース内にあります。

一方、SoapNameSpace キーワードを指定しない場合、メッセージは以下のようになります。

<?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' 
                   xmlns:SOAP-ENC='http://schemas.xmlsoap.org/soap/encoding/' 
                   xmlns:tns='http://www.wsns.org' >
   <SOAP-ENV:Body SOAP-ENV:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'>
      <tns:AddResponse>
         <AddResult>42</AddResult>
      </tns:AddResponse>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

この場合、<AddResponse> 要素は Web サービスのネームスペース http://www.wsns.org に含まれます。

関連項目

FeedbackOpens in a new tab