272.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 ルールを保存する場所Schematron ルールはビジネス要件で変更する可能性があります。そのため、これらのルールをファイルシステム内のどこかに保存することが推奨されます。schematron コンポーネントエンドポイントが起動すると、ルールは XSLT に Java テンプレートオブジェクトとしてコンパイルされます。これは、Java テンプレートオブジェクトのインスタンス化のオーバーヘッドを最小化するために 1 回のみ行われます。これは、大量のルールセットで高価な操作となる可能性があり、プロセスが XSLT 変換 の 4 つのパイプラインを経由すると仮定します。したがって、更新時にファイルシステムにルールを保存する場合は、ルートまたはコンポーネントを再起動するだけで済みます。ただし、これらのルールをクラスパスに保存することの影響はありませんが、変更を取得するためにコンポーネントをビルドし、デプロイする必要があります。