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&unmarshalId=myjaxb&targetModel=org.example.Order"/>