Giriş
Bazı notlar
Örnek - Aynı Nesne Listesi Wrapper Tag İçinde
Eğer nesne listesi kullanıyorsak ve nesnelerimiz bir wrapper XML tag'i içindeyse bu anotasyonun başına @XmlElementWrapper(name="foos") yazılabilir. Böyle XML şöyle olur
<rootelement>
<foos>
<foo>...<foo>
<foo>...<foo>
<foos>
</rootelement>
Sınıf ise şöyledir
@XmlRootElement(name="rootelement")
class RootElement {
@XmlElementWrapper(name="foos")
@XmlElement(name="foo")
private List<Foo> fooList;
...
}
@XmlRootElement(name= "f")
class Foo {
@XMLElement
String id;
...
}
Örnek - Polymorphic Nesne ListesiElimizde şöyle bir kod
olsun. Burada ChildA sınıfı için beklenen tag büyük harfle başlayan "ChildA"
@XmlRootElement(name = "root")
@XmlAccessorType(XmlAccessType.FIELD)
public class Root {
@XmlElements({
@XmlElement(name = "ChildA", type = ChildA.class),
@XmlElement(name = "ChildB", type = ChildB.class),
})
private List<Parent> elements;
...
}
@XmlSeeAlso({ChildA.class, ChildB.class})
public class Parent {
...
}
ChildA
şöyledir. Normalde sınıf için küçük harfle başlayan "childA" tag'i bekleniyor.
@XmlRootElement(name = "childA")
public class ChildA extends Parent {
...
}
ChildB
şöyledir. Normalde sınıf için küçük harfle başlayan "childB" tag'i bekleniyor.
@XmlRootElement(name = "childB")
public class ChildB extends Parent {
...
}
Örnek - İlgisiz Nesneler Listesi
Şöyle yaparız. Burada fileOrInline alanı ya File ya da Inline nesnesi olabiliyor.
@XmlElements({
@XmlElement(name = "file", required = true, type = File.class),
@XmlElement(name = "inline", required = true, type = Inline.class)
})
protected List<Object> fileOrInline;
1. getter Yöntemi
getter yöntemini kullanıyorsak, get edilen nesne primitive değilse, nesne XML'den okunurken getter çağrılır.
Örnek - getter
Şöyle
yaparız
public class Item {
private String dataType;
private int data;
@XmlElement
public String getDataType(){
return dataType;
}
public void setDataType(String dataType){
this.dataType = dataType;
}
@XmlElement
public int getData(){
return data;
}
public void setData(int data){
this.data = data;
}
}
2. Alanlar
name Alanı
Örnek
Elimizde şöyle bir XML olsunn
<ProtocolloList>
<protocollo>
<numero>1</numero>
<data>2014-06-23</data>
<oggetto/>
<destinatario/>
<operatore/>
</protocollo>
...
</ProtocolloList>
Şöyle
yaparız
@XmlRootElement(name = "ProtocolloList")
public class ProtocolloList {
private ArrayList<Protocollo> ProtocolloList;
@XmlElement(name = "protocollo")
public ArrayList<Protocollo> getProtocolloList() {
return ProtocolloList;
}
}
nillable Alanı
Şöyle
yaparız.
@XmlElement(name = "Comment",nillable=true)
public Comment comment;
required Alanı
Şöyle
yaparız.
@XmlElement(name = "Foo", required = true)
protected List<Foo> list;