Вы можете попробовать это:
Используя базовый класс, как показано ниже,
@XmlAccessorType(XmlAccessType.FIELD)
public class Reference {
@XmlAttribute
private String id;
}
И ваш корневой класс,
@XmlRootElement(name="Date")
public class TestPojo {
@XmlMixed
@XmlAnyElement
private List<Object> textContent;
@XmlElement
private Reference reference;
}
Это будет бесполезным, давая вамэлемент ссылки и все остальное в списке.
Для примера у вас будет 2 записи.Значение даты / текст вместе с символом табуляции (\ t) и символами новой строки (\ n), а также другая запись с символом новой строки.
Таким образом, вы можете использовать этот список для обработки содержимого и использовать то, что вы хотите.
Если есть более чистое решение, мне интересно.Приветствия
Обновление для ответа на комментарий:
Чтобы быть более понятным с исправлением.Я использовал @XmlElement
вместо @XmlElementRef
для одной ссылки вместо списка (потому что это то, что я видел в xml).
Также я добавил аннотацию @XmlAnyElement
для смешанного контента, сделав его списком.Это то, что исправило это.Так что придерживайтесь своего класса, это будет выглядеть так:
@XmlRootElement(name="Date")
public class TestPojo {
List<Object> textContent;
Reference ref;
@XmlMixed
@XmlAnyElement
public List<Object> getTextContent() {
return textContent;
}
public void setTextContent(List<Object> textContent) {
this.textContent = textContent;
}
@XmlElement(name="reference")
public Reference getRef() {
return ref;
}
public void setRef(Reference ref) {
this.ref = ref;
}
}
@XmlAccessorType
сэкономил мне время на написание геттеров и сеттеров.Для объяснения того, что эта аннотация делает с примером (и относительно @XmlElement
, проверьте это: В чем разница между использованием @XmlElement перед полем и перед объявлением получателя?