検索

30.2. XML DSL

download PDF

XML DSL での Simple 式

XML DSL では、simple 要素内に式を配置することで、Simple 式を使用できます。たとえば、ヘッダー foo の内容に基づいてフィルタリングを実行するルートを定義します。

<route id="simpleExample">
  <from uri="seda:orders"/>
  <filter>
    <simple>${in.header.foo}</simple>
    <to uri="mock:fooOrders"/>
  </filter>
</route>

代替プレースホルダー構文

たとえば、Spring プロパティープレースホルダーや OSGi Blueprint プロパティープレースホルダーを有効にしている場合、${Expression} の構文が別のプロパティープレースホルダーの構文と競合することがあります。この場合、Simple 式に使用する代替構文 $simple{Expression} を使用して、プレースホルダーの曖昧さを解決できます。以下に例を示します。

<simple>Hello $simple{in.header.name}, how are you?</simple>

開始トークンおよび終了トークンのカスタマイズ

XML 設定から、SimpleLanguage インスタンスをオーバーライドすることで、開始トークンおよび終了トークン (デフォルトでは { および }) をカスタマイズできます。たとえば、開始トークンおよび終了トークンを [ および ] に変更するには、以下のように XML 設定ファイルで新しい SimpleLanguage Bean を定義します。

<bean id="simple" class="org.apache.camel.language.simple.SimpleLanguage">
  <constructor-arg name="functionStartToken" value="["/>
  <constructor-arg name="functionEndToken" value="]"/>
</bean>
注記

開始トークンおよび終了トークンをカスタマイズすると、クラスパス上で同じ camel-core ライブラリーを共有するすべての Apache Camel アプリケーションに影響します。たとえば、OSGi サーバーでは多くのアプリケーションに影響する可能性がありますが、Web アプリケーション (WAR ファイル) では、Web アプリケーション自体にしか影響を与えません。

XML DSL の空白と自動トリミング

デフォルトでは、XML DSL における Simple 式の前後にある空白文字は、自動的にトリミングされます。以下の式は空白で囲まれています。

<transform>
  <simple>
    data=${body}
  </simple>
</transform>

よって、自動でトリミングされ、空白のない以下の式と同等になります。

<transform>
  <simple>data=${body}</simple>
</transform>

式の前後に改行を入れたい場合は、以下のように改行文字を明示的に追加できます。

<transform>
  <simple>data=${body}\n</simple>
</transform>

また、以下のように trim 属性に false を設定すると、自動トリミング機能をオフにすることができます。

<transform trim="false">
  <simple>data=${body}
</simple>
</transform>
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.