169.11. 스키마 검증
Camel 2.11로 사용 가능
CryostatB 데이터 형식은 XML에서 마샬링 및 unmarshalling을 통해 유효성 검사를 지원합니다. 접두사 classpath:, file: 또는 http: 를 사용하여 리소스가 해결되어야 하는 방법을 지정할 수 있습니다. ',' 문자를 사용하여 여러 스키마 파일을 분리할 수 있습니다.
알려진 문제
Camel 2.11.0 및 2.11.1에는 여러 'Exchange'를 병렬로 검증하여 알려진 문제가 있습니다. 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
인스턴스가 스레드로부터 안전하지 않기 때문에 즉시에 underling SchemaFactory
인스턴스를 생성하고 풀링합니다.
그러나 thread safe인 SchemaFactory
구현이 있는 경우 이 데이터 형식을 사용하도록 CryostatB 데이터 형식을 구성할 수 있습니다.
JaxbDataFormat jaxbDataFormat = new JaxbDataFormat(); jaxbDataFormat.setSchemaFactory(thradSafeSchemaFactory);