|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.xml.bind.attachment.AttachmentMarshaller
public abstract class AttachmentMarshaller
啟用 JAXB 編組來優化二進制資料存儲。
此 API 支持 JAXB 編組過程與基於 MIME 的套件處理器之間的協作,有效地創建優化的二進制資料格式。JAXB 實作對基於 MIME 的套件的根正文進行編組,將可參考 MIME 部分的創建委託給實作此抽象的基於 MIME 的套件處理器。
當 isXOPPackage()
為 true 時啟用 XOP 處理。有關詳細資訊,請參閱 addMtomAttachment(DataHandler, String, String)
。
addSwaRefAttachment(DataHandler)
支持 WS-I Attachment Profile 1.0,編組程序針對每個與 {http://ws-i.org/profiles/basic/1.1/xsd}swaRef 相關的 JAXB 屬性調用該方法。
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 編組器應該啟用 XOP 創建,則返回 true。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
建構子詳細資訊 |
---|
public AttachmentMarshaller()
方法詳細資訊 |
---|
public abstract String addMtomAttachment(DataHandler data, String elementNamespace, String elementLocalName)
將用於優化二進制存儲的 MIME 內容 data
作為附件。
正如 Creating XOP Packages 中的步驟 3 所述,當 isXOPPackage()
為 true
時,JAXB 編組過程針對每個資料型別為 "base64Binary" 的元素調用此方法。
方法實作程序決定是將 data
單獨附加還是作為 base64Binary 資料內嵌。如果實作選擇將二進制資料存儲作為 MIME 的一部分進行優化,則實作負責將 data
附加到基於 MIME 的套件中,然後分派一個唯一的內容 id(即 cid),用來標識 MIME 訊息中的 MIME 部分。此方法返回 cid,cid 使 JAXB 編組程序能夠編組一個參考該 cid 的 XOP 元素,而不是編組二進制資料。當該方法返回 null 時,JAXB 編組程序將 data
作為 base64binary 資料內嵌。
此方法的調用程序要求滿足以下約束條件。如果包含 data
的元素 infoset 項具有屬性 xmime:contentType
,或者代表 data
的 JAXB 屬性/欄位使用已知的 MIME 型別進行註解,則 data.getContentType()
應該被設置為 MIME 型別。
elementNamespace
和 elementLocalName
參數提供包含二進制資料的上下文。基於 MIME 的套件處理器可以使用此資訊,以確定二進制資料應該被內嵌還是作為附件優化。
data
- 表示將被附加的資料。必須為非 null。elementNamespace
- 封裝 base64Binary 資料的元素名稱空間 URI。可以為空但不能為 null。elementLocalName
- 元素的本地名稱。始終是非 null 的有效字元串。
data
的附件。如果沒有添加附件,而是應該內嵌在訊息中,則返回 null。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 型別,則使用此參數傳遞。如果全部類別型未知,則使用「application/octet-stream」。此參數不可以為 null。elementNamespace
- 封裝 base64Binary 資料的元素名稱空間 URI。可以為空但不能為 null。elementLocalName
- 元素的本地名稱。始終是非 null 的有效字元串。
data
的附件的內容 id URI(即 cid);如果資料應該內嵌,則返回 null。addMtomAttachment(DataHandler, String, String)
public boolean isXOPPackage()
只讀屬性,如果 JAXB 編組器應該啟用 XOP 創建,則返回 true。
編組過程中此值不得更改。如果此值為 true,則當編組過程遇到適當的二進制資料型別時,將調用 addMtomAttachment(...)
方法。
如果此值為 true
且要編組的 XML 內容違反 Creating XOP Pacakgeshttp://www.w3.org/TR/2005/REC-xop10-20050125/#creating_xop_packages 中的步驟 1,則 Marshaller.marshal() 必須拋出 IllegalStateException。步驟 1 中寫道:“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”。
若此方法返回 true,並且在編組過程中至少有一次調用 addMtomAttachment(...)
返回內容 id,則根據 Creating XOP Pacakges 中步驟 5 的描述,基於 MIME 的套件處理器必須使用 application/xop+xml 媒體型別來標記根部分。
public abstract String addSwaRefAttachment(DataHandler data)
將 MIME data
作為附件添加,並返回附件的內容 id(即 cid)。
JAXB 編組過程針對每個歸類別為 {http://ws-i.org/profiles/basic/1.1/xsd}swaRef 的元素/屬性調用此方法。實作此方法的基於 MIME 的套件處理器負責將指定的資料附加到 MIME 附件中,並產生一個內容 id(即 cid),用來唯一地標識基於 MIME 的套件內的附件。
調用程序將返回內容 id(即 cid)插入正在編組的 XML 內容中。
data
- 表示將被附加的資料。必須為非 null。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。