xsd:schema要素のサポート範囲を説明します。
WSDLのスキーマ宣言であるxsd:element要素のtype属性に"xsd:base64Binary"を指定している場合,xmime:expectedContentTypes属性を用いてMIMEタイプを明示的に指定することで,Base64形式のデータをMIMEタイプに対応したJava型に関連づけることができます。WSDLのスキーマ宣言であるxsd:element要素に対するxmime:expectedContentTypes属性の記述可否を次の表に示します。
表20-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型へのマッピング例を次の図に示します。
図20-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型の関係を次の表に示します。
表20-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クラスへのマッピングの例を次の図に示します。
図20-2 WSDLから自動生成されたJavaBeanクラスへのマッピング
WSDLからJava型へのマッピングでは,名前空間"xmime"に存在する属性"xmime:expectedContentTypes"を使用しますが,JAX-WSではxsd:import要素による名前空間"xmime"のインポートは不要です。
cjwsgenコマンドで作成したWSDLを使用する場合,必要に応じて名前空間"xmime"をインポートする必要があります。名前空間"xmime"のインポート例を次に示します。
<wsdl:definitions targetNamespace="http://localhost" |