87.4. Dozer でのデータ形式の使用

Dozer は、Java 以外のソースとマッピングのターゲットをサポートしていないため、たとえば、XML ドキュメントを単独で Java オブジェクトにマッピングすることはできません。 幸いなことに、Camel は Java と データフォーマット を使用したさまざまなフォーマットとの間のマーシャリングを幅広くサポートしています。 Dozer コンポーネントは、このサポートを利用して、入力および出力データを Dozer 経由で処理する前にデータ形式で渡す必要があることを指定できるようにします。 これは、Dozer への呼び出しの外でいつでも自分で行うことができますが、Dozer コンポーネントで直接サポートすることで、単一のエンドポイントを使用して Camel 内でエニーツーエニー変換を設定できます。

例として、Dozer コンポーネントを使用して、XML データ構造と JSON データ構造の間をマッピングしたいとします。 Camel コンテキストで次のデータ形式が定義されているとします。

<dataFormats>
  <json library="Jackson" id="myjson"/>
  <jaxb contextPath="org.example" id="myjaxb"/>
</dataFormats>

次に Dozer エンドポイントを設定して、JAXB データ形式を使用して入力 XML をアンマーシャリングし、Jackson を使用してマッピング出力をマーシャリングします。

<endpoint uri="dozer:xml2json?marshalId=myjson&amp;unmarshalId=myjaxb&amp;targetModel=org.example.Order"/>