第168章 JAXB DataFormat

Camel バージョン 1.0 以降で利用可能

JAXB は、Java 6 に含まれている JAXB2 XML マーシャリング標準を使用して、XML ペイロードを Java オブジェクトにアンマーシャリングするか、Java オブジェクトを XML ペイロードにマーシャリングするデータ形式です。

168.1. オプション

JAXB データ形式は、以下にリストされているオプションを 18 個サポートしています。

名前デフォルトJava タイプ説明

contextPath

 

String

JAXB クラスが配置されているパッケージ名。

schema

 

String

既存のスキーマに対して検証します。接頭辞 classpath:、file:、または http: を使用して、リソースの解決方法を指定できます。「,」文字を使用して、複数のスキーマファイルを区切ることができます。

schemaSeverityLevel

0

Integer

スキーマに対して検証するときに使用するスキーマの重大度レベルを設定します。このレベルは、重大度が最小のエラーを判断し、JAXB をトリガーして解析の続行を停止します。デフォルト値の 0 (警告) は、エラー (警告、エラー、または致命的なエラー) によって JAXB が停止することを意味します。0=警告、1=エラー、2=致命的なエラーという 3 つのレベルがあります。

prettyPrint

false

Boolean

適切にフォーマットされたきれいな印刷出力を有効にします。デフォルトでは false です。

objectFactory

false

Boolean

マーシャリング中に ObjectFactory クラスを使用して POJO クラスを作成できるようにするかどうか。これは、JAXB でアノテーションが付けられておらず、jaxb.index 記述子ファイルを提供していない POJO クラスにのみ適用されます。

ignoreJAXBElement

false

Boolean

JAXBElement 要素を無視するかどうか。非常に特殊なユースケースでのみ false に設定する必要があります。

mustBeJAXBElement

false

Boolean

マーシャリングが JAXB アノテーション付きの Java オブジェクトでなければならないかどうか。そうでない場合は失敗します。このオプションを false に設定すると、データがすでに XML 形式になっている場合など、設定が緩和されます。

filterNonXmlChars

false

Boolean

xml 以外の文字を無視し、空白に置き換えます。

encoding

 

String

特定のエンコーディングを無効にして使用します

fragment

false

Boolean

XML フラグメントツリーのマーシャリングをオンにします。デフォルトでは、JAXB は指定されたクラスの XmlRootElement アノテーションを探して、XML ツリー全体を操作します。これは便利ですが、常に有用であるわけではありません。たとえば、生成されたコードに XmlRootElement アノテーションがない場合や、ツリーの一部だけを非整列化する必要がある場合などが挙げられます。その場合、部分的なアンマーシャリングを使用できます。この動作を有効にするには、プロパティー partClass を設定する必要があります。Camel は、このクラスを JAXB のアンマーシャラーに渡します。

partClass

 

String

フラグメント解析に使用されるクラスの名前。詳細については、フラグメントオプションを参照してください。

partNamespace

 

String

フラグメントの解析に使用する XML 名前空間。詳細については、フラグメントオプションを参照してください。

namespacePrefixRef

 

String

JAXB または SOAP を使用してマーシャリングする場合、JAXB 実装は、ns2、ns3、ns4 などの名前空間接頭辞を自動的に割り当てます。このマッピングを制御するために、Camel では目的のマッピングを含むマップを参照できます。

xmlStreamWriterWrapper

 

String

カスタム xml ストリームライターを使用します。

schemaLocation

 

String

スキーマのロケーションを定義します

noNamespaceSchemaLocation

 

String

名前空間のないスキーマのロケーションを定義します

jaxbProviderProperties

 

String

カスタム java.util.Map を参照して、JAXB マーシャラーで使用されるカスタム JAXB プロバイダープロパティーを含むレジストリーを検索します。

contentTypeHeader

false

Boolean

データフォーマットがデータ形式を実行できる場合は、データフォーマットの型で Content-Type ヘッダーを設定するかどうか。たとえば、XML にマーシャリングするデータ形式の場合は application/xml、JSON にマーシャリングするデータ形式の場合は JSon です。