Spec-Zone.ru › OpenJDK 8

Класс Binder<XmlNode>

  • java.lang.Object
    • javax.xml.bind.Binder<XmlNode>

public abstract class Binder<XmlNode>
extends Object

Включить синхронизацию между узлами информационной модели XML и объектами JAXB, представляющими тот же XML-документ.

Экземпляр этого класса сохраняет связь между узлами XML информационной модели и представлением XML-документа в JAXB. Переход между двумя представлениями обеспечивается методами getXMLNode(Object) и getJAXBNode(Object).

Изменения могут быть внесены в представление информационной модели или представление документа в JAXB, при этом другое представление остаётся неизменным. Binder может синхронизировать внесенные изменения в изменённом представлении обратно в другое представление с помощью соответствующих методов обновления Binder, updateXML(Object, Object) или updateJAXB(Object).

Типичный сценарий использования следующий:

  • загрузка XML-документа в представление XML-информационной модели
  • unmarshal(Object) представление XML-информационной модели в представление JAXB. (Для экономии ресурсов можно выполнить разбор только поддерева представления XML-информационной модели в представление JAXB.)
  • доступ/обновление приложения к представлению XML-документа в JAXB.
  • updateXML(Object) синхронизирует изменения в представлении JAXB обратно в представление XML-информационной модели. Операция обновления сохраняет как можно больше из исходной XML-информационной модели (т.е. комментарии, PI и т. д.).

Экземпляр Binder создаётся с помощью фабричного метода JAXBContext.createBinder() или JAXBContext.createBinder(Class).

Параметр шаблона XmlNode, является корневым интерфейсом/классом для сохраняющего представление XML-информационной модели. Реализация Binder должна минимально поддерживать значение XmlNode равно org.w3c.dom.Node.class. Реализация Binder может поддерживать альтернативные сохраняющие представления XML-информационной модели.

С:
JAXB 2.0

Конструкторы

Конструктор и описание
Binder()

Методы

Модификатор и тип Метод и описание
abstract ValidationEventHandler getEventHandler()

Возвращает текущего обработчика событий или обработчика по умолчанию, если он не был установлен.

abstract Object getJAXBNode(XmlNode xmlNode)

Получает объект JAXB, связанный с заданным XML-элементом.

abstract Object getProperty(String name)

Получает определённое свойство в базовой реализации Binder.

abstract Schema getSchema()

Получает последний объект Schema (включая null), установленный методом setSchema(Schema).

abstract XmlNode getXMLNode(Object jaxbObject)

Получает XML-элемент, связанный с заданным объектом JAXB.

abstract void marshal(Object jaxbObject, XmlNode xmlNode)

Сериализует дерево объекта JAXB в новый XML-документ.

abstract void setEventHandler(ValidationEventHandler handler)

Разрешает приложению зарегистрировать ValidationEventHandler.

abstract void setProperty(String name, Object value)

Устанавливает определённое свойство в базовой реализации Binder.

abstract void setSchema(Schema schema)

Указывает, выполняют ли методы marshal, unmarshal и update валидацию своего XML-содержимого.

abstract Object unmarshal(XmlNode xmlNode)

Десериализует представление XML-информационной модели в дерево объекта JAXB.

abstract <T> JAXBElement<T> unmarshal(XmlNode xmlNode, Class<T> declaredType)

Десериализует XML-корневой элемент по предоставленному declaredType в дерево объекта JAXB.

abstract Object updateJAXB(XmlNode xmlNode)

Принимает узел XML и обновляет связанный объект JAXB и его потомков.

abstract XmlNode updateXML(Object jaxbObject)

Принимает объект JAXB и обновляет связанный с ним узел XML и его потомков.

abstract XmlNode updateXML(Object jaxbObject, XmlNode xmlNode)

Изменения в дереве объекта JAXB обновляются в связанном дереве разбора XML.

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Конструкторы

Binder

public Binder()

Методы

unmarshal

Разбор XML-информационного набора в представление дерева объектов JAXB.

Этот метод аналогичен методу Unmarshaller.unmarshal(Node) с добавлением поддержания связи между XML-узлами и созданными объектами JAXB, что позволяет выполнять будущие операции обновления, такие как updateXML(Object, Object) или updateJAXB(Object).

Если getSchema() не равен null, xmlNode и его потомки проверяются во время этой операции.

Этот метод выбрасывает исключение UnmarshalException, если у Binder's JAXBContext нет сопоставления для имени XML-элемента или типа, определяемого через @xsi:type, от xmlNode к классу, сопоставленному с JAXB. Метод unmarshal(Object, Class) позволяет приложению указать класс, сопоставленный с JAXB, к которому xmlNode должен быть сопоставлен.

