Маршалинг и демаршалинг с использованием Castor
Я хочу, чтобы маршал и демаршал список объектов моего класса говорят java.util.List<MyObject>
, Я планирую использовать для этого Castor, мне придется использовать версию Castor-0.9.5.*. Jar.
Кроме того, у меня есть XML-схема для моего объекта Marshaled (MyObject
). MyObject
Класс не имеет конструктора по умолчанию, он имеет только параметризованный конструктор, который устанавливает все поля. И нет никаких методов установки для любого поля в 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;
}
}
Мои вопросы:
- Является ли Кастор правильным выбором для этого сценария? Если нет, то какие варианты лучше?
- Как создать карту Кастора в моем случае. Я пытался использовать O2XMapper для этого, но он не работает как
MyObject
класс не имеет конструктора по умолчанию? - Есть ли способ использовать XML-схему
MyObject
генерировать отображение Кастора. - Я не мог найти
org.exolab.castor.xml.XMLContext
а такжеorg.castor.xml.BackwardCompatibilityContext
классы в банке касторового, они не являются частью банку касторового?
1 ответ
Я предпочитаю использовать jaxB, так как он легкий и маршаллинг, а маршаллинг не займет много памяти.