169.10. 네임스페이스 접두사 매핑 제어

Camel 2.11에서 사용 가능

JAXB 또는 SOAP 를 사용하여 마샬링할 때 JAXB 구현에서는 ns2, ns3, ns4 등과 같은 네임스페이스 접두사를 자동으로 할당합니다. 이 매핑을 제어하기 위해 Camel을 사용하면 원하는 매핑이 포함된 맵을 참조할 수 있습니다.

매핑 기능이 지원되었는지 여부에 따라 JAXB-RI 2.1 또는 더 나은(SUN에서) 클래스 경로의 구현이 필요합니다.

예를 들어 Spring XML에서는 매핑을 사용하여 맵을 정의할 수 있습니다. 아래 매핑 파일에서는 SOAP을 매핑하여 soap을 접두사로 사용합니다. 사용자 정의 네임스페이스 "http://www.mycompany.com/foo/2"는 접두사를 사용하지 않습니다.

  <util:map id="myMap">
    <entry key="http://www.w3.org/2003/05/soap-envelope" value="soap"/>
    <!-- we dont want any prefix for our namespace -->
    <entry key="http://www.mycompany.com/foo/2" value=""/>
  </util:map>

JAXB 또는 SOAP 에서 이를 사용하려면 아래와 같이 namespacePrefixRef 특성을 사용하여 이 맵을 참조합니다. 그런 다음 Camel은 레지스트리에서 이전에 정의한 ID "myMap" ID를 사용하여 java.util.Map 을 조회합니다.

  <marshal>
    <soapjaxb version="1.2" contextPath="com.mycompany.foo" namespacePrefixRef="myMap"/>
  </marshal>