168.11. 스키마 검증

Camel 2.11에서 사용 가능

JAXB 데이터 형식은/에서 XML로 마샬링 및 unmarshalling하여 유효성 검사를 지원합니다. 접두사 classpath:, file: 또는 http: 를 사용하여 리소스를 해석하는 방법을 지정할 수 있습니다. ',' 문자를 사용하여 여러 스키마 파일을 분리할 수 있습니다.

알려진 문제

Camel 2.11.0 및 2.11.1에는 여러 'Exchange's를 병렬로 검증하여 알려진 문제가 있습니다. CAMEL-6630 을 참조하십시오. 이 문제는 Camel 2.11.2/2.12.0에서 해결되었습니다.

Java DSL을 사용하면 다음과 같은 방식으로 구성할 수 있습니다.

JaxbDataFormat jaxbDataFormat = new JaxbDataFormat();
jaxbDataFormat.setContextPath(Person.class.getPackage().getName());
jaxbDataFormat.setSchema("classpath:person.xsd,classpath:address.xsd");

XML DSL을 사용하여 동일한 작업을 수행할 수 있습니다.

<marshal>
    <jaxb id="jaxb" schema="classpath:person.xsd,classpath:address.xsd"/>
</marshal>

Camel은 JDK와 함께 제공되는 SchemaFactory 가 스레드 안전이 아니므로 즉시 SchemaFactory 인스턴스를 만들고 풀링합니다.
그러나 thread safe인 SchemaFactory 구현이 있는 경우 이 값을 사용하도록 JAXB 데이터 형식을 구성할 수 있습니다.

JaxbDataFormat jaxbDataFormat = new JaxbDataFormat();
jaxbDataFormat.setSchemaFactory(thradSafeSchemaFactory);