Я обрабатываю документы XML с помощью JAXB 2.0, где мне нужна информация (в моем примере 'id'), сопоставленная с объектами Java, и выполняю некоторую бизнес-логику с помощью. Здесь все отлично работает.
Но эти XML-документы всегда содержат коллекцию из примерно 500 узлов, которые я просто хочу сохранить в базе данных в исходном формате xml, поэтому меня просто интересует XML в виде строки. По моему мнению, нет смысла демаршировать эти узлы в объекты Java, а затем снова их маршалировать в XML, чтобы сохранить их в базе данных.
Есть ли способ аннотировать свойство и заставить его просто хранить весь узел XML как строку? Вот моя текущая версия этого класса:
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Parent {
@XmlElement(name = "id")
public long id;
@XmlElement(name = "child", type = String.class)
@XmlElementWrapper(name = "children")
public List<String> children = new ArrayList<String>();
}
После демаршаллинга XML-документа children.size () возвращает правильное число childran, но они по-прежнему равны нулю.
XML-документ выглядит так:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<parent>
<id>45</id>
<children>
<child>
<name>Crash Dummy</name>
<age>21</age>
</child>
<child>
<name>Rockstar Programmer</name>
<age>12</age>
</child>
</children>
</parent>
Заранее благодарим за каждый совет или возможное решение.