【发布时间】:2018-02-21 12:19:28
【问题描述】:
这似乎是一个基本问题,但我无法在其他地方找到答案。如果是重复发帖,请见谅。
是否可以在标记为@XmlAccessorType(XmlAccessType.FIELD) 的类上添加@XmlValue 注释?
我正在尝试使用 JAXB 解析 XML 文件,虽然 XML 本身非常大并且有其他字段,但问题是特定于该字段的:
<root>
...
<holiday holidayId="9">Christmas</holiday>
...
</root>
映射是:
public class Holiday extends Model {
@XmlAttribute(name="holidayId")
private String holidayId;
@XmlValue
private String holiday;
}
该字段在 XML 中声明为令牌类型。
@XmlValue 注释给了我一个 IllegalAnnotationException(如果我注释掉 @XmlValue 和 holiday 字段,映射工作正常)。为什么会失败?解决方法是什么?请指教。
【问题讨论】:
-
模型中有什么?你能分享整个班级和xml吗?
-
如果您共享整个 xml 和类,那么我们可以详细查看。
-
Model 是一个相当基础的类。只提供方便的方法,例如使用 GSON 将整个对象转换为 JSON。不幸的是,由于机密性,我无法共享整个 XML,但我已经注释了对 @XmlValue 的引用并成功解析了整个 XML。解析失败的唯一时间是当我有一个尝试访问其值的特定字段的类时,如上所示。
-
您应该将
IllegalAnnotationException的确切异常消息添加到您的问题中。