【发布时间】:2015-05-28 11:06:39
【问题描述】:
我有一个使用 jaxb 注释的类,我想将解组器配置为在缺少属性时使解组失败。
假设我有下面的类,如果 xml 中缺少 EventId 属性,我想使解组失败,而是将其设置为 null。
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "event")
public class Event {
@XmlAttribute(name = "EventId", required="true")
private Integer eventId;
...
}
解组代码:
JAXBContext jaxbContext = JAXBContextFactory.createContext(new Class[]{Events.class}, null);
StringReader xml = new StringReader(data);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
unmarshaller.setEventHandler(new DefaultValidationEventHandler());
unmarshaller.unmarshal(xml);
我错过了什么吗?如果缺少“必需”属性,我应该以某种方式配置解组器失败吗?
谢谢!
【问题讨论】:
标签: java xml unmarshalling jaxb2