58.4. 部分マーシャリング/アンマーシャリング


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

その場合、部分的なアンマーシャリングを使用できます。この動作を有効にするには、プロパティー partClass を設定する必要があります。Camel は、このクラスを JAXB のアンマーシャラーに渡します。JaxbConstants.JAXB_PART_CLASS がヘッダーの 1 つとして設定されている場合 (DataFormat に partClass プロパティーが設定されていても)、DataFormat のプロパティーが優先され、ヘッダーに設定されているものが使用されます。

マーシャリング用に、宛先名前空間の QName を含む partNamespace 属性を追加する必要があります。Spring DSL の例は、上記で確認できます。

JaxbConstants.JAXB_PART_NAMESPACE がヘッダーの 1 つとして設定されている場合 (DataFormat で partNamespace プロパティーが設定されていても)、DataFormat のプロパティーが優先されて、ヘッダーに設定されているものが使用されます。JaxbConstants.JAXB_PART_NAMESPACE を使用して partNamespace を設定する際、それに対する値 \{namespaceUri}localPart を指定する必要があることに注意してください。

   ...
   .setHeader(JaxbConstants.JAXB_PART_NAMESPACE, simple("{http://www.camel.apache.org/jaxb/example/address/1}address"));
   ...
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.