Я хочу разобрать следующую структуру XML с помощью JAXB:
<orCondition>
<andCondition>
<andCondition>
<simpleCondition value="val1" />
<simpleCondition value="val2" />
</andCondition>
<simpleCondition value="val3" />
</andCondition>
<simpleCondition value="val4" />
</orCondition>
У меня есть следующие классы Java:
Базовый класс условий
@XmlType(name="condition")
public class Condition {
}
Составной класс, содержащий два условия
@XmlType(name="composite")
public class Composite extends Condition {
@XmlElement(name = "condition", type = Condition.class)
private Condition firstCondition;
@XmlElement(name = "condition", type = Condition.class)
private Condition secondCondition;
public Condition getFirstCondition() {
return firstCondition;
}
public void setFirstCondition(Condition firstCondition) {
this.firstCondition = firstCondition;
}
public Condition getSecondCondition() {
return secondCondition;
}
public void setSecondCondition(Condition secondCondition) {
this.secondCondition = secondCondition;
}
}
И состояние
@XmlType(name = "andCondition")
public class And extends Composite {
}
Или условие
@XmlType(name = "orCondition")
public class Or extends Composite {
}
Простое условие листового класса
@XmlType(name = "simpleCondition")
public class Simple extends Condition {
@XmlAttribute
String value;
}
Это не работает. У меня есть переменная экземпляра в другом классе, которая выглядит так:
@XmlElement(name = "condition", type = Condition.class)
private Condition condition;
Он остается нулевым после демаршалинга. Остальная часть объекта отлично разбирается
Любые предложения? Или это невозможно?