列表的自动XmlRootElement包装器 [英] Automatic XmlRootElement wrapper for list

查看:79
本文介绍了列表的自动XmlRootElement包装器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个我需要编组的简单课程。该类声明为:

I have a simple class that I needed to marshall. The class is declared as:

@XmlRootElement  
public class XMLUser...

这是我得到的:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xmlUser>
    <login>myLogin</login>
    <password>myPass</password>  
    <role name="role1"/>  
    <role name="role2"/>  
    <role name="role3"/>  
</xmlUser>

现在我希望在一个文件中有多个用户,但不需要自己创建包装类,有点像使用@XmlElementWrapper但是对于类而不是字段。我不知道这是否可行。

Now I want to have multiple users in one file but without the need to create a wrapper class myself, sort of like using @XmlElementWrapper but for a class instead of a field. I don't know if this is possible.

这样我就可以编组一个List(或者jaxb提供的一些对象),我最终会得到一个像这样的xml(<用户> 标签自动生成):

So that I could marshall a List (or some object provided by jaxb) and I could end up with an xml like this (the <users> tag generated automatically):

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<users>
    <xmlUser>
        <login>login1</login>
        <password>pass2</password>
        <role name="role1"/>
        <role name="role2"/>
    </xmlUser>
    <xmlUser>
        <login>login2</login>
        <password>pass2</password>
        <role name="role1"/>
        <role name="role3"/>
    </xmlUser>
</users>

任何帮助表示赞赏。

推荐答案

如果不创建新课程,这是不可能的。

单程是

It's impossible without creating of new class.
single way is

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Users 
{
   @XmlElement(name = "xmlUsers")
   List<XmlUser> users = new ArrayList<XmlUser>();
}  

输出

<users>
    <xmlUsers>
       //...
    </xmlUsers>
    <xmlUsers>
       //...
    </xmlUsers>
</users>

这篇关于列表的自动XmlRootElement包装器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