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