문제

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 물체를 마샬링하지 않아도됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top