30.2. XML DSL
30.2.1. XML DSL의 간단한 표현식
XML DSL에서는 표현식을 간단한 요소 내에 배치하여 간단한 표현식을 사용할 수 있습니다. 예를 들어
foo
헤더의 내용을 기반으로 필터링을 수행하는 경로를 정의하려면 다음을 수행합니다.
<route id="simpleExample"> <from uri="seda:orders"/> <filter> <simple>${in.header.foo}</simple> <to uri="mock:fooOrders"/> </filter> </route>
30.2.2. 대체 자리 표시자 구문
예를 들어 Spring 속성 자리 표시자 또는 OSGi 블루프린트 속성 자리 표시자가 있는 경우, ${Expression}
구문이 다른 속성 자리 표시자 구문과 충돌하는 경우가 있습니다. 이 경우 단순 표현식에 대해 대체 구문 $simple{Expression}
을 사용하여 자리 표시자를 모호할 수 있습니다. 예를 들면 다음과 같습니다.
<simple>Hello $simple{in.header.name}, how are you?</simple>
30.2.3. 시작 및 종료 토큰 사용자 정의
XML 구성에서 SimpleLanguage
인스턴스를 재정의하여 시작 및 종료 토큰(기본적으로{
및 }
)을 사용자 지정할 수 있습니다. 예를 들어 시작 및 끝 토큰을 [
및 ]
로 변경하려면 다음과 같이 XML 구성 파일에 새 SimpleLanguage
8080을 정의합니다.
<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 서버에서는 많은 애플리케이션에 영향을 미칠 수 있지만 웹 애플리케이션(WAR 파일)에서는 웹 애플리케이션 자체에만 영향을 미칩니다.
30.2.4. XML DSL의 공백 및 자동 할당
기본적으로 간단한 표현식을 따르는 공백은 XML DSL에서 자동으로 트리밍됩니다. 공백을 중심으로 하는 이 표현식은 다음과 같습니다.
<transform> <simple> data=${body} </simple> </transform>
이 표현식은 자동으로 트리밍되므로 이 표현식(백백 공간 주변 없음)과 동일합니다.
<transform> <simple>data=${body}</simple> </transform>
식 전이나 후에 줄 바꿈 문자를 포함하려는 경우 다음과 같이 줄 바꿈 문자를 명시적으로 추가할 수 있습니다.
<transform> <simple>data=${body}\n</simple> </transform>
또는 트리밍
속성을 false
로 설정하여 다음과 같이 자동 분석을 전환할 수 있습니다.
<transform trim="false"> <simple>data=${body} </simple> </transform>