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 구성 요소 끝점이 시작되면 규칙은 XSLT로 Java 템플릿 오브젝트로 컴파일됩니다. 이 작업은 Java 템플릿 오브젝트를 인스턴스화하는 오버헤드를 한 번만 수행할 수 있으며, 이는 대규모 규칙 세트에서 비용이 많이 드는 작업이 될 수 있으며 프로세스가 XSLT 변환 의 네 개의 파이프라인을 통과한 경우에 한합니다. 따라서 업데이트시 파일 시스템에 규칙을 저장하는 경우 경로 또는 구성 요소를 다시 시작하는 것입니다. 그러나 이러한 규칙을 클래스 경로에 저장할 때 문제가 발생하지 않지만 변경 사항을 가져오기 위해 구성 요소를 빌드하고 배포해야 합니다.