Я создаю программу на Java, которая содержит древовидную структуру объектов. Все задействованные классы реализуют один и тот же интерфейс, и каждый класс содержит список дочерних элементов:
public class MyClass1 implements MyInterface {
List<MyInterface> children;
}
public class MyClass2 implements MyInterface {
List<MyInterface> children;
}
public class MyClass3 implements MyInterface {
List<MyInterface> children;
}
....
Теперь в XML-файле определены три структуры:
<myclass1>
<myclass2></myclass2>
<myclass1>
<myclass3></myclass3>
</myclass1>
</myclass1>
Древовидная структура может быть любого типа, определенного пользователем. Конечно, каждый класс содержит специфичные для класса переменные, которые я пока не опустил.
Сейчас я пытаюсь использовать XStream для десериализации XML-файла в Java-объекты, желательно с использованием аннотаций, но я не знаю, как это сделать. Я не хочу в конечном итоге составлять список для каждого возможного класса, например. в MyClass1:
@XStreamImplicit(itemFieldName="myclass2")
List<MyClass2> children2;
@XStreamImplicit(itemFieldName="myclass3")
List<MyClass3> children3;
@XStreamImplicit(itemFieldName="myclass4")
List<MyClass4> children4;
Есть предложения, как решить этот случай с помощью XStream? Или стоит использовать другие технологии?