Hitachi

Cosminexus V11 アプリケーションサーバ Webサービス開発ガイド


28.3.1 添付ファイル使用時のWSDLの記述(wsi:swaRef形式)

WSDLで添付ファイルを扱う場合,wsi:swaRef形式で記述します。wsi:swaRef形式は,WSDLで添付ファイルを扱う形式としてWS-I Attachments Profile - Version 1.0で規定されています。

WS-I Attachments Profile - Version 1.0で規定された形式に基づいて,wsi:swaRef形式で記述したWSDLの例を示します。

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://localhost" 
  xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd" ...>
  <wsdl:types>
    <schema elementFormDefault="qualified" targetNamespace="http://localhost" 
      xmlns="http://www.w3.org/2001/XMLSchema">
      <import namespace="http://ws-i.org/profiles/basic/1.1/xsd"/>
      <element name="getUserData">
        <complexType>
          <sequence>
            <element name="in0" type="xsd:string"/>
            <element name="in1" type="wsi:swaRef"/>
          </sequence>
        </complexType>
      </element>
       ...
    </schema>
  </wsdl:types>
  <wsdl:message name="getUserDataRequest">
    <wsdl:part element="intf:getUserData" name="parameters"/>
  </wsdl:message>
  ...
  <wsdl:portType name="UserInfo">
    <wsdl:operation name="getUserData">
      <wsdl:input message="intf:getUserDataRequest" name="getUserDataRequest"/>
      ...
    </wsdl:operation>
  </wsdl:portType>
  ...
</wsdl:definitions>

この例では,getUserDataメソッドの引数(スキーマ定義のelement要素の型)に,添付ファイルを表すwsi:swaRef型を指定しています。

WSDLで添付ファイルを扱う場合の注意事項
  • swaRef型は,スキーマの要素の型(element要素のtype属性)に指定できます。属性の型(attribute要素のtype属性)に指定した場合,動作は保証されません。

  • swaRef型を指定しているXML Schemaでは,WSDLの例で示すように名前空間http://ws-i.org/profiles/basic/1.1/xsdをインポートする必要があります。インポートしていない場合,XML Processorのエラーが出力されます。

    名前空間http://ws-i.org/profiles/basic/1.1/xsdをインポートするxsd:import要素のschemaLocation属性の形式と,使用可否を次の表に示します。

    表28‒3 xsd:import要素のschemaLocation属性の形式と使用可否(swaRef型の使用時)

    項番

    schemaLocation属性

    使用可否

    1

    指定しない

    使用できます。※1

    2

    http://wsi.org/profiles/basic/1.1/swaref.xsd

    使用できます。※1

    3

    項番1および項番2以外

    使用できません。※2

    注※1

    cjwsimportコマンドは,Application ServerのJAX-WS機能の内部で保持する名前空間http://ws-i.org/profiles/basic/1.1/xsdのスキーマを参照します。

    注※2

    cjwsimportコマンドは,schemaLocation属性で指定した場所にあるスキーマを参照します。ただし,Application ServerのJAX-WS機能で内容を保証できないスキーマが参照されるため,サポート対象外となります。

  • ユーザ定義例外で添付ファイルは使用できないため,wsdl:fault要素から参照するスキーマの要素の型(element要素のtype属性)にswaRef型は指定できません。wsdl:fault要素から参照するスキーマの要素の型にswaRef型を指定した場合,動作は保証されません。