解组非根元素

问题描述:

当你解组整个XML与JAXB当JAXB模式验证,您可以设置XML模式解析期间启用验证:解组非根元素

//javax.xml.validation.Schema schema = ... 
jaxbUnmarshaller = JAXBContext.newInstance(SomeRootType.class).createUnmarshaller(); 
jaxbUnmarshaller.setSchema(schema); 

在另一方面,当你的NestedObjest小号解组列表从XML,一个接一个地(例如以减少存储器使用)该方法失败(如架构仅接受根)配有一个例外:

org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 22; cvc-elt.1: Cannot find the declaration of element 'NestedObject' 

它未能即使NestedObjectType处于XSD良好定义。有没有任何选项来启用嵌套对象验证?请注意,定义新的模式是一个悲惨的选择,因为XSD对于我的应用程序是由其他人维护的外部应用程序。

+3

中解释的那样,您能否提供一些示例输入,哪里出现此错误? –

您是否尝试过将绑定bean的类传递给unmarshal方法?就像在Example 65. Unmarshalling into a known type

+0

我做到了。不起作用。 – jaskmar

+0

你可以修改源xml吗?例如:添加xsi:type属性 –

+0

我无法修改xml/schema。在示例中,您链接的teher未启用验证。 – jaskmar