JAXB @XmlElementWrapper に@XmlAttributeを設定することは可能でしょうか
リストを生成
import java.util.*;
import javax.xml.bind.annotation.*;
@XmlRootElement(name="list")
public class RootList {
private String a;
private List<String> someList;
@XmlAttribute(name="a")
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
@XmlElement(name="item")
public List<String> getSomeList() {
return someList;
}
public void setSomeList(List<String> someList) {
this.someList = someList;
}
public RootList(String numValue,List<String> someListValue) {
this();
this.a = numValue;
this.someList = someListValue;
}
public RootList() {
// TODO Auto-generated constructor stub
}
}
実行
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.*;
public class Test {
public static void main(String[] args) throws Exception {
List<String> arg = new ArrayList<String>();
arg.add("a");
arg.add("b");
RootList root = new RootList("1", arg);
JAXBContext jc = JAXBContext.newInstance(RootList.class);
Marshaller marshaller = jc.createMarshaller();
marshaller.marshal(root, System.out);
}
}
結果
<list a="1">
<item>a</item>
<item>b</item>
</list>
欲しい結果
<root>
<list a="1">
<item>a</item>
<item>b</item>
...
</list>
</root>
申し訳ございませんが教えてください。