Параметры:
xmlNode - документ/элемент для разбора XML-данных.
Возвращает:
новый корневой объект дерева объектов JAXB.
Исключения:
JAXBException - Если при разборе произошли непредвиденные ошибки.
UnmarshalException - Если ValidationEventHandler возвращает false из своего метода handleEvent или Binder не может выполнить привязку XML к Java.
IllegalArgumentException - Если параметр node равен null.

unmarshal

Разбор корневого элемента XML с помощью указанного declaredType в дерево объектов JAXB.

Реализует Разбор по объявленному типу

Этот метод аналогичен Unmarshaller.unmarshal(Node, Class) с добавлением поддержания связи между XML-узлами и созданными объектами JAXB, что позволяет выполнять будущие операции обновления, такие как updateXML(Object, Object) или updateJAXB(Object).

Если getSchema() не равен null, xmlNode и его потомки проверяются во время этой операции.

Параметры:
xmlNode - документ/элемент для разбора XML-данных.
declaredType - соответствующий класс, сопоставленный с JAXB, для хранения XML-данных node.
Возвращает:
JAXB Element представление node
Исключения:
JAXBException - Если при разборе произошли непредвиденные ошибки.
UnmarshalException - Если ValidationEventHandler возвращает false из метода handleEvent или Binder не может выполнить привязку XML к Java.
IllegalArgumentException - Если любой из входных параметров равен null.
С:
JAXB2.0

marshal

public abstract void marshal(Object jaxbObject,
                             XmlNode xmlNode)
                      throws JAXBException

Преобразование дерева объектов JAXB в новый XML-документ.

Этот метод аналогичен Marshaller.marshal(Object, Node) с добавлением поддержания связи между объектами JAXB и созданными XML-узлами, что позволяет выполнять будущие операции обновления, такие как updateXML(Object, Object) или updateJAXB(Object).

Если getSchema() не равен null, генерируемое XML-содержимое проверяется во время этой операции.

Параметры:
jaxbObject - дерево содержимого для преобразования.
xmlNode - параметр должен быть узлом, принимающим дочерние узлы.
Исключения:
JAXBException - Если при преобразовании возникла непредвиденная проблема.
MarshalException - Если ValidationEventHandler возвращает false из метода handleEvent или Binder не может выполнить преобразование jaxbObject (или любого объекта, доступного из jaxbObject).
IllegalArgumentException - Если какой-либо из параметров метода равен null.

getXMLNode

public abstract XmlNode getXMLNode(Object jaxbObject)

Получение XML-элемента, связанного с заданным объектом JAXB.

После того, как дерево объектов JAXB было связано с фрагментом XML, этот метод позволяет перемещаться между двумя деревьями.

Связь между XML-элементом и объектом JAXB устанавливается методами привязки и обновления. Обратите внимание, что эта связь частичная; не все XML-элементы имеют связанные объекты JAXB, и не все объекты JAXB имеют связанные XML-элементы.

Параметры:
jaxbObject - экземпляр, доступный по результатам вызова метода привязки или обновления, который возвратил дерево объектов JAXB.
Возвращает:
null, если указанный объект JAXB неизвестен этому Binder, или если он не связан с XML-элементом.
Исключения:
IllegalArgumentException - Если параметр jaxbObject равен null.

getJAXBNode

public abstract Object getJAXBNode(XmlNode xmlNode)

Получение объекта JAXB, связанного с заданным XML-элементом.

После того, как дерево объектов JAXB было связано с фрагментом XML, этот метод позволяет перемещаться между двумя деревьями.

Связь между XML-элементом и объектом JAXB устанавливается методами разбора, преобразования и обновления. Обратите внимание, что эта связь частичная; не все XML-элементы имеют связанные объекты JAXB, и не все объекты JAXB имеют связанные XML-элементы.

Возвращает:
null, если указанный XML-узел неизвестен этому Binder, или если он не связан с объектом JAXB.
Исключения:
IllegalArgumentException - Если параметр node равен null.

updateXML

public abstract XmlNode updateXML(Object jaxbObject)
                           throws JAXBException

Принимает объект JAXB и обновляет его связанный XML-узел и его потомков.

Это удобный метод:

updateXML( jaxbObject, getXMLNode(jaxbObject));
Исключения:
JAXBException - Если при обновлении соответствующего XML-содержимого возникла непредвиденная проблема.
IllegalArgumentException - Если параметр jaxbObject равен null.

updateXML

public abstract XmlNode updateXML(Object jaxbObject,
                                  XmlNode xmlNode)
                           throws JAXBException

Изменения в дереве объектов JAXB обновляются в связанном дереве разбора XML.

Эту операцию можно рассматривать как «неразрушающее» преобразование. Разница заключается в том, что вместо создания нового XML-дерева эта операция обновляет существующее дерево, по возможности повторно используя объекты JAXB.

Например, неизвестные элементы/атрибуты в XML, которые не были привязаны к JAXB, останутся нетронутыми (в то время как операция преобразования создаст новое дерево, не содержащее ни одного из них).

В качестве побочного эффекта эта операция обновляет связь между XML-узлами и объектами JAXB.

Параметры:
jaxbObject - корень потенциально изменённого дерева объектов JAXB
xmlNode - корень целевого XML-дерева обновления
Возвращает:
обновлённый XML-узел. Как правило, это тот же узел, что вы передали как xmlNode, но это может быть другой объект, например, когда имя тега объекта изменилось.
Исключения:
JAXBException - Если при обновлении соответствующего XML-содержимого возникла непредвиденная проблема.
IllegalArgumentException - Если любой из входных параметров равен null.

updateJAXB

public abstract Object updateJAXB(XmlNode xmlNode)
                           throws JAXBException

Принимает XML-узел и обновляет его связанный объект JAXB и его потомков.

Эту операцию можно рассматривать как «неразрушающее» разбор. Разница заключается в том, что вместо создания нового дерева JAXB, эта операция обновляет существующее дерево, по возможности повторно используя объекты JAXB.

В качестве побочного эффекта эта операция обновляет связь между XML-узлами и объектами JAXB.

Возвращает:
обновлённый объект JAXB. Как правило, это тот же объект, что и был возвращён предыдущим вызовом метода marshal(Object,Object) или updateJAXB(Object), но это может быть другой объект, например, когда имя XML-элемента изменилось.
Исключения:
JAXBException - Если при обновлении соответствующего содержимого, сопоставленного с JAXB, возникла непредвиденная проблема.
IllegalArgumentException - Если параметр node равен null.

setSchema

public abstract void setSchema(Schema schema)

Указывает, выполняют ли методы преобразования, разбора и обновления проверку XML-содержимого.

Параметры:
schema - установить в null для отключения проверки.
См. также:
Unmarshaller.setSchema(Schema)

getSchema

public abstract Schema getSchema()

Возвращает последний объект Schema (включая null), установленный методом setSchema(Schema).

Возвращает:
объект Schema для проверки или null, если его нет

setEventHandler

public abstract void setEventHandler(ValidationEventHandler handler)
                              throws JAXBException

Разрешает приложению зарегистрировать обработчик событий валидации.

Обработчик событий будет вызываться поставщиком JAXB в случае возникновения ошибок валидации при вызовах методов Binder разбора, преобразования и обновления.

Вызов этого метода с параметром null приведет к тому, что Binder вернётся к обработчику событий по умолчанию.

Параметры:
handler - обработчик событий валидации.
Исключения:
JAXBException - если при установке обработчика событий возникла ошибка.

getEventHandler

public abstract ValidationEventHandler getEventHandler()
                                                throws JAXBException

Возвращает текущий обработчик событий или обработчик событий по умолчанию, если он не был установлен.

Возвращает:
текущий ValidationEventHandler или обработчик событий по умолчанию, если он не был установлен.
Исключения:
JAXBException - если при получении текущего обработчика событий возникла ошибка.

setProperty

public abstract void setProperty(String name,
                                 Object value)
                          throws PropertyException

Установите конкретное свойство в базовой реализации Binder. Этот метод может использоваться только для установки одного из стандартных свойств разбора/сериализации, определённых JAXB, или свойства, специфичного для поставщика, для связки, разбора или сериализации. Попытка установить неопределённое свойство приведёт к выбрасыванию исключения PropertyException. См. Поддерживаемые свойства разбора и Поддерживаемые свойства сериализации.

Параметры:
name — имя свойства, которое необходимо установить. Это значение может быть указано с помощью одного из постоянных полей или строки, введённой пользователем.
value — значение свойства, которое необходимо установить
Исключения:
PropertyException — при возникновении ошибки при обработке заданного свойства или значения
IllegalArgumentException — если параметр name имеет значение null

getProperty

public abstract Object getProperty(String name)
                            throws PropertyException

Получить конкретное свойство в базовой реализации Binder. Этот метод может использоваться только для получения одного из стандартных свойств разбора/сериализации, определённых JAXB, или свойства, специфичного для поставщика, для связки, разбора или сериализации. Попытка получить неопределённое свойство приведёт к выбрасыванию исключения PropertyException. См. Поддерживаемые свойства разбора и Поддерживаемые свойства сериализации.

Параметры:
name — имя свойства для извлечения
Возвращает:
значение запрашиваемого свойства
Исключения:
PropertyException — при возникновении ошибки при извлечении заданного свойства или значения имени свойства
IllegalArgumentException — если параметр name имеет значение null

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API