2015-10-21 3 views
0

Как включить проверку с помощью схемы с Jaxb2Marshaller? Пример Wiht ниже Если тег DateTime неверен (должен быть с T) 2015-09-09 T 16:56:39 "), я не получаю исключение, модель unmarshaller просто возвращает с нулевым значением.Проверка весны Jaxb2Marshaller не работает

 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

Вы видели [эту ссылку] (http://stackoverflow.com/a/26176086/3364187)? Я думаю, полезно – Xstian

+0

Да, но у меня нет ответа. Только повторяет, что спецификация схемы не заставляет Srping Jaxb2Marshaller проверять xml на схему. – magulla

ответ

0
.. 
marshaller.setValidationEventHandler(validationEvent -> processEvent(validationEvent)); 
.. 

Так что я нашел, если вы определить это, вы на самом деле начать получать события ошибок проверки и исключения, если ваш XML содержит недопустимые данные в отношении XSD.

Смежные вопросы