Хорошо, я новичок в JAXB, и у меня возникают проблемы с поиском правильной документации, чтобы помочь мне в этом, я прочитал кучу и до сих пор не понимаю, что делает JaxB.
У меня есть класс, назовите егоКонтейнер.Это расширено MyContainer.MyContainer имеет дополнительное логическое значение в дополнение к тому, что он наследует от контейнера.
В любом случае, вот как JAXB Marshalls MyContainer
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MyContainer name="container" id="1">
<boolVal>false</boolVal>
<ListOfResources> //Using @XmlElementWrapper(name=..
<child>
<ID>Test Comp 1</ID>
</child>
<child>
<ID>Test Comp 2</ID>
</child>
</ListOfResources>
</MyContainer>
Что я не понимаю, так это тег «child».Единственное, что называется child - это имя списка.Список содержит объекты (которые имеют строковое свойство, ID), однако объект не должен быть «дочерним».Однако настоящая проблема в том, когда я иду в класс Демаршалла.Список будет заполнен перечисленными «потомками».Я не вижу, чего мне не хватает.Заметьте, я не получаю исключение JAXB, но я, когда проверяю неархивированный объект, список не заполнен
РЕДАКТИРОВАТЬ: Уточнение
Извините, я говорю, что JAXBбудет маршалировать элементы в списке, хотя каждый элемент в списке имеет имя списка (дочерний).Однако при переходе к демаршаллу он не заполняет список в новом объекте.
EDIT2: Current Setter
public void setChildren(List<Resource<IType>> other) {
Iterator iterator = other.iterator();
while(iterator.hasNext()){
Resource<IType> piece =
new Resource<IType>((Resource<IType>) iterator.next());
this.listOfResources.add(piece);
}
}