Получаем ответ API в формате xml, он читается с помощью jaxb unmarshaller. Модели java для этих элементов xml генерируются с использованием dtd и jaxb в отдельном проекте.
Существует ситуация, когда содержимое xml (ответ API) может иметь 0 или более случаев эти теги случайным образом <b>
или <i>
вместе с текстом родительского тега.
что-то вроде:
<Title>This is a <i>dummy</i> statement.</Title>
Этот тип был определен в dtd следующим образом:
<!ELEMENT Title (#PCDATA|b|i)*>
Я ожидал, что эквивалентное поле члена в сгенерированном классе будет примерно таким:
@XmlElements({
@XmlElement(name = "b", type = B.class),
@XmlElement(name = "i", type = I.class)
})
protected List<java.lang.Object> bOrI;
Таким образом, список может содержать строку и теги.
Но сгенерированный класс имеет только строку, из-за которой это поле не читается должным образом. Читается только текст после окончания внутреннего тега, например, «оператор». в приведенном выше примере.
Пожалуйста, дайте мне знать, есть ли способ обхода или лучший способ кодирования для этой ситуации.