Java 使用jaxb编组列表
我创建了一个这样的类Java 使用jaxb编组列表,java,jaxb,Java,Jaxb,我创建了一个这样的类 @XmlRootElement(name="mylist") public class JaxbList<T>{ @XmlElementWrapper(name="list") @XmlElement(name="Item") protected List<T> list; public JaxbList(){} public JaxbList(List<T> list){ this.li
@XmlRootElement(name="mylist")
public class JaxbList<T>{
@XmlElementWrapper(name="list")
@XmlElement(name="Item")
protected List<T> list;
public JaxbList(){}
public JaxbList(List<T> list){
this.list=list;
}
public List<T> getList(){
return list;
}
}
编组方法创建以下XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<mylist>
<list>
<Item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">COlumn 1</Item>
<Item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">COlumn 2</Item>
<Item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">COlumn 3</Item>
</list>
</mylist>
第1栏
第2栏
第3栏
现在我想整理一个列表:
protected List<List<String>> list
受保护列表
XML输出应如下所示:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<mylist>
<list>
<Item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">COlumn 1</Item>
<Item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">COlumn 2</Item>
<Item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">COlumn 3</Item>
</list>
<list>
<Item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">COlumn 1</Item>
<Item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">COlumn 2</Item>
<Item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">COlumn 3</Item>
</list>
</mylist>
第1栏
第2栏
第3栏
第1栏
第2栏
第3栏
提前谢谢 以下是一个示例:
public class Test{
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "mylist")
static class MyList<T> {
@XmlAnyElement
protected Collection<Collection<T>> list;
public MyList() {
}
public MyList(Collection<Collection<T>> list) {
this.list = list;
}
public Collection<List<T>> getList() {
return list;
}
}
@XmlRootElement(name = "sublist")
@XmlAccessorType(XmlAccessType.FIELD)
static class List<T> {
@XmlAnyElement
protected Collection<T> sublist;
public Collection<T> getSublist() {
return sublist;
}
public void setSublist(Collection<T> sublist) {
this.sublist = sublist;
}
public List() {
}
}
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
static class Item {
@XmlValue
private String value;
public Item(){
}
public Item(String value){
this.value = value;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
public static void main(String[] args){
try {
context = JAXBContext.newInstance(MyList.class, List.class, Item.class);
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
m.marshal(jaxbList, System.out);
} catch (JAXBException e) {
e.printStackTrace();
}
}
}
公共类测试{
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name=“mylist”)
静态类MyList{
@XmlAnyElement
受保护的收集清单;
公共MyList(){
}
公共MyList(集合列表){
this.list=列表;
}
公共集合getList(){
退货清单;
}
}
@XmlRootElement(name=“sublist”)
@XmlAccessorType(XmlAccessType.FIELD)
静态类列表{
@XmlAnyElement
受保护的集合子列表;
公共集合getSublist(){
返回子列表;
}
public void setpublist(集合子列表){
this.sublist=子列表;
}
公开名单(){
}
}
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
静态类项{
@XmlValue
私有字符串值;
公共项目(){
}
公共项(字符串值){
这个值=值;
}
公共字符串getValue(){
返回值;
}
公共void设置值(字符串值){
这个值=值;
}
}
公共静态void main(字符串[]args){
试一试{
context=JAXBContext.newInstance(MyList.class、List.class、Item.class);
Marshaller m=context.createMarshaller();
m、 setProperty(Marshaller.JAXB_格式的_输出,Boolean.TRUE);
m、 marshal(jaxbList,System.out);
}捕获(JAXBEException e){
e、 printStackTrace();
}
}
}
您尝试使用列表中的哪些内容?如果你告诉我们你试过什么,可能会有人帮你。这比有人从零开始为您编写代码更有可能。我不知道如何构建用于编组列表的代码。任何提示都将真正帮助我构建代码。非常感谢。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<mylist>
<list>
<Item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">COlumn 1</Item>
<Item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">COlumn 2</Item>
<Item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">COlumn 3</Item>
</list>
<list>
<Item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">COlumn 1</Item>
<Item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">COlumn 2</Item>
<Item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">COlumn 3</Item>
</list>
</mylist>
public class Test{
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "mylist")
static class MyList<T> {
@XmlAnyElement
protected Collection<Collection<T>> list;
public MyList() {
}
public MyList(Collection<Collection<T>> list) {
this.list = list;
}
public Collection<List<T>> getList() {
return list;
}
}
@XmlRootElement(name = "sublist")
@XmlAccessorType(XmlAccessType.FIELD)
static class List<T> {
@XmlAnyElement
protected Collection<T> sublist;
public Collection<T> getSublist() {
return sublist;
}
public void setSublist(Collection<T> sublist) {
this.sublist = sublist;
}
public List() {
}
}
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
static class Item {
@XmlValue
private String value;
public Item(){
}
public Item(String value){
this.value = value;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
public static void main(String[] args){
try {
context = JAXBContext.newInstance(MyList.class, List.class, Item.class);
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
m.marshal(jaxbList, System.out);
} catch (JAXBException e) {
e.printStackTrace();
}
}
}