具有相同类型但名称不同的多个元素?
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帮助不大;希望这能为您指明正确的方向。
在使用@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帮助不大;希望这能为您指明正确的方向。