292.5. URI 및 경로 구문
다음 예제에서는 Java DSL에서 schematron 프로세서를 호출하는 방법을 보여줍니다. schematron 규칙 파일은 클래스 경로에서 가져온 것입니다.
from("direct:start").to("schematron://sch/schematron.sch").to("mock:result")
다음 예제에서는 XML DSL에서 schematron 프로세서를 호출하는 방법을 보여줍니다. 스키마 분석 규칙 파일은 파일 시스템에서 가져옵니다.
<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 규칙은 비즈니스 요구 사항에 따라 변경될 수 있으므로 이러한 규칙을 파일 시스템에 저장하는 것이 좋습니다. 스키마tron 구성 요소 끝점이 시작되면 규칙이 XSLT로 Java Templates Object로 컴파일됩니다. 이 작업은 Java 템플릿 오브젝트 인스턴스화 오버헤드를 최소화하기 위해 한 번만 수행되며, 이는 대규모 규칙 세트에 대한 비용이 많이 들고 프로세스가 XSLT 변환 의 네 개의 파이프라인을 통과하도록 할 수 있습니다. 따라서 파일 시스템에 규칙을 저장하는 경우 업데이트 시 경로 또는 구성 요소를 다시 시작해야 합니다. 그러나 이러한 규칙을 클래스 경로에 저장하는 데 손상되지 않지만 구성 요소를 빌드하고 배포해야 변경 사항을 가져와야 합니다.