将一个对象结构映射到不同的XML结构

时间:2013-06-03 16:58:17

标签: java xml xml-serialization

我有一个类似于以下内容的对象:

public class FooObj
{
    private Long id;
    private List<BarObj> subBar;
    private String someStr;

    public Long getId()
    {
        return id;
    }

    public List<BarObj> getSubBar()
    {
        return subBar;
    }

    public String getSomeStr()
    {
        return someStr;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public void setSubBar(List<BarObj> subBar)
    {
        this.subBar = subBar;
    }

    public void setSomeStr(String someStr)
    {
        this.someStr = someStr;
    }

    public static class BarObj
    {
        private String groupId;
        private Long id;

        public String getGroupId()
        {
            return groupId;
        }

        public Long getId()
        {
            return id;
        }

        public void setGroupId(String groupId)
        {
            this.groupId = groupId;
        }

        public void setId(Long id)
        {
            this.id = id;
        }
    }
}

我想将对象映射到XML结构,如链接中的XML:http://pastebin.com/cw018jqc 编辑:(请查看ObjBars元素以获取我的确切定义我正在寻找。)

是否有可用的库可以让我这样做?

1 个答案:

答案 0 :(得分:1)

因此,在将序列化为XML之前,您基本上是在尝试将列表拆分为多个子列表?我认为JAXB可以真正帮助你。我认为您可以使用@XmlTypeAdapter在List<BarObj>List<List<BarObj>>之间进行转换,这将是您希望将其数据编组为XML的一种方式。查看http://blog.bdoughan.com/2010/07/xmladapter-jaxbs-secret-weapon.html了解详情。