1

私はjava.beans.XMLEncoderXML 形式に依存する XSL 変換をたくさん持っています。より優れたパフォーマンスを持つドロップインの代替ライブラリを見つけることができるかどうか疑問に思っています。XStreamを見てきましたが、そのシリアル化形式は異なります。

フォークされたバージョンのレガシーコードベースで作業しているため、それを置き換えようとしています。XMLEncoderより標準的なものに戻したいのですが、java.beans.XMLEncoderパフォーマンスははるかに悪くなります。

クラスの場合Person(適切なゲッターとセッターを使用):

public class Person {
    private String name;
    private List<String> favoriteColors;
    private Date birthDate;
    private int age;
}

XMLEncoder次のような XML を生成します。

<?xml version="1.0" encoding="UTF-8"?>
<java version="1.8.0_66" class="java.beans.XMLDecoder">
 <object class="Person" id="Person0">
  <void property="age">
   <int>40</int>
  </void>
  <void property="birthDate">
   <object class="java.util.Date">
    <long>175064400000</long>
   </object>
  </void>
  <void property="favoriteColors">
   <void method="add">
    <string>red</string>
   </void>
   <void method="add">
    <string>green</string>
   </void>
  </void>
  <void property="name">
   <string>John Doe</string>
  </void>
 </object>
</java>

フォーマットを近似するために XStream コンバーターの束を作成することは可能だと思いますが、そのうさぎの穴に向かう前に、より簡単な解決策があるかどうか疑問に思っています。

4

1 に答える 1

0

後で誰かがこれに出くわした場合に備えて、要素の順序を気にしない限り、XStream を介して実装するとそこに到達します。要素の順序を制御できるように、より深い実装を行うこともできますが、最終的にそのアイデアを廃棄することになり、問題のコードを書き直すことができるまで対処するつもりです。

于 2016-04-22T18:24:00.020 に答える