當然,最好的實體是POJO的(普通舊Java對象)。沒有奇怪的屬性,引用或方法。它簡化了序列化,並保持模型對象與框架和奇怪的層一樣中立,如持久性,UI,遠程訪問等。
XStream的:簡單
我建議使用的XStream庫序列化。它試圖成爲將對象序列化和反序列化爲XML的最簡單方法。
你應該想到searialization這樣:
所以,這是兩個問題,序列化來解決。 XStream允許您創建序列化程序(XStream類),(OPTIONALLY)指示每個類使用的標記名稱,以及(OPTIONALLY)指示屬性的別名。
所以,如果你有這樣的:
package pack;
Person
+ mom: Person
+ dad: Person
將與沒有配置寫:
<pack.Person>
<mom>
<pack.Person>
...
</pack.Person>
</mom>
<dad>
<pack.Person>
...
</pack.Person>
</dad>
</pack.Person>
但如果你告訴它映射到package.Person它將使用該標籤。你可以告訴它寫屬性「媽媽」作爲「母親」和類似的東西。
XStream xs = new XStream();
xs.alias("person", Person.class);
xs.aliasAttribute(Person.class, "mom", "mother");
參考
的XStream也可以讓你指出你想要什麼樣的參考文獻:
- 沒有引用:對象序列化 每次創立它的對象 時間樹
- 絕對引用:所述第二時間 一個目的是發現它使用的 絕對路徑節省了 參考([4] /教師/人/人)
- 相對引用第一個實例 :相同,但 使用從這個 點(../../person[4]/teacher)相對引用
http://stackoverflow.com/questions/35785/xml-serialization-in-java還不如 – skaffman