292.5. URI 和路径语法
以下示例演示了如何在 Java DSL 中调用 schematron 处理器。schematron 规则文件由类路径提供:
from("direct:start").to("schematron://sch/schematron.sch").to("mock:result")
以下示例演示了如何在 XML DSL 中调用 schematron 处理器。schematrion 规则文件来自文件系统:
<route> <from uri="direct:start" /> <to uri="schematron:///usr/local/sch/schematron.sch" /> <log message="Schematron validation status: ${in.header.CamelSchematronValidationStatus}" /> <choice> <when> <simple>${in.header.CamelSchematronValidationStatus} == 'SUCCESS'</simple> <to uri="mock:success" /> </when> <otherwise> <log message="Failed schematron validation" /> <setBody> <header>CamelSchematronValidationReport</header> </setBody> <to uri="mock:failure" /> </otherwise> </choice> </route>
提示
在哪里存储 schematron 规则?Schematron 规则可能会因业务需求而改变,因此建议在文件系统中将这些规则存储在文件系统中。当启动 schematron 组件端点时,规则作为 Java 模板对象编译到 XSLT 中。这只是为了减少实例化 Java 模板对象的开销,对于大量规则集合而言,这个过程可以通过 XSLT 转换 的四个管道进行昂贵操作。因此,如果您发生在文件系统中存储规则,在更新时,您只需要重启路由或组件。然而,在类路径中存储这些规则不会损害,但您必须构建和部署组件才能获取更改。