使用EclipseLink MOXy读取相同的元素两次

时间:2012-10-29 13:52:52

标签: java xpath jaxb eclipselink moxy

是否可以使用EclipseLink MOXy将相同的元素读入两个不同的Java属性?

在下面的示例中,我将<publication>文档映射为一个类,将<date>元素映射为Java类,其中XmlAdapter属于我的属性出版物。我还想将year元素设置为Publication类的单独的属性,以及复合{{1>的一部分我已经成功了。但是,当我在XML绑定中设置它时,仅年份总是为空,但日期会正确填充。

Date

1 个答案:

答案 0 :(得分:2)

目前EclipseLink JAXB (MOXy)不支持XPath,用于将一个类属性映射到映射到另一个类的XML文档部分。您可以利用afterUnmarshal事件从date对象中提取年份并将其设置在发布对象上。

package forum13122968;

import javax.xml.bind.Unmarshaller;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class Publication {

    Date date;
    int year;

    private void afterUnmarshal(Unmarshaller unmarshaller, Object parent) {
        year = date.getYear();
    }

}