第60章 JAXB
JAXB は、Java 6 に含まれる JAXB2 XML マーシャリング標準を使用して XML ペイロードを Java オブジェクトにアンマーシャリングしたり、Java オブジェクトを XML ペイロードにマーシャリングしたりするデータフォーマットです。
60.1. オプション リンクのコピーリンクがクリップボードにコピーされました!
JAXB データフォーマットは、以下に示す 19 個のオプションをサポートします。
名前 | デフォルト | Java タイプ | 説明 |
---|---|---|---|
contextPath |
| JAXB クラスが置かれているパッケージ名が 必要 です。 | |
contextPathIsClassName |
| これは、contextPath がパッケージ名を参照し、パッケージ名ではないことを示すために true に設定できます。 | |
schema |
| 既存のスキーマに対して検証します。接頭辞 classpath:、file:、または http: を使用して、リソースの解決方法を指定できます。「,」文字を使用して、複数のスキーマファイルを区切ることができます。 | |
schemaSeverityLevel |
| スキーマに対して検証する際に使用するスキーマの重大度を設定します。このレベルは、JAXB をトリガーして解析を継続する最小の重大度エラーを決定します。デフォルト値の 0 (warning)は、エラー(警告、エラー、致命的なエラー)が JAXB を停止してトリガーすることを意味します。0=warning, 1=error, 2=fatal error の 3 つのレベルがあります。 列挙値:
| |
prettyPrint |
| 適切にフォーマットされたきれいな印刷出力を有効にします。デフォルトでは false です。 | |
objectFactory |
| マーシャリング中に ObjectFactory クラスを使用して POJO クラスを作成できるようにするかどうか。これは、JAXB でアノテーションが付けられておらず、jaxb.index 記述子ファイルを提供する POJO クラスにのみ適用されます。 | |
ignoreJAXBElement |
| JAXBElement 要素を無視するかどうか。非常に特殊なユースケースでのみ false に設定する必要があります。 | |
mustBeJAXBElement |
| マーシャルは JAXB アノテーションを持つ Java オブジェクトである必要があります。そうでない場合は失敗します。このオプションは、データがすでに XML 形式である場合など、relax に false に設定できます。 | |
filterNonXmlChars |
| XML 文字以外の文字を無視して空のスペースに置き換えるには、以下を行います。 | |
encoding |
| 特定のエンコーディングを無効にして使用します。 | |
fragment |
| XML フラグメントツリーのマーシャリングを有効にします。デフォルトでは、JAXB は指定のクラスで XmlRootElement アノテーションを検索し、XML ツリー全体で動作します。これは常に便利ですが、生成されるコードには XmlRootElement アノテーションがないため、ツリーの一部だけをアンマーシャリングする必要がある場合があります。その場合、部分的なアンマーシャリングを使用できます。この動作を有効にするには、プロパティー partClass を設定する必要があります。Camel は、このクラスを JAXB のアンマーシャラーに渡します。 | |
partClass |
| フラグメント解析に使用されるクラスの名前。詳細については、フラグメントオプションを参照してください。 | |
partNamespace |
| フラグメント解析に使用する XML 名前空間。詳細については、フラグメントオプションを参照してください。 | |
namespacePrefixRef |
| JAXB または SOAP を使用してマーシャリングする場合、JAXB 実装は、ns2、ns3、ns4 などの名前空間接頭辞を自動的に割り当てます。このマッピングを制御するために、Camel では目的のマッピングを含むマップを参照できます。 | |
xmlStreamWriterWrapper |
| カスタム xml ストリームライターを使用します。 | |
schemaLocation |
| スキーマの場所を定義します。 | |
noNamespaceSchemaLocation |
| 名前空間レススキーマの場所を定義します。 | |
jaxbProviderProperties |
| JAXB マーシャラーで使用するカスタム JAXB プロバイダープロパティーを含むレジストリーで検索するカスタム java.util.Map を参照します。 | |
contentTypeHeader |
| データ形式が Content-Type ヘッダーにデータ形式のタイプを設定する必要があるかどうか。たとえば、XML にマーシャリングするデータ形式の場合は application/xml、JSON にマーシャリングするデータ形式の場合は application/json です。 |