使用Castor进行封送和解编

时间:2013-06-10 12:14:57

标签: java jaxb xsd marshalling castor

我希望Marshal并解组我的类对象列表java.util.List<MyObject>。我打算使用Castor,我将不得不使用 Castor-0.9.5。*。jar 版本。

另外,我的Marshaled对象(MyObject)有XML Schema。 MyObject类没有默认构造函数,它只有一个参数化构造函数,用于设置所有字段。并且MyObject类中的任何字段都没有setter方法。我根本无法修改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;
    }

}

我的问题是:

  1. Castor是这种情况的正确选择吗?如果不是更好的选择?
  2. 如何在我的案例中创建Castor映射。我尝试使用O2XMapper但这不起作用MyObject类没有默认构造函数?
  3. 有没有办法使用MyObject的XML Schema来生成Castor映射。
  4. 我在castor jar中找不到org.exolab.castor.xml.XMLContextorg.castor.xml.BackwardCompatibilityContext类,它们不属于Castor jar吗?

1 个答案:

答案 0 :(得分:1)

我更喜欢使用jaxB,因为它重量轻,编组和解组不会占用太多记忆 click here for example