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

Multiple elements with the same type but different name?

在使用@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>

您可以尝试创建一个 class 来存储字段,然后序列化 class。

@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帮助不大;希望这能为您指明正确的方向。