Класс AttachmentMarshaller
- java.lang.Object
-
- javax.xml.bind.attachment.AttachmentMarshaller
public abstract class AttachmentMarshaller extends Object
Включить JAXB маппинг для оптимизации хранения двоичных данных.
Этот API обеспечивает эффективное совместное создание оптимизированных форматов двоичных данных между процессом JAXB маппинга и процессором пакета на основе MIME. JAXB реализация маппирует корневое тело пакета на основе MIME, делегируя создание ссылочных MIME частей процессору пакета на основе MIME, который реализует эту абстракцию.
Обработка XOP включена, когда isXOPPackage() равна true. Подробности см. в addMtomAttachment(DataHandler, String, String).
Профиль приложений WS-I Attachment 1.0 поддерживается addSwaRefAttachment(DataHandler), вызываемым маппером для каждой JAXB свойства, связанной с {http://ws-i.org/profiles/basic/1.1/xsd}swaRef.
- Since:
- JAXB 2.0
- См. также:
-
Marshaller.setAttachmentMarshaller(AttachmentMarshaller), XML-binary Optimized Packaging, Профиль приложений WS-I Attachments Версия 1.0.
Конструкторы
| Конструктор и описание |
|---|
AttachmentMarshaller()
|
Методы
| Модификатор и тип | Метод и описание |
|---|---|
abstract String |
addMtomAttachment(byte[] data,
int offset,
int length,
String mimeType,
String elementNamespace,
String elementLocalName) Рассмотреть двоичные данные |
abstract String |
addMtomAttachment(DataHandler data,
String elementNamespace,
String elementLocalName) Рассмотреть MIME содержимое |
abstract String |
addSwaRefAttachment(DataHandler data) Добавить MIME |
boolean |
isXOPPackage() Только для чтения свойство, которое возвращает true, если JAXB маппер должен включить создание XOP. |
Методы, унаследованные от класса 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 для оптимизации хранения двоичных данных как вложения.
Этот метод вызывается процессом JAXB маппинга, когда isXOPPackage() равен true, для каждого элемента, чье тип данных является "base64Binary", как описано в шаге 3 в Создание пакетов XOP.
Реализующий метод определяет, будет ли data прикрепляться отдельно или вставляться как данные base64Binary. Если реализация выбирает оптимизировать хранение двоичных данных как MIME часть, она отвечает за прикрепление data к пакету на основе MIME, а затем присвоение уникального идентификатора содержимого, cid, который идентифицирует MIME часть в сообщении MIME. Этот метод возвращает cid, что позволяет JAXB мапперу маппить XOP элемент, который ссылается на этот cid вместо маппинга двоичных данных. Когда метод возвращает null, JAXB маппер встраивает data как данные base64binary.
Отправитель этого метода обязан удовлетворить следующему ограничению. Если элемент infoset, содержащий data, имеет атрибут xmime:contentType, или если JAXB свойство/поле, представляющее data, аннотировано известным типом MIME, то data.getContentType() должно быть установлено на этот тип MIME.
Параметры elementNamespace и elementLocalName предоставляют контекст, содержащий двоичные данные. Эта информация может быть использована процессором пакета на основе MIME для определения, должны ли двоичные данные быть вставлены или оптимизированы как вложение.
- Параметры:
-
data- представляет данные, которые будут прикреплены. Должен быть не null. -
elementNamespace- URI пространства имен элемента, который включает данные base64Binary. Может быть пустым, но никогда не null. -
elementLocalName- Локальное имя элемента. Всегда не пустая допустимая строка. - Возвращает:
- действительный URI идентификатора содержимого (см. RFC 2387), который идентифицирует вложение, содержащее
data. В противном случае null, если вложение не было добавлено и должно быть вставлено в сообщение. - См. также:
- XML-binary Optimized Packaging, Описание медиа-содержимого двоичных данных в 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- Если у данных есть ассоциированный MIME тип, известный JAXB, он передается в качестве этого параметра. Если ни один не известен, "application/octet-stream". Этот параметр никогда не может быть null. -
elementNamespace- URI пространства имен элемента, который включает данные base64Binary. Может быть пустым, но никогда не null. -
elementLocalName- Локальное имя элемента. Всегда не пустая допустимая строка. - Возвращает:
- URI идентификатора содержимого, cid, вложения, содержащего
data, или null, если данные должны быть вставлены. - См. также:
addMtomAttachment(DataHandler, String, String)
isXOPPackage
public boolean isXOPPackage()
Только для чтения свойство, которое возвращает true, если JAXB маппер должен включить создание XOP.
Это значение не должно меняться во время процесса маппинга. Когда это значение равно true, метод addMtomAttachment(...) вызывается, когда соответствующие двоичные типы данных встречаются в процессе маппинга.
Marshaller.marshal() должен бросить IllegalStateException, если это значение равно true и XML содержимое, которое должно быть маппировано, нарушает шаг 1 в Создание пакетов XOP http://www.w3.org/TR/2005/REC-xop10-20050125/#creating_xop_packages. "Убедитесь, что исходный XML Infoset не содержит элемент информации с [именем пространства имен] "http://www.w3.org/2004/08/xop/include" и [локальным именем] Include"
Когда этот метод возвращает true и во время процесса маппинга по крайней мере один вызов addMtomAttachment(...) возвращает идентификатор содержимого, процессор пакета на основе MIME должен пометить корневую часть типом медиа application/xop+xml, как описано в шаге 5 в Создание пакетов XOP.
- Возвращает:
- true, когда контекст MIME является пакетом XOP.
addSwaRefAttachment
public abstract String addSwaRefAttachment(DataHandler data)
Добавить MIME data как вложение и вернуть идентификатор содержимого вложения, cid.
Этот метод вызывается процессом JAXB маппинга для каждого элемента/атрибута, типизированного как {http://ws-i.org/profiles/basic/1.1/xsd}swaRef. Процессор пакета на основе MIME, реализующий этот метод, отвечает за прикрепление указанных данных к MIME вложению и создание идентификатора содержимого, cid, который уникально идентифицирует вложение в пакете на основе MIME.
Отправитель вставляет возвращенный идентификатор содержимого, cid, в XML содержимое, которое маппится.
- Параметры:
-
data- представляет данные, которые будут прикреплены. Должен быть не null. - Возвращает:
- должен быть действительный URI, используемый в качестве cid. Должен удовлетворять требованию соответствия R2928 из Профиль приложений WS-I Attachments Версия 1.0.
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.