クラスオブジェクトのリストをマーシャリングおよびアンマーシャリングしたいと言いjava.util.List<MyObject>ます。Castor を使用する予定です。Castor-0.9.5.*.jarバージョンを使用する必要があります。
さらに、Marshaled object( MyObject) の XML スキーマがあります。MyObjectclass にはデフォルトのコンストラクターがなく、すべてのフィールドを設定するパラメーター化されたコンストラクターのみがあります。MyObjectまた、クラス内のどのフィールドにもセッター メソッドはありません。MyObjectクラスをまったく変更できません。
MyObjectクラスのスニペットは次のとおりです。
public class MyObject
{
private final SomeEnumType type;
private final CutomObject custObjs[];
private final int index;
private final String[] strs;
private final int rows[];
// NOTE: This class also has getter methods for all the fields.
// NOTE: There are NO setters methods and all fields are final
public MyObject(SomeEnumType type, CutomObject custObjs[],
int index, String strs[], int rows[])
{
this.type = type;
this.custObjs = custObjs;
this.index = index;
this.strs = strs;
this.rows = rows;
}
}
私の質問は次のとおりです。
- このシナリオでは Castor が適切な選択ですか? そうでない場合、より良い選択は何ですか?
- 私の場合、Castor マッピングを作成する方法。これにO2XMapperを使用してみましたが、
MyObjectクラスにデフォルトのコンストラクターがないため機能しませんか? - の XML スキーマを使用して
MyObjectCastor マッピングを生成する方法はありますか。 org.exolab.castor.xml.XMLContextCastor jar にとクラスが見つかりませんでしたorg.castor.xml.BackwardCompatibilityContext。これらは Castor jar の一部ではありませんか?