32.4. ランタイムマーシャラーへのクラスの追加


概要

Apache CXF ランタイムが XML データを読み書きするとき、XML スキーマタイプをそれらの代表的な Java タイプに関連付けるマップを使用します。デフォルトでは、マップには WSDL コントラクトの schema 要素のターゲット namespace で定義されたすべてのタイプが含まれます。また、WSDL コントラクトにインポートされたスキーマの名前空間から生成されたタイプも含まれています。

アプリケーションの schema 要素によって使用されるスキーマ namespace 以外の名前空間から型を追加するには、@XmlSeeAlso アノテーションを使用します。アプリケーションがアプリケーションの WSDL ドキュメントの範囲外で生成されるタイプを操作する必要がある場合は、@XmlSeeAlso アノテーションを編集して JAXB マップに追加できます。

@XmlSeeAlso アノテーションを使用する

@XmlSeeAlso アノテーションは、サービスの SEI に追加できます。JAXB コンテキストに含めるクラスのコンマ区切りリストが含まれています。例32.7「JAXB コンテキストにクラスを追加するための構文」@XmlSeeAlso アノテーションを使用する構文を示しています。

例32.7 JAXB コンテキストにクラスを追加するための構文

import javax.xml.bind.annotation.XmlSeeAlso;
     @WebService()
     @XmlSeeAlso({Class1.class, Class2.class, ..., ClassN.class})
     public class GeneratedSEI {
         ...
     }

JAXB が生成したクラスにアクセスできる場合は、必要なタイプに対応するために生成された ObjectFactory クラスを使用することがより効率的になります。ObjectFactory クラスを含めるには、オブジェクトファクトリーに認識されるすべてのクラスが含まれます。

例32.8「JAXB コンテキストへのクラスの追加」 は、@XmlSeeAlso アノテーションが付けられた SEI を示しています。

例32.8 JAXB コンテキストへのクラスの追加

...
import javax.xml.bind.annotation.XmlSeeAlso;
...
    @WebService()
    @XmlSeeAlso({org.apache.schemas.types.test.ObjectFactory.class, org.apache.schemas.tests.group_test.ObjectFactory.class})
    public interface Foo {
        ...
    }
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.