您好我有以下xml:
使用以下代码:
如何在不为Down and Up创建新类并使用@xmlAttribute的情况下获取每个元素的属性DispalyName。 我可以通过添加新的2个类UpElement和DownElement来解决它,并为每个类获取@xmlAttribute但我想在一次类中。
Code Example:
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "StatusesList")
@XmlAccessorType(javax.xml.bind.annotation.XmlAccessType.FIELD)
public class StatusesListElement
{
@XmlElement(name = "Down")
private String down = "";
@XmlElement(name = "Up")
private String up = "";
public String getDown()
{
return down;
}
public void setDown(String down)
{
this.down = down;
}
public String getUp()
{
return up;
}
public void setUp(String up)
{
this.up = up;
}
}
答案 0 :(得分:0)
注意:我是EclipseLink JAXB (MOXy)主管,是JAXB 2 (JSR-222)专家组的成员。
使用EclipseLink JAXB(MOXy)
您可以使用 MOXy 中的@XmlPath
扩展名来映射此用例:
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "StatusesList")
@XmlAccessorType(javax.xml.bind.annotation.XmlAccessType.FIELD)
public class StatusesListElement
{
@XmlPath("Down/@DisplayName")
private String down = "";
@XmlElement(name = "Up/@DisplayName")
private String up = "";
}
使用任何JAXB实施
您可以在此用例中使用XmlAdapter
。以下是我给出的答案的链接,演示了如何做到这一点: