JavaTM Platform
Standard Ed. 6

javax.xml.bind.attachment
クラス AttachmentMarshaller

java.lang.Object
  上位を拡張 javax.xml.bind.attachment.AttachmentMarshaller

public abstract class AttachmentMarshaller
extends Object

 

JAXB 整列化プロセスがバイナリデータのストレージを最適化できるようにします。

 

この API は、JAXB 整列化プロセスと MIME ベースパッケージプロセッサ間における、最適化されたバイナリデータ形式の効率的かつ協調的な作成を可能にします。JAXB 実装は MIME ベースパッケージのルート本体を整列化し、参照可能な MIME パートの作成をこの抽象化オブジェクトを実装する MIME ベースパッケージプロセッサに委任します。

 

isXOPPackage() が true の場合、XOP 処理は有効になります。詳細は、addMtomAttachment(DataHandler, String, String) を参照してください。

 

WS-I Attachment Profile 1.0 は、{http://ws-i.org/profiles/basic/1.1/xsd}swaRef に関係する各 JAXB プロパティーに対する marshaller によって呼び出される addSwaRefAttachment(DataHandler) によってサポートされています。

導入されたバージョン:
JAXB 2.0
関連項目:
Marshaller.setAttachmentMarshaller(AttachmentMarshaller), XML-binary Optimized Packaging, WS-I Attachments Profile Version 1.0.

コンストラクタの概要
AttachmentMarshaller()
           
 
メソッドの概要
abstract  String addMtomAttachment(byte[] data, int offset, int length, String mimeType, String elementNamespace, String elementLocalName)
           バイナリ data を、添付として最適化されたバイナリストレージにすることを考慮します。
abstract  String addMtomAttachment(DataHandler data, String elementNamespace, String elementLocalName)
           MIME コンテンツ data を、添付として最適化されたバイナリストレージにすることを考慮します。
abstract  String addSwaRefAttachment(DataHandler data)
           添付として MIME data を追加し、添付のコンテンツ ID、cid を返します。
 boolean isXOPPackage()
           JAXB marshaller が XOP 作成を有効にすべき場合、true を返す読み取り専用プロパティー。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

AttachmentMarshaller

public AttachmentMarshaller()
メソッドの詳細

addMtomAttachment

public abstract String addMtomAttachment(DataHandler data,
                                         String elementNamespace,
                                         String elementLocalName)
 

MIME コンテンツ data を、添付として最適化されたバイナリストレージにすることを考慮します。

isXOPPackage()true の場合、「Creating XOP Packages」のステップ 3 に記載されているとおり、データ型が「base64Binary」である各要素に対し、JAXB 整列化プロセスによってこのメソッドは呼び出されます。

このメソッドの実装者は、data を独立に添付するか、base64Binary データ形式のインラインにするかを決定します。実装が MIME パートとしてバイナリデータのストレージを最適化することを選択した場合、data を MIME ベースパッケージに添付した後、MIME メッセージ内の MIME パートを識別する一意のコンテンツ ID、cid を割り当てることが必要です。このメソッドは cid を返します。これにより、JAXB marshaller は、バイナリデータを整列化する代わりに、その cid を参照する XOP 要素を整列化できます。メソッドが null を返す場合、JAXB marshaller は base64binary データとして data をインラインにします。

このメソッドの呼び出し側は、次の制約を満たす必要があります。data を含む要素情報セット項目に xmime:contentType 属性がある場合、または、data を表現する JAXB プロパティーまたはフィールドが既知の MIME 型で注釈されている場合、data.getContentType() がその MIME 型に設定される必要があります。

elementNamespace および elementLocalName パラメータは、バイナリデータを含むコンテキストを提供します。この情報は、バイナリデータをインラインにするか、添付として最適化するかを決定するために、MIME ベースパッケージプロセッサによって使用される場合があります。

パラメータ:
data - 添付するデータを表現する。null 以外
elementNamespace - base64Binary データを包含する要素の名前空間 URI。null は不可、空は可
elementLocalName - 要素のローカル名。常に null 以外の有効な文字列
戻り値:
data を含む添付を識別する有効なコンテンツ ID URI (RFC 2387を参照)。それ以外の場合、添付が追加されておらず、代わりにメッセージ内にインライン化するべきなら、null
関連項目:
XML-binary Optimized Packaging, Describing Media Content of Binary Data in XML

addMtomAttachment

public abstract String addMtomAttachment(byte[] data,
                                         int offset,
                                         int length,
                                         String mimeType,
                                         String elementNamespace,
                                         String elementLocalName)
 

バイナリ data を、添付として最適化されたバイナリストレージにすることを考慮します。  

コンテンツ型が不明であるため、添付の MIME コンテンツ型を「application/octet-stream」に設定する必要があります。

elementNamespace および elementLocalName パラメータは、バイナリデータを含むコンテキストを提供します。この情報は、バイナリデータをインラインにするか、添付として最適化するかを決定するために、MIME ベースパッケージプロセッサによって使用される場合があります。

パラメータ:
data - 添付するデータを表現する。null 以外。実際のデータ領域は (data,offset,length) タプルによって指定される
offset - 最初のバイトの読み込み先となる配列内のオフセット。array.length 以下の負でない値にする必要がある
length - 指定された配列から読み込むバイト数。array.length 以下の負でない値にする必要がある
mimeType - データに JAXB が認識している MIME 型が関連付けられている場合、それがこのパラメータとして渡される。認識している MIME 型がない場合、「application/octet-stream」。このパラメータは null は不可
elementNamespace - base64Binary データを包含する要素の名前空間 URI。null は不可、空は可
elementLocalName - 要素のローカル名。常に null 以外の有効な文字列
戻り値:
data を含む添付に対するコンテンツ ID URI、cid。データをインライン化するべき場合は null
関連項目:
addMtomAttachment(DataHandler, String, String)

isXOPPackage

public boolean isXOPPackage()
 

JAXB marshaller が XOP 作成を有効にすべき場合、true を返す読み取り専用プロパティー。

 

整列化プロセス中に、この値を変更しないでください。この値が true の場合、整列化プロセスで適切なバイナリデータ型が現れたとき、addMtomAttachment(...) メソッドが呼び出されます。

 

この値が true であり、整列化された XML コンテンツが「Creating XOP Pacakges」のステップ 1 に違反した場合 、Marshaller.marshal() は IllegalStateException をスローします (http://www.w3.org/TR/2005/REC-xop10-20050125/#creating_xop_packages)。「Ensure the Original XML Infoset contains no element information item with a [namespace name] of "http://www.w3.org/2004/08/xop/include" and a [local name] of Include (元の XML 情報セットに、[namespace name] が「http://www.w3.org/2004/08/xop/include」で、[local name] が Include である要素情報項目が含まれないようにすること)」  

このメソッドが true を返し、整列化プロセス中、最低 1 回の addMtomAttachment(...) 呼び出しがコンテンツ ID を返した場合、MIME ベースパッケージプロセッサは、「Creating XOP Pacakges」のステップ 5 に記載されているとおり、application/xop+xml メディアタイプをルート部分にラベル付けする必要があります。

戻り値:
MIME コンテキストが XOP パッケージの場合、true

addSwaRefAttachment

public abstract String addSwaRefAttachment(DataHandler data)
 

添付として MIME data を追加し、添付のコンテンツ ID、cid を返します。

このメソッドは、{http://ws-i.org/profiles/basic/1.1/xsd}swaRef 型であるそれぞれの要素/属性に対する JAXB 整列化プロセスによって呼び出されます。このメソッドを実装する MIME ベースパッケージプロセッサは、指定されたデータを MIME 添付に添付し、MIME ベースパッケージ内でその添付を一意に識別するコンテンツ ID、cid を生成します。  

呼び出し側は、返されたコンテンツ ID、cid を、整列化された XML コンテンツに挿入します。

パラメータ:
data - 添付するデータを表現する。null 以外
戻り値:
cid として使用される有効な URI。WS-I Attachments Profile Version 1.0. の準拠要件 R2928 を満たすこと

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。