Cosminexus アプリケーションサーバ V8 Webサービス開発の手引
xsd:schema要素のサポート範囲を説明します。
WSDLのスキーマ宣言であるxsd:element要素のtype属性に"xsd:base64Binary"を指定している場合,xmime:expectedContentTypes属性を用いてMIMEタイプを明示的に指定することで,Base64形式のデータをMIMEタイプに対応したJava型に関連づけることができます。WSDLのスキーマ宣言であるxsd:element要素に対するxmime:expectedContentTypes属性の記述可否を次の表に示します。
表14-1 xmime:expectedContentTypes属性の記述可否
| 項番 | xsd:element要素を参照するwsdl:messageのパラメタ | xsd:element要素に対するxmime:expectedContentTypes属性の記述可否 |
|---|---|---|
| 1 | wsdl:input | ○※1 |
| 2 | wsdl:output | ○※1 |
| 3 | wsdl:fault | ×※2 |
xsd:element要素にxmime:expectedContentTypes属性を指定した場合のWSDLからJava型へのマッピング方法は,WSDLのxmime:expectedContentTypes属性があるxsd:base64Binary型をJava型へマッピングします。WSDLからJava型へのマッピング例を次の図に示します。
図14-1 WSDLからJava型へのマッピング例
xmime:expectedContentTypes属性に指定するMIMEタイプには,"text/xml"および"application/xml"のcharsetパラメタを除いて,パラメタを記述しないでください。"text/xml"および"application/xml"のcharsetパラメタ以外のパラメタを記述した場合,動作は保証されません。
WSDLからマッピングするJava型は,xmime:expectedContentTypes属性に指定されているMIMEタイプによって変化します。xmime:expectedContentTypes属性に記述されているMIMEタイプと関連づけるJava型の関係を次の表に示します。
表14-2 xmime:expectedContentTypes属性の値と関連づけるJava型
| 項番 | xmime:expectedContentTypes属性の値(MIMEタイプ) | 関連づけるJava型 |
|---|---|---|
| 1 | application/xml | javax.xml.transform.Source |
| 2 | image/png※1 | java.awt.Image※2 |
| 3 | image/jpeg※1 | |
| 4 | 上記のMIMEタイプをコンマ区切りで記述(例:image/png, image/jpeg)※3 | |
| 5 | image/*※3 | |
| 6 | text/plain | java.lang.String |
| 7 | text/*※4 | javax.activation.DataHandler |
| 8 | text/xml※5 | javax.xml.transform.Source |
| 9 | 上記以外※4,※6 | javax.activation.DataHandler |
xmime:expectedContentTypes属性に指定されているMIMEタイプは,cjwsimportコマンドで自動生成されるJavaBeanクラスのうち,xmime:expectedContentTypes属性を記述した要素に対応するJavaBeanクラスにアノテートされたjavax.xml.bind.annotation.XmlMimeTypeアノテーションの値へマッピングされます。WSDLから自動生成されたJavaBeanクラスへのマッピングの例を次の図に示します。
図14-2 WSDLから自動生成されたJavaBeanクラスへのマッピング
WSDLからJava型へのマッピングでは,名前空間"xmime"に存在する属性"xmime:expectedContentTypes"を使用しますが,JAX-WSではxsd:import要素による名前空間"xmime"のインポートは不要です。
cjwsgenコマンドで作成したWSDLを使用する場合,必要に応じて名前空間"xmime"をインポートする必要があります。名前空間"xmime"のインポート例を次に示します。
<wsdl:definitions targetNamespace="http://localhost"
xmlns:intf="http://localhost"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xmime="http://www.w3.org/2005/05/xmlmime" ・・・・・・>
<wsdl:types>
<xsd:schema targetNamespace="http://localhost">
<xsd:import namespace="http://www.w3.org/2005/05/xmlmime"/>
<xsd:element name="setPhotoData" type="intf:setPhotoData"/>
<xsd:complexType name="setPhotoData">
<xsd:sequence>
<xsd:element name="in0" type="xsd:base64Binary" xmime:expectedContentTypes="image/jpeg"/>
</xsd:sequence>
</xsd:complexType>
・・・・・・
</xsd:schema>
</wsdl:types>
・・・・・・
|
All Rights Reserved. Copyright (C) 2008, 2011, Hitachi, Ltd.