javax.xml.bind.annotation.XmlMimeTypeアノテーションは,Java型とMIMEタイプの関連づけに使用されるJAXBのアノテーションで,javax.xml.ws.soap.MTOMアノテーションを使用する場合で,Java型とMIMEタイプを関連づけるときに使用します。
javax.xml.bind.annotation.XmlMimeTypeアノテーションは,SEIや暗黙のSEIがあるWebサービス実装クラスが持つサービスメソッドの引数,戻り値,またはユーザ定義型のgetterメソッドに指定できます。それ以外の個所(暗黙のSEIがないWebサービス実装クラスが持つサービスメソッドの引数,戻り値,ユーザ定義例外のフィールドなど)に指定した場合は動作が保証されません。
javax.xml.bind.annotation.XmlMimeTypeアノテーションをSEIなどにアノテートしている場合,Webサービス側のJAX-WSエンジンが発行するWSDLファイルやcjwsgenツールが生成するWSDLファイルは,javax.xml.bind.annotation.XmlMimeTypeアノテーションをアノテートしたJava型に対応するスキーマの要素に,アノテーションのvalue要素に指定した値を持つxmime:expectedContentTypes属性が付与されます。
javax.xml.bind.annotation.XmlMimeTypeアノテーションを使用した例を次の図に示します。
図16-19 javax.xml.bind.annotation.XmlMimeTypeアノテーションを使用した例
Java型とMIMEタイプを関連づけない場合,javax.xml.bind.annotation.XmlMimeTypeアノテーションをアノテートする必要はありません。そのとき,MTOM/XOP仕様形式の添付ファイルで送信されるメッセージの添付ファイルパートにあるContent-Typeフィールドの値は,Java型に対応する初期値が使用されます。
javax.xml.bind.annotation.XmlMimeTypeアノテーションを使用しない例を次の図に示します。
図16-20 javax.xml.bind.annotation.XmlMimeTypeアノテーションを使用しない例
javax.xml.bind.annotation.XmlMimeTypeアノテーションをアノテートし,MIMEタイプを関連づけることができるJava型とその指定個所を次の表に示します。なお,それ以外の型にjavax.xml.bind.annotation.XmlMimeTypeアノテーションをアノテートした場合の動作は保証されません。
表16-17 MIMEタイプを関連づけることができるJava型とその指定個所
項番 | Java型 | 関連づけの可否 | 指定個所 | |||
---|---|---|---|---|---|---|
メソッド引数 | メソッド戻り値 | ユーザ定義型のフィールド | ユーザ定義例外のフィールド | |||
1 | java.awt.Image | ○※1 | ○ | ○ | △※2 | ×※3 |
2 | javax.xml.transform.Source | ○ | ○ | ○ | △※2 | ×※3 |
3 | javax.activation.DataHandler | ○ | ○ | ○ | △※2 | ×※3 |
4 | java.awt.Imageの配列型 | △※4 | ○ | ○ | △※2 | ×※3 |
5 | javax.activation.DataHandlerの配列型 | △※4 | ○ | ○ | △※2 | ×※3 |
6 | java.util.List<Image> | ○ | ○ | ○ | △※2 | ×※3 |
7 | java.util.List<DataHandler> | ○ | ○ | ○ | △※2 | ×※3 |
8 | javax.xml.ws.Holder<Image> | ○ | ○ | ×※5 | ×※5 | ×※5 |
9 | javax.xml.ws.Holder<Source> | ○ | ○ | ×※5 | ×※5 | ×※5 |
10 | javax.xml.ws.Holder<DataHandler> | ○ | ○ | ×※5 | ×※5 | ×※5 |
package com.sample; |
value要素は,javax.xml.bind.annotation.XmlMimeTypeアノテーションをアノテートしたJava型に関連づけるMIMEタイプのテキスト表現を指定します。
指定するMIMEタイプは,アノテーションをアノテートしたJava型に対して適切なMIMEタイプでなければなりません。指定するMIMEタイプが適切ではない場合や複数のMIMEタイプをコンマ区切りで記述した場合,動作は保証されません。また,指定するMIMEタイプには,"text/xml"および"application/xml"のcharsetパラメタを除いて,パラメタを記述しないでください。"text/xml"および"application/xml"のcharsetパラメタ以外のパラメタを記述した場合,動作は保証されません。
Java型に指定できるMIMEタイプを次の表に示します。
表16-18 Java型に指定できるMIMEタイプ
項番 | Java型 | value要素に指定できるMIMEタイプ |
---|---|---|
1 | java.awt.Image,java.awt.Imageの配列型,java.util.List<Image>,またはjavax.xml.ws.Holder<Image> | image/png※1 |
2 | image/jpeg※1 | |
3 | image/*※2 | |
4 | javax.xml.transform.Sourceまたはjavax.xml.ws.Holder<Source> | text/xml※3 |
5 | application/xml | |
6 | javax.activation.DataHandler,javax.activation.DataHandlerの配列型,java.util.List<DataHandler>,またはjavax.xml.ws.Holder<DataHandler> | 上記以外※4 |