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型を指定した場合,動作は保証されません。
-