列表的自动XmlRootElement包装器 [英] Automatic XmlRootElement wrapper for list
问题描述
我有一个我需要编组的简单课程。该类声明为:
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屋!