【发布时间】:2015-05-13 09:16:13
【问题描述】:
我有一个格式如下所述的 XML 文件。我目前正在使用 JAXB 将 XML 元素 (event) 解组为 Java 对象 (Event)。所有属性都可以正常工作,除了一个...
正如您在 XML 中看到的,date 元素仅存储日期,time仅存储事件时间。我想将这两个 XML 元素组合成一个名为 time 的 LocalDataTime 字段,并带有适当的 getter 和 setter。
XML:
...
<event>
...
<date>2014-02-19</date>
<time>2000-01-01T14:17:00Z</time>
...
</event>
...
所需的 Java 对象:
public class Event {
...
// Returns a combination of the date and time stored in the XML
public LocalDateTime getDateTime() {
return dateTime;
}
...
}
我的第一个想法是使用XMLAdapter,但似乎这只允许我将 1 个 XML 元素映射到 1 个 Java 对象。
之后我尝试通过覆盖设置器setTime 和setDate 来实现这一点。这些设置器每个都会更改存储时间的时间或日期。但我无法让它工作,而且这似乎也是一种非常丑陋的方式。
我已经阅读了以下JAXB convert multiple attributes to one type while unmarshalling。但是对于这个项目,我宁愿不使用像 MOXy 这样的外部库。
有谁知道如何以 clean 的方式单独使用 JAXB 来做到这一点?
【问题讨论】: