В настоящее время у меня есть xml, который выглядит так:
<Person>
<ID>e5b160d07</ID>
<Source>
<Name>HardImpact</Name>
</Source>
</Person>
А мой JaxB выглядит так:
@XmlRootElement(name="Person")
public class PersonDTO {
private String id;
private Source source;
@XmlElement(name="ID")
public void setId(String id) {...}
@XmlElement(name="Source")
public void setSource(Source source) {...}
}
@XmlRootElement(name="Source")
class Source {
private String name;
@XmlElement(name="Name", namespace=DTOConstants.cmnv3)
public void setName(String name) {...}
}
Есть ли лучший способ использовать аннотации, чтобы избавиться от необходимости иметь класс Source? Изменение входящего XML не вариант.
1 ответ
AFAIK Каждый родительский тег должен быть объектом для хранения дочерних тегов в качестве атрибутов.
Итак, ваш подход - это чистый, распространенный и предпочтительный способ его реализации. Нет тегов, которые автоматически создают исходный класс,
Но
Вы можете использовать @XMLAnyElement
для сопоставления тега Source
с типом объекта. Дополнительные сведения об этом теге см. в этом примере.
Похожие вопросы
Новые вопросы
java
Java - это язык программирования высокого уровня. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег редко используется отдельно и чаще всего используется вместе с [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] и [maven].