JAXB Marshaller | ValidationEventHandler如何在定位器

时间:2016-09-21 20:51:08

标签: xsd jaxb marshalling xsd-validation

我正在使用JAXB javax.xml.bind.Marshaller编组XML并将XSD验证作为其中的一部分。

我要成为元帅的对象是如下所示的复杂类型 我有类似下面的复杂课程

 class A{
    private B b;
    private C c;
    }

其中B和C是其他类。

如果XSD验证失败,我在配置的javax.xml.bind.ValidationEventHandler中收到正确的错误消息。

但问题是,我的 locator.object 只有B或C,其中XSD验证失败。

[severity = FATAL_ERROR,message = cvc-maxLength-valid:对于类型为'#AnonType_xxxxx'的maxLength'1',长度='4'的值'test'不是facet-valid。,locator = [url = NULL,线= -1,柱= -1,节点= NULL,的对象= com的.....ç@ 1f4304be 下,字段=空]]

在这里,有没有什么方法与上面的消息一起,我总能获得一个完整的类对象,即 object = com ..... A @ 1f4304be ,以便我可以投射它并用于我的进一步业务处理。

挑战是B类是唯一包含用户唯一标识符的类,因此只要C类出现故障,我就无法找到哪个用户,因为C类没有任何唯一性有关用户的信息。

寻求建议和解决方案!

0 个答案:

没有答案