【问题标题】:Jaxb unmarshalling does not fail on missing attribute [duplicate]Jaxb 解组不会因缺少属性而失败 [重复]
【发布时间】: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


    【解决方案1】:

    【讨论】:

    • 是的,我知道。我想知道是否有任何方法可以在没有模式的情况下进行,因为我已经使用注释完成了映射。
    • @Cristi 你有没有找到任何方法在没有模式和注释的情况下进行验证?
    猜你喜欢
    • 1970-01-01
    • 2017-09-17
    • 2015-09-27
    • 2014-08-10
    • 2019-11-09
    • 2016-07-18
    • 1970-01-01
    • 2021-01-17
    • 1970-01-01
    相关资源
    最近更新 更多