169.10. 名前空間接頭辞のマッピングの制御
Camel 2.11 から利用可能
JAXB または SOAP を使用してマーシャリングする場合に、JAXB 実装は、ns2、ns3、ns4 などの名前空間の接頭辞を自動的に割り当てます。このマッピングを制御するために、Camel では目的のマッピングを含むマップを参照できます。
マッピング機能は、サポートされているかどうかにかかわらず、JAXB の実装に依存するため、クラスパスに JAXB-RI 2.1 以降 (SUN から) が必要であることに注意してください。
たとえば、Spring XML では、マッピングを使用して Map を定義できます。以下のマッピングファイルでは、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" を持つ java.util.Map
を検索します。
<marshal> <soapjaxb version="1.2" contextPath="com.mycompany.foo" namespacePrefixRef="myMap"/> </marshal>