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);