3 Nisan 2018 Salı

JAXB Marshaller Sınıfı

constructor
JaXBContext tarafından yaratılır.Şöyle yaparız.
JAXBContext context = ...;
Marshaller marshaller = context.createMarshaller();
Eğer girdi olarak verilen nesne metadata'ya yani anotasyonlara sahip değilse marshall() metoduna root element parametre olarak verilmelidir.

JAXB ve XStream karşılaştırması burada.

marshall metodu - Object + Node
Şöyle yaparız.
DOMResult result = new DOMResult();
marshaller.marshal(foo, result);
return ((Document)res.getNode()).getDocumentElement();
DOMResult nesnesini Document nesnesine çevirmek için şöyle yaparız.
Document document = (Document)result.getNode();
marshall metodu - Object + File
Şöyle yaparız.
File file = new File("test.xml");
marshaller.marshal(foo, file);
marshall metodu - Object + Writer
Örnek
Şöyle yaparız.
StringWriter writer = new StringWriter();
marshaller.marshal(foo, writer);
Örnek
Şöyle yaparız.
Resource resource = new Resource();
JAXBElement<Object> jaxbElement = new JAXBElement<Object>(QName.valueOf("resource"),
  Object.class, resource);

Marshaller marshaller = jc.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(jaxbElement, System.out);
Çıktı olarak şunu alırız.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="some_item"/>
setProperty metodu
Şöyle yaparız.
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);

Hiç yorum yok:

Yorum Gönder