【发布时间】:2012-06-24 14:22:43
【问题描述】:
给定以下 XML 结构:
<root>
<data>x</data>
<details>
<some_other_element>...</some_other_element>
<collection>
<element><a>1</a></element>
<element><a>2</a></element>
<element><a>3</a></element>
<collection>
</details>
</root>
我如何使用 MOXy 将其解组为一个基本平坦的 POJO?我尝试了这种方法(为简洁起见,省略了 getter 和 setter):
@XmlRootElement(name = "root")
class Root {
@XmlElement
private String data;
@XmlElement
@XmlPath("details/some_other_element")
private String someOtherElement;
@XmlPath("details")
@XmlElementWrapper(name = "collection")
@XmlElement(name = "element")
private Collection<Element> elements;
}
class Element {
@XmlElement
private String a;
}
不幸的是,这只是向elements 集合添加了一个未初始化的对象。我想避免必须声明一个 Details 类(确实有效),因为这会破坏 <details> 以下元素的其他 @XmlPath 映射。
我已验证 MOXy 已实际加载(如 jaxb.properties 中声明的那样)。
有什么想法吗?
【问题讨论】:
标签: java jaxb eclipselink moxy