Jaxb unmarshalling在缺少属性时不会失败

时间:2015-05-28 11:06:40

标签: java xml unmarshalling jaxb2

我有一个用jaxb注释注释的类,如果缺少属性,我想配置unmarshaller以使解组失败。

让我们说,我有以下类,如果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);

我错过了什么吗?如果缺少" required"我应该以某种方式配置unmarshaller失败。属性?

谢谢!

1 个答案:

答案 0 :(得分:0)