В соответствии с заголовком у меня есть XML файл, который мне нужно отменить:
<?xml version="1.0"?>
<root>
<wrap>
<Element>something1</Element>
<Element>something2</Element>
<Element>something3</Element>
</wrap>
</root>
"wrap" - это просто обертка, но количество элементов меняется.
У меня есть два класса для облегчения объектов для JAXB:
класс переноса:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "root")
public class Wrap {
@XmlElementWrapper(name = "wrap")
@XmlElement(name = "Element")
private List<Element> elementList = new ArrayList<>();
public Wrap() {}
public Wrap(List<Element> list) {
this.elementList = list;
}
public void addElement(Element element) {
this.elementList.add(element);
}
public List<Element> getWrap() {
return this.elementList;
}
public void setWrap(List<Element> wrap) {
this.elementList = wrap;
}
}
класс элемента:
@XmlRootElement(name = "Element")
public class Element {
private String Element;
public Element() {}
public Element(String element) {
this.Element = element;
}
public String getElement() {
return Element;
}
public void setElement(String element) {
this.Element = element;
}
}
Попытка размонтировать XML завершается без ошибок, однако значения элементов не сохраняются с объектами элемента. Вместо этого toString возвращает значение null для каждого из объектов.
Я заполнил объекты некоторыми данными и выделил их в файл (показано ниже). Этот формат, конечно, неверен и должен соответствовать XML выше.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
<wrap>
<Element>
<element>entry1</element>
</Element>
<Element>
<element>entry2</element>
</Element>
<Element>
<element>entry3</element>
</Element>
</wrap>
</root>
Я исследовал это некоторое время с предположениями, что мои аннотации неверны, но, возможно, это что-то еще...