クラスオブジェクトのリストをマーシャリングおよびアンマーシャリングしたいと言いjava.util.List<MyObject>
ます。Castor を使用する予定です。Castor-0.9.5.*.jarバージョンを使用する必要があります。
さらに、Marshaled object( MyObject
) の XML スキーマがあります。MyObject
class にはデフォルトのコンストラクターがなく、すべてのフィールドを設定するパラメーター化されたコンストラクターのみがあります。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 スキーマを使用して
MyObject
Castor マッピングを生成する方法はありますか。 org.exolab.castor.xml.XMLContext
Castor jar にとクラスが見つかりませんでしたorg.castor.xml.BackwardCompatibilityContext
。これらは Castor jar の一部ではありませんか?