当找不到@XmlIDREF ref时,Jaxb不会抛出异常

时间:2015-03-09 10:35:09

标签: java xml-parsing jaxb

我有以下XML:

  <right id="RIGHT1"/>

  <role name="User">
   <right>RIGHT1</right>
   <right>RIGHT_NOT_EXISTING</right>
  </role>

这里是映射:

@XmlAccessorType(XmlAccessType.FIELD)
public class Role {

    @XmlAttribute
    private String name;

    @XmlIDREF
    @XmlElement(name = "right")
    private List<Right> rights;
}

基本上它可以工作,正确找到引用的现有权限。问题是,我在RIGHT_NOT_EXISTING参考中做了一个obvoius拼写错误。我希望,我得到一个例外说&#34;右边RIGHT_NOT_EXISTING未找到&#34;,而是它默默地忽略那个。 是否有一些配置来获得该异常?

1 个答案:

答案 0 :(得分:1)

您可以尝试覆盖ValidationEventHandler上的Unmarshaller的默认实例,看看您是否获得了所需的行为。最安全的做法是在Schema上设置Unmarshaller的实例以启用验证。