我有一个大致有这种布局的XML文件
<thing>
<id>1</id>
<name1>Foo Bar</contact1>
<name2>Bar Foo</contact2>
<email1>foo@bar.com</emailAddr1>
<email2/>
<phone1>12345678</phone1>
<phone2>12345678</phone2>
</thing>
并希望将jaxb(来自jersey-client)解组为此java pojo
@XmlRootElement(name = "thing")
class Thing {
@XmlElement(name = "id")
public int id;
@????
public Contact first;
@????
public Contact second;
}
如何指定name1,email1和phone1首先进入,其他进入第二? 我无法更改XML,但我可以更改Thing和Contact类。
我这样做的丑陋尝试是,我为每个元素设置了一个在第一个或第二个联系人中设置正确值的setter。
@XmlElement(name = "name1")
private void setFirstContactName(String name)
{
first.name = name;
}
@XmlElement(name = "name2")
private void setSecondContactName(String name)
{
second.name = name;
}