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>