第167章 JacksonXML DataFormat
Camel バージョン 2.16 以降で利用可能
Jackson XML は、Jackson ライブラリー と XML XMLMapper エクステンション を使用して、XML ペイロードを Java オブジェクトにアンマーシャリングするか、Java オブジェクトを XML ペイロードにマーシャリングするデータ形式です。
情報: Jackson に精通している場合、この XML データ形式は対応する JSON と同じように動作するため、JSON シリアライゼーション/デシリアライゼーションのアノテーションが付けられたクラスで使用できます。
この拡張機能は、JAXB の "コードファースト" アプローチ も模倣しています。
このデータ形式は、高速で効率的な XML プロセッサーである Woodstox (特に Pretty Print などの機能) に依存しています。
from("activemq:My.Queue").
  unmarshal().jacksonxml().
  to("mqseries:Another.Queue");
from("activemq:My.Queue").
  unmarshal().jacksonxml().
  to("mqseries:Another.Queue");167.1. JacksonXML オプション
JacksonXML データ形式は、以下に示す 15 のオプションをサポートしています。
| 名前 | デフォルト | Java タイプ | 説明 | 
|---|---|---|---|
| xmlMapper | 
								 | 指定された ID を持つ既存の XmlMapper を検索して使用します。 | |
| prettyPrint | 
								 | 
								 | 適切にフォーマットされたきれいな印刷出力を有効にします。デフォルトでは false です。 | 
| unmarshalTypeName | 
								 | アンアームシャリング時に使用する Java 型のクラス名 | |
| jsonView | 
								 | POJO を JSON にマーシャリングする際に、JSON 出力から特定のフィールドを除外する場合があります。Jackson では、JSON ビューを使用してこれを実現できます。このオプションは、JsonView アノテーションを持つクラスを参照します。 | |
| include | 
								 | pojo を JSON にマーシャリングする必要があり、pojo に null 値を持つフィールドがいくつかある場合。これらの null 値をスキップするには、このオプションを NON_NULL に設定します。 | |
| allowJmsType | 
								 | 
								 | JMS ユーザーが JMS 仕様の JMSType ヘッダーを使用して、アンマーシャリングに使用する FQN クラス名を指定できるようにするために使用されます。 | 
| collectionTypeName | 
								 | 使用するレジストリーを参照するカスタムコレクションタイプを参照します。このオプションはあまり使用しないでください。ただし、デフォルトとして java.util.Collection に基づくものとは異なるコレクションタイプを使用できます。 | |
| useList | 
								 | 
								 | Map の List または Pojo の List にアンマーシャリングします。 | 
| enableJaxbAnnotationModule | 
								 | 
								 | jackson の使用時に JAXB アノテーションモジュールを有効にするかどうか。有効にすると、Jackson によって JAXB アノテーションを使用できます。 | 
| moduleClassNames | 
								 | カスタム Jackson モジュール com.fasterxml.jackson.databind.Module を使用するには、FQN クラス名を持つ文字列として指定します。複数のクラスはコンマで区切ることができます。 | |
| moduleRefs | 
								 | Camel レジストリーから参照されるカスタム Jackson モジュールを使用します。複数のモジュールはコンマで区切ることができます。 | |
| enableFeatures | 
								 | Jackson com.fasterxml.jackson.databind.ObjectMapper で有効にする機能のセット。この機能は、com.fasterxml.jackson.databind.SerializationFeature、com.fasterxml.jackson.databind.DeserializationFeature、または com.fasterxml.jackson.databind.MapperFeature の列挙型と一致する名前である必要があります。複数の機能はコンマで区切ることができます。 | |
| disableFeatures | 
								 | Jackson com.fasterxml.jackson.databind.ObjectMapper で無効にする機能のセット。この機能は、com.fasterxml.jackson.databind.SerializationFeature、com.fasterxml.jackson.databind.DeserializationFeature、または com.fasterxml.jackson.databind.MapperFeature の列挙型と一致する名前である必要があります。複数の機能はコンマで区切ることができます。 | |
| allowUnmarshallType | 
								 | 
								 | 有効にすると、Jackson はアンマーシャリング中に CamelJacksonUnmarshalType ヘッダーの使用を試みることができます。これは、使用する必要がある場合にのみ有効にする必要があります。 | 
| contentTypeHeader | 
								 | 
								 | データフォーマットがデータ形式を実行できる場合は、データフォーマットの型で Content-Type ヘッダーを設定するかどうか。たとえば、XML にマーシャリングするデータ形式の場合は application/xml、JSON にマーシャリングするデータ形式の場合は JSon です。 |