JAXB 2.0으로 마샬링 된 XML을 검증 할 수 있습니까?
-
03-07-2019 - |
문제
JAXB의 버전 2에서 유효성 검사기 클래스가 더 이상 사용되지 않았습니다. 이것은 Marshaller가 자동으로 XML을 검증하고 있음을 의미합니까? 그렇다면 내가 형성하는 잘못된 XML 중 일부에 대해 불평하지 않는 것 같습니다! 마샬링 된 XML을 검증하여 XSD 스키마를 준수하는 방법에 대한 조언을 할 수 있습니까?
많은 감사합니다.
해결책
JAXP 1.3 스키마 검증 프레임 워크를 사용하여 JAXB 2.0에서 유효성 검사 기능이 확장되었습니다.
당신이하기 전에 :
unmarshaller.setValidating(true);
이제해야합니다.
SchemaFactory sf = SchemaFactory.newInstance(
javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = sf.newSchema(new File("myschema.xsd"));
unmarshaller.setSchema(schema);
당신이 null을 통과하면 setSchema
, 유효성 검사를 비활성화합니다.
확인해주십시오 이 참조.
다른 팁
스키마에 따라 Java 객체가 유효한 XML을 생성하는지 확인하려면 JAXB-Verification 프로젝트를보십시오.
https://jaxb-verification.dev.java.net/
XJC에 대한 JAXB RI 플러그인으로 XML 스키마에 대한 객체 보행기 구현을 생성합니다. 이것은 XML을 검증하기 위해 Java 물체를 마샬링하지 않아도됩니다.
제휴하지 않습니다 StackOverflow