使用JAXB解组整个XML时,可以设置XML模式以在解析期间启用验证:
//javax.xml.validation.Schema schema = ...
jaxbUnmarshaller = JAXBContext.newInstance(SomeRootType.class).createUnmarshaller();
jaxbUnmarshaller.setSchema(schema);
Run Code Online (Sandbox Code Playgroud)
另一方面,当您NestedObjest从XML 解组s 列表时,逐个(例如,减少内存使用)此方法失败(因为Schema只接受root),但有异常:
org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 22; cvc-elt.1: Cannot find the declaration of element 'NestedObject'
Run Code Online (Sandbox Code Playgroud)
即使NestedObjectType在XSD中定义良好,它也会失败.是否有任何选项可以启用嵌套对象验证?请注意,定义新架构是一个悲惨的选择,因为XSD是我的应用程序外部维护的其他人.
| 归档时间: |
|
| 查看次数: |
667 次 |
| 最近记录: |