具有相同类型但名称不同的多个元素?

时间:2016-06-10 19:26:09

标签: java xml javax.xml

使用@XmlElements时,有没有办法为同一类型指定不同的名称?我开始只使用@XmlElement。做了一些阅读并找到@XmlElementWrapper@XmlElements,但仍然无法获得我想要的输出。我意识到我可以为2制作不同的数据类型但如果我可以用注释做这个就很好。

当前迭代:

@XmlRootElement(name = "Root")
public class XmlTest {

    @XmlElementWrapper(name="ContactInformation")
    @XmlElements({
            @XmlElement(name="Name"),
            @XmlElement(name="LogicalOwner")
    })
    public List<String> contactInformation;
    ...
        contactInformation = new ArrayList<>();
        contactInformation.add("should be inside name");
        contactInformation.add("should be insde of owner");
    ...

当前输出:

<Root>
    <ContactInformation>
        <LogicalOwner>should be inside name</LogicalOwner>
        <LogicalOwner>should be insde of owner</LogicalOwner>
    </ContactInformation>
</Root>

期望输出:

<Root>
    <ContactInformation>
        <Name>should be inside name</Name>
        <LogicalOwner>should be insde of owner</LogicalOwner>
    </ContactInformation>
</Root>

1 个答案:

答案 0 :(得分:0)

您可以尝试创建一个用于存储字段的类,然后序列化该类。

@XmlRootElemnt(name="root")
Class ContactInformation{

    private String name;

    @XmlElement(name="Name")
    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

我以前习惯使用Gson.toJson(),所以我在序列化到XML方面帮助不大;希望这可以指出你在正确的方向。