T.M. SoftStudio

feci quod potui, faciant meliora potentes

JAXB API Интерфейс Unmarshaller

Интерфейс Unmarshaller пакета javax.xml.bind имеет следующие методы.

  • Object unmarshal(java.io.File f)

Object unmarshal(java.io.InputStream is)

Object unmarshal(java.io.Reader reader)

Object unmarshal(java.net.URL url)

Object unmarshal(org.xml.sax.InputSource source)

Object unmarshal(org.w3c.dom.Node node)

Object unmarshal(javax.xml.transform.Source source)

Object unmarshal(javax.xml.stream.XMLStreamReader reader)

Object unmarshal(javax.xml.stream.XMLEventReader reader)

Десериализуют XML-данные из различных источников.

  • <T> JAXBElement<T> unmarshal(org.w3c.dom.Node node,
    Class<T> declaredType)

<T> JAXBElement<T> unmarshal(javax.xml.transform.Source source,
Class<T> declaredType)

<T> JAXBElement<T> unmarshal(javax.xml.stream.XMLStreamReader reader,
Class<T> declaredType)

<T> JAXBElement<T> unmarshal(XMLEventReader reader,
Class<T> declaredType)

Десериализуют XML-данные из различных источников с параметром declaredType, который позволяет осуществлять десериализацию, даже если нет связи "XML-в-Java" в объекте JAXBContext для корневого XML-элемента. Параметр declaredType также переопределяет связь "XML-в-Java" в объекте JAXBContext для корневого XML-элемента.

  • UnmarshallerHandler getUnmarshallerHandler()

Возвращает объект javax.xml.bind.UnmarshallerHandler, реализующий десериализацию как объект org.xml.sax.ContentHandler. Интерфейс UnmarshallerHandler расширяет интерфейс ContentHandler и имеет дополнительно метод Object getResult(), возвращающий результат демаршализации.

  • void setEventHandler(ValidationEventHandler handler)

ValidationEventHandler getEventHandler()

Первый метод устанавливает, второй метод возвращает объект javax.xml.bind.ValidationEventHandler, получающий уведомления об ошибках корректности XML-данных в процессе демаршализации. Интерфейс ValidationEventHandler имеет метод boolean handleEvent(ValidationEvent event), вызываемый реализацией при возникновении ошибки. Интерфейс javax.xml.bind.ValidationEvent представляет ошибки, фатальные ошибки и предупреждения корректности XML-данных и имеет методы:

-- int getSeverity() (возвращает 1 — ошибка, 2 — фатальная ошибка, 3 — предупреждение);
-- String getMessage();
-- Throwable getLinkedException();
-- ValidationEventLocator getLocator().

Интерфейс javax.xml.bind.ValidationEventLocator представляет расположение ошибки и имеет методы URL getURL(), int getOffset(), int getLineNumber(), int getColumnNumber(), Object getObject(), Node getNode().

  • void setProperty(String name, Object value)

Object getProperty(String name)

Устанавливает и возвращает свойства реализации.

  • void setSchema(Schema schema)

Schema getSchema()

Первый метод устанавливает, второй метод возвращает объект javax.xml.validation.Schema, используемый для проверки корректности XML-данных. Если объект Schema является нулевым, тогда функция проверки отключена.

  • void setAdapter(XmlAdapter adapter)

или

<A extends XmlAdapter> void setAdapter(Class<A> type, A adapter)

<A extends XmlAdapter> A getAdapter(Class<A> type)

Первый и второй методы устанавливают, третий метод возвращает объект javax.xml.bind.annotation.adapters.XmlAdapter<ValueType,BoundType>, связывающий Java-тип с XML-представлением. Класс XmlAdapter имеет методы

public abstract BoundType unmarshal(ValueType v)

public abstract ValueType marshal(BoundType v)

конвертирующие XML-тип данных в Java-тип данных и наоборот. Пакет javax.xml.bind.annotation.adapters содержит классы CollapsedStringAdapter, HexBinaryAdapter, NormalizedStringAdapter, расширяющие класс XmlAdapter и адаптирующие XML-типы xsd:token, xsd:hexBinary, xsd:normalizedString к Java-типу String.

  • void setAttachmentUnmarshaller(AttachmentUnmarshaller au)

AttachmentUnmarshaller getAttachmentUnmarshaller()

Первый метод устанавливает, второй метод возвращает объект javax.xml.bind.attachment.AttachmentUnmarshaller, обеспечивающий десериализацию XML-документа, содержащего оптимизированные бинарные данные. Класс AttachmentUnmarshaller имеет методы

public abstract DataHandler getAttachmentAsDataHandler(String cid)

public abstract byte[] getAttachmentAsByteArray(String cid)

возвращающие вложения по ссылке, а также метод public boolean isXOPPackage(), возвращающий true, если обрабатывается XOP-документ.

  • void setListener(Unmarshaller.Listener listener)

Unmarshaller.Listener getListener()

Регистрируется и возвращается объект javax.xml.bind.Unmarshaller.Listener, отвечающий за получение уведомлений в процессе десериализации. Класс Unmarshaller.Listener имеет методы

public void beforeUnmarshal(Object target, Object parent)

public void afterUnmarshal(Object target, Object parent)

оперирующие экземплярами JAXB-классов, связанных с XML-представлением.