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?

SoapTypeNameSpace

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

使用法

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

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

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

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

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

Method MyMethod() [ SoapTypeNameSpace = othervalue, SoapBindingStyle = document, WebMethod ] 

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

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

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

詳細

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

Note:

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

既定値

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

WSDL との関係

SoapTypeNameSpace キーワードは、WSDL の次のパートに影響します。

  • <definitions> 要素内のネームスペース宣言。指定したネームスペース (http://www.customtypes.org など) は、ここに追加されます。以下に例を示します。

    ...
    xmlns:ns2="http://www.customtypes.org" 
    xmlns:s0="http://www.wbns.org" 
    xmlns:s1="http://webservicetypesns.org" 
    ...
    targetNamespace="http://www.wbns.org"
    

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

    WSDL では、通常どおり、次のネームスペースも宣言します。

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

    • Web サービスのタイプのネームスペース (http://www.webservicetypesns.org)。この例では、これは接頭語 s1 に割り当てられます。

      Web サービス・クラスでタイプのネームスペースが指定されない場合、このネームスペースは WSDL に含まれません。

  • <types> 要素。これは、targetNamespace 属性が、SoapTypeNameSpace で指定されたネームスペースと等しい <schema> 要素を含みます。

    <types>
    ...
    <s:schema elementFormDefault="qualified" targetNamespace="http://www.customtypes.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="AddResponse">
            <s:complexType>
                <s:sequence>
                    <s:element name="AddResult" type="s:decimal"/>
                </s:sequence>
            </s:complexType>
        </s:element>
    </s:schema>
    
    ...
    </types>
    

    一方、SoapTypeNameSpace を指定しない場合、WSDL のこのパートは次のようになります。<schema> 要素の targetNamespace は、Web サービスのタイプのネームスペースです。

    <types>
    ...
    <s:schema elementFormDefault="qualified" targetNamespace="http://www.webservicetypesns.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="AddResponse">
            <s:complexType>
                <s:sequence>
                    <s:element name="AddResult" type="s:decimal"/>
                </s:sequence>
            </s:complexType>
        </s:element>
    </s:schema>
    
    ...
    </types>
    

    (また、Web サービス・クラスでタイプのネームスペースが指定されない場合、targetNamespace は Web サービスのネームスペースになります。)

メッセージへの影響

この 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'>
   <SOAP-ENV:Body>
      <AddResponse xmlns="http://www.customtypes.org">
         <AddResult>3</AddResult>
      </AddResponse>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

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

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

<?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>
      <AddResponse xmlns="http://www.webservicetypesns.org">
         <AddResult>3</AddResult>
      </AddResponse>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

関連項目

FeedbackOpens in a new tab