Red Hat Training
A Red Hat training course is available for Red Hat Fuse
273.4. URI とパスの構文
次の例は、Java DSL で schematron プロセッサーを呼び出す方法を示しています。schematron ルールファイルは、クラスパスから取得されます。
from("direct:start").to("schematron://sch/schematron.sch").to("mock:result")
次の例は、XML DSL で schematron プロセッサーを呼び出す方法を示しています。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 コンポーネントエンドポイントが開始されると、ルールは Java テンプレートオブジェクトとして XSLT にコンパイルされます。これは、Java Templates オブジェクトのインスタンス化のオーバーヘッドを最小限に抑えるために 1 回だけ実行されます。これは、大規模なルールセットの場合、プロセスが XSLT 変換 の 4 つのパイプラインを通過することを考えると、コストのかかる操作になる可能性があります。そのため、たまたまルールをファイルシステムに保存した場合、更新が発生した場合は、ルートまたはコンポーネントを再起動するだけで済みます。これらのルールをクラスパスに保存しても害はありませんが、変更を反映するにはコンポーネントをビルドしてデプロイする必要があります。