添付ファイルからSOAPメッセージをマッピングするときの注意事項について説明します。
MIMEパートは1個のルートパートと0個以上の添付ファイルパートで構成されます。
ルートパートは,MIMEパートの先頭に記述されます。ルートパートのあとに,添付ファイルパートが記述されます。
添付ファイルパートでは,Javaインタフェースで指定された引数や戻り値がマッピングされます。Javaインタフェースの指定内容と添付ファイルパートでの記述順序の対応を次の表に示します。
表28-8 Javaインタフェースの指定内容と添付ファイルパートの記述順序
項番 | Javaインタフェースでの指定個所 | 添付ファイルパートの記述順序 |
---|---|---|
1 | メソッド引数 | メソッド引数に指定された順に記述されます。 |
2 | メソッド戻り値 | 添付ファイルパートの先頭に記述されます。 |
3 | 配列型 | 配列内の要素順に記述されます。 |
4 | ユーザ定義型 | ユーザ定義型内での指定順に記述されます。 ユーザ定義型の中で指定したユーザ定義型で,添付ファイルのJava型を指定するときは,深さ優先順で添付ファイルパートが記述されます。 |
Javaインタフェースと添付ファイルパートのマッピング例を示します。
図28-5 Javaインタフェースと添付ファイルパートのマッピング例
ルートパートのSOAPボディに記述されるCID URLスキームには,対応する添付ファイルパートのContent-Idが記述されます。Content-Idによって,ルートパートから対応する添付ファイルパートが参照されます。
添付ファイル付きSOAPメッセージの一部を示します。太字部分がCID URLスキームと,対応する添付ファイルパートのContent-Idになります。
--uuid:73a28380-5de5-45e8-af15-c879e65d62a0 |
添付ファイルの拡張子と,デフォルトで設定されるMIMEタイプのマッピングを次の表に示します。
表28-9 添付ファイルの拡張子とMIMEタイプの対応表
項番 | 添付ファイルの拡張子 | 設定されるMIMEタイプ |
---|---|---|
1 | html,htm | text/html |
2 | txt,text | text/plain |
3 | gif,GIF | image/gif |
4 | ief | image/ief |
5 | jpeg,jpg,jpe,JPG | image/jpeg |
6 | tiff,tif | image/tiff |
7 | xwd | image/x-xwindowdump |
8 | ai,eps,ps | application/postscript |
9 | rtf | application/rtf |
10 | tex | application/x-tex |
11 | texinfo,texi | application/x-texinfo |
12 | t,tr,roff | application/x-troff |
13 | au | audio/basic |
14 | midi,mid | audio/midi |
15 | aifc | audio/x-aifc |
16 | aif,aiff | audio/x-aiff |
17 | wav | audio/x-wav |
18 | mpeg,mpg,mpe | video/mpeg |
19 | qt,mov | video/quicktime |
20 | avi | video/x-msvideo |
この表にない拡張子を指定した場合,MIMEタイプは「application/octet-stream」が設定されます。
Javaインタフェースに指定する添付ファイルのデータサイズがnullの場合と,0バイト以上のデータがある場合では,添付ファイルパートへのマッピング方法が異なります。それぞれの場合のマッピングについて説明します。
添付ファイルのデータサイズがnullの場合,添付ファイルパートにマッピングされません。MIMEパートを生成しないで,SOAPエンベロープだけが記述されます。また,SOAPボディの該当する引数の要素には,空の要素が指定されます。
添付ファイルのデータサイズがnullの場合のマッピング例を示します。
... |
<?xml version="1.0" ?> |
添付ファイルのデータサイズが0バイト以上の場合,添付ファイルパートにマッピングされます。この場合,ルートパートと添付ファイルパートから構成されるマルチパートとなります。Javaインタフェースで複数の添付ファイルを指定している場合は,添付ファイルパートは複数記述されます。ただし,0バイトの場合は,添付ファイルパート内のMIMEボディは空となります。