290.4. 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 변환 의 네 개의 파이프라인을 통과하도록 할 수 있습니다. 따라서 파일 시스템에 규칙을 저장하는 경우 업데이트 시 경로 또는 구성 요소를 다시 시작해야 합니다. 그러나 이러한 규칙을 클래스 경로에 저장하는 데 손상되지 않지만 구성 요소를 빌드하고 배포해야 변경 사항을 가져와야 합니다.