73.10. 模式验证
JAXB 数据格式支持通过 marshalling 和 unmarshalling from/to XML 来验证。您可以使用前缀 classpath:、file: 或 http: 指定资源应该如何解析。您可以使用 ',' 字符分隔多个架构文件。
使用 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 将创建并池实时上闲置 SchemaFactory
实例的下来,因为 JDK 附带的 SchemaFactory
不安全线程。
但是,如果您有一个安全线程的 SchemaFactory
实现,您可以将 JAXB 数据格式配置为使用此数据:
JaxbDataFormat jaxbDataFormat = new JaxbDataFormat(); jaxbDataFormat.setSchemaFactory(thradSafeSchemaFactory);