이 콘텐츠는 선택한 언어로 제공되지 않습니다.
30.2. XML DSL
Simple expressions in XML DSL 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
In the XML DSL, you can use a simple expression by putting the expression inside a
simple element. For example, to define a route that performs filtering based on the contents of the foo header:
Alternative placeholder syntax 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
Sometimes—for example, if you have enabled Spring property placeholders or OSGi blueprint property placeholders—you might find that the
${Expression} syntax clashes with another property placeholder syntax. In this case, you can disambiguate the placeholder using the alternative syntax, $simple{Expression}, for the simple expression. For example:
<simple>Hello $simple{in.header.name}, how are you?</simple>
<simple>Hello $simple{in.header.name}, how are you?</simple>
Customizing the start and end tokens 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
From XML configuration, you can customize the start and end tokens (
{ and }, by default) by overriding the SimpleLanguage instance. For example, to change the start and end tokens to [ and ], define a new SimpleLanguage bean in your XML configuration file, as follows:
<bean id="simple" class="org.apache.camel.language.simple.SimpleLanguage"> <constructor-arg name="functionStartToken" value="["/> <constructor-arg name="functionEndToken" value="]"/> </bean>
<bean id="simple" class="org.apache.camel.language.simple.SimpleLanguage">
<constructor-arg name="functionStartToken" value="["/>
<constructor-arg name="functionEndToken" value="]"/>
</bean>
Note
Customizing the start and end tokens affects all Apache Camel applications that share the same
camel-core library on their classpath. For example, in an OSGi server this might affect many applications; whereas in a Web application (WAR file) it would affect only the Web application itself.
Whitespace and auto-trim in XML DSL 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
By default, whitespace preceding and following a simple expression is automatically trimmed in XML DSL. So this expression with surrounding whitespace:
<transform>
<simple>
data=${body}
</simple>
</transform>
<transform>
<simple>
data=${body}
</simple>
</transform>
is automatically trimmed, so that it is equivalent to this expression (no surrounding whitespace):
<transform>
<simple>data=${body}</simple>
</transform>
<transform>
<simple>data=${body}</simple>
</transform>
If you want to include newlines before or after the expression, you can either explicitly add a newline character, as follows:
<transform>
<simple>data=${body}\n</simple>
</transform>
<transform>
<simple>data=${body}\n</simple>
</transform>
or you can switch off auto-trimming, by setting the
trim attribute to false, as follows:
<transform trim="false">
<simple>data=${body}
</simple>
</transform>
<transform trim="false">
<simple>data=${body}
</simple>
</transform>