개체 모델이나 XML 문서를 모르면 비 정렬 작업이 왜 제대로 작동하지 않는지 알기가 어렵습니다. 나는 포장 및 래핑 컬렉션 예를 아래 그건 당신이 사용 사례에서 잘못 될 일을 알아내는 데 도움이 될 수
input.xml/출력
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
<item>A</item>
<item>B</item>
<item>C</item>
<items>
<item>D</item>
<item>E</item>
<item>F</item>
</items>
</root>
루트
래핑 된 콜렉션의 경우 래퍼 요소를 지정하기 위해 @XmlElementWrapper
주석을 사용합니다.
package forum11219454;
import java.util.List;
import javax.xml.bind.annotation.*;
@XmlRootElement
public class Root {
private List<String> list;
private List<String> nestedList;
@XmlElement(name="item")
public List<String> getList() {
return list;
}
public void setList(List<String> list) {
this.list = list;
}
@XmlElementWrapper(name="items")
@XmlElement(name="item")
public List<String> getNestedList() {
return nestedList;
}
public void setNestedList(List<String> nestedList) {
this.nestedList = nestedList;
}
}
추가 정보 데모
package forum11219454;
import java.io.File;
import javax.xml.bind.*;
public class Demo {
public static void main(String[] args) throws Exception {
JAXBContext jc = JAXBContext.newInstance(Root.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
File xml = new File("src/forum11219454/input.xml");
Root root = (Root) unmarshaller.unmarshal(xml);
Marshaller marshaller = jc.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(root, System.out);
}
}