将多个元素读入一个类

时间:2014-03-20 23:06:25

标签: java jaxb jersey-client

我有一个大致有这种布局的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;
}

0 个答案:

没有答案