我正在从 SAX 解析器转换为 JAXB - 无法弄清楚如何将多个标记/属性值解组为单个(可比较的)Java POJO。
我有这样的xml文件:
<item validFrom="1950" validUntil="1980">
<description>some text</description>
</item>
“validFrom”和“validUntil”值应该组成一个有效的“MutableRange”POJO(见下面的定义)。
我需要将其解组为的 Java Item 定义是:
@XmlRootElement
@XmlAccessorType(XmlAcccessType.FIELD)
public class Item {
// ??? need help mapping this to be composed from "validFrom", "validUntil" attributes
private MutableRange validRange;
@XmlElement
private String description;
}
// assume all other boilerplate code exists
public class MutableRange {
private int lowerBound;
private int upperBound;
}
我尝试使用适配器,但它没有同时捕获:“from”和“until”值,以便我创建 MutableRange 实例。我尝试使用@XmlMixed
没有成功。
JAXB 规定的方法是什么?
一旦解决了这个问题,我将MutableRange
使用 ( XmlAdapter
) 进行扩展以作为包装器来创建 guava 的不可变 Range 对象,并将其映射validRange
到@XmlJavaTypeAdapter(MutableRange.class)