@XmlRootElement(name="flowPane")
public class Image implements Serializable {
public String name;
public String description;
}
绑定到
<flowPane>
<label text="name"/>
<label text="description"/>
</flowPane>
尝试简单地在名称和描述属性上放置@XmlAttribute和@XmlElement注释,但两者都不是我正在寻找的解决方案。
答案 0 :(得分:1)
您必须使用新类
包装字段@XmlRootElement(name="flowPanel")
public class Image implements Serializable {
public static class Label {
@XmlAttribute()
public String text;
public Label(){}
public Label(String text) {
this.text = text;
}
}
@XmlElement(name="label")
public Label name;
@XmlElement(name="label")
public Label description;
}
答案 1 :(得分:1)
为了使相同的元素在XML文档中多次出现,您将需要List
属性。请注意,在下面的示例中,label将具有映射到text
属性的属性。
@XmlRootElement(name="flowPanel")
@XmlAccessorType(XmlAccessType.FIELD)
public class Image implements Serializable {
@XmlElement(name="label").
private List<Label> labels;
}
@XmlPath
扩展
如果您使用EclipseLink MOXy作为JAXB (JSR-222)提供商,那么您可以利用我们为此用例添加的@XmlPath
扩展程序。
@XmlRootElement(name="flowPane")
public class Image implements Serializable {
@XmlPath("label[1]/@text")
public String name;
@XmlPath("label[1]/@text")
public String description;
}
了解更多信息
我在博客上写了更多关于此的内容: