如何使用Jaxb2Marshaller启用针对架构的验证? 以下示例如果DateTime标记错误(应该与T“2015-09-09 T 16:56:39”),我不会得到异常,unmarshaller只返回带有null的模型。
schema: <xs:element name="ExecutionTime" minOccurs="0" maxOccurs="1"
type="xs:dateTime" />
tag example <ExecutionTime>2015-09-09 16:56:39</ExecutionTime>
Jaxb2Marshaller marshaller = null;
marshaller = new Jaxb2Marshaller();
marshaller.setContextPath(contextPath);
ClassPathResource schemaResource = new ClassPathResource(classpathXSD);
marshaller.setSchema(schemaResource);
marshaller.setMappedClass(Entity.class);
marshaller.unmarshal(stringSource)
答案 0 :(得分:0)
..
marshaller.setValidationEventHandler(validationEvent -> processEvent(validationEvent));
..
所以我发现,如果你指定了这个,如果你的XML有关于XSD的无效数据,你实际上会开始获得验证错误事件和异常。