XStreamって地味に良い?

XMLマッパではなくて、XMLリアライゼーションライブラリ、ということで、XStreamってのが良いですよ、って言われたんでちょっと見てた。
ほほう?

  • 比較的分かりやすいConverter(型とXML表現のマッパみたいな)仕様
  • シンプルで使いやすいファサード(というか、むしろこれで完結してるのか)
  XStream xstream = new XStream();
  xstream.toXML( hogeBean, new FileWriter(....))
  .
  .
  newBean = (NewBean) xstream.fromXML( new FileReader...)
  • 最初から付いてくるシリアライザが結構いい
    • Serializableでなくてもがしがし変換
    • privateフィールドでも容赦なく読み書き(フィールド名がタグ名に)*1
      • transientは一応無視
    • XPath表現で参照がかぶったときに重複シリアライズしないようにする
    • 復元時もバッチリ!

とくに参照がかぶったときにちゃんとしてくれる、ってのは意外に重要だったりするのでうれしいかも。

  ChildBean child;
  ChildBean child2;
  .
  .
  child2 = child; みたいな状況

ちなみにこんな感じになった


  hogefuga
  
    ppp
  
  

ほほー。

中身ウロウロしてみると設計もシンプルだしよさげ。
昨日書いてたFlow4Jでも使われてることが判明.

*1:これは賛否両論あるよね