JAXB xjc ツールを使用した XML スキーマ・ファイルからの JAXB クラスの生成

Java Architecture for XML Binding (JAXB) xjc ツールを使用して、 XML スキーマ・ファイルを完全なアノテーションが付いた Java クラスにコンパイルします。

事前処理

XML スキーマ・ファイルを開発するか、または取得します。

このタスクの概要

JAXB API およびツールを使用して、XML スキーマと Java クラスの間のマッピングを確立します。 XML スキーマは、XML 文書内のデータ・エレメントと関係を記述します。 データ・マッピングまたはバインディングが存在するようになったら、 XML 文書と Java オブジェクトとの間で双方向に変換できます。 XML 文書に保管されているデータには、XML データ構造を理解していなくてもアクセスすることができます。

既存の Web サービス記述言語 (WSDL) ファイルから開始するトップダウン開発により Web サービスを作成するには、wsimport ツールを使用して、WSDL ファイルから開始する場合の Java API for XML-Based Web Services (JAX-WS) アプリケーションの成果物を生成します。 アプリケーションの Java 成果物が生成された後、JAXB スキーマ・コンパイラー xjc コマンド行ツールを使用して、XML スキーマ・ファイルから完全なアノテーションが付いた Java クラスを生成できます。 その結果のアノテーション付き Java クラスには、マーシャルおよびアンマーシャル用の XML を構文解析するために JAXB ランタイムが必要とするすべての情報が含まれています。 生成された JAXB クラスは、Java API for XML Web Services (JAX-WS) アプリケーション内で、 または XML データの処理用の他の Java アプリケーション内で使用できます。

ベストプラクティス:WebSphere® Application ServerXML ベースの Web サービス用の Java™ API (JAX-WS) と XML バインディング用の Java アーキテクチャ (JAXB) ツールを提供します。 完全プロファイルで、wsimportwsgenschemagen、および xjc のコマンド行ツールは、app_server_root\bin\ ディレクトリーにあります。 Liberty プロファイルで、wsimport コマンドと wsgen コマンドは、 app_server_root\jaxws\bin\ ディレクトリーにあります。 のxjcそしてschemagenコマンドはアプリケーションサーバールートLiberty プロファイルの \jaxb\bin\ ディレクトリ。 同様のツールは、Java SE 開発キット (JDK) 6 でも提供されています。 場合によっては、 WebSphere Application ServerJDK は同じレベルの仕様をサポートします。 一般的に、JDK ツールにより生成される成果物は、対応している他のランタイム環境間で移植可能です。 ただし、この製品に付属のツールを使用することで、 WebSphere Application Server環境と、サポートされていない機能を活用するためにWebSphere Application Server。 JAX-WS および JAXB V2.2 ツールを利用するには、app_server_root¥bin¥ ディレクトリーにあるアプリケーション・サーバー提供のツールを使用します。
サポートされている構成:この製品はJAXBをサポートしています2.2仕様。 JAX-WS 2.2 では、データ・バインディングに JAXB 2.2 が必要です。

コマンド行から xjc ツールを使用する以外にも、 この JAXB ツールを Ant ビルド環境内で起動することができます。 Ant ビルド環境内で com.sun.tools.xjc.XJCTask Ant タスクを使用して xjc スキーマ・コンパイラー・ツールを起動します。 この Ant タスクが正しく作動するようにするには、 ws_ant スクリプトを使用して Ant を起動する必要があります。

トラブルを避ける:を使用している場合はxjcAntタスクでは、destdirパラメータを使用して、targetオプション。 指定するtargetオプションを使用する場合xjcAnt タスクによりエラーが発生します。

手順

  1. JAXBスキーマコンパイラを使用する。xjc JAXB アノテーション付き Java クラスを生成するコマンド。
    スキーマコンパイラは、アプリケーションサーバールート\bin\ ディレクトリ。 スキーマ・コンパイラーは、コンパイルに使用されたバインディング・オプションにより、 Java ソース・ファイルと Java プロパティー・ファイルを含むパッケージのセットを生成します。
  2. (オプション) カスタム・バインディング宣言を使用して、 デフォルトの JAXB マッピングを変更します。
    XML スキーマ・ファイルまたは別個のバインディング・ファイルのいずれかにバインディング宣言を定義します。 カスタムバインディングファイルを渡すには、-bオプションxjc指示。
  3. 生成済み JAXB オブジェクトをコンパイルします。
    生成済み成果物をコンパイルするには、 Thin Client for JAX-WS with WebSphere Application Server をクラスパスに追加します。

結果

JAXB オブジェクトが生成されたので、生成済み JAXB を使用して Java アプリケーションを作成し、 生成済み JAXB クラスを介して XML コンテンツを操作できます。

以下の例は、既存の XML スキーマ・ファイルから開始する場合に、JAXB ツールが Java クラスをどのように生成するかを示しています。
  1. 以下の bookSchema.xsd スキーマ・ファイルを一時ディレクトリーにコピーします。
      <xsd:schema xmlns:xsd="https://www.w3.org/2001/XMLSchema">                                          
         <xsd:element name="CatalogData">                                                               
           <xsd:complexType >                                                                         
             <xsd:sequence>                                                                         
               <xsd:element name="books" type="bookdata" minOccurs="0" 
    						maxOccurs="unbounded"/>    
             </xsd:sequence>                                                                        
           </xsd:complexType>                                                                         
         </xsd:element>                                                                                 
         <xsd:complexType name="bookdata">                                                              
           <xsd:sequence>                                                                             
             <xsd:element name="author" type="xsd:string"/>                                         
             <xsd:element name="title" type="xsd:string"/>                                          
             <xsd:element name="genre" type="xsd:string"/>                                          
             <xsd:element name="price" type="xsd:float"/>                                           
             <xsd:element name="publish_date" type="xsd:dateTime"/>                                 
             <xsd:element name="description" type="xsd:string"/>                                    
           </xsd:sequence>                                                                            
           <xsd:attribute name="id" type="xsd:string"/>                                               
         </xsd:complexType>                                                                             
       </xsd:schema>        
    
  2. コマンド・プロンプトを開きます。
  3. スキーマ・ファイルがあるディレクトリーから、JAXB スキーマ・コンパイラーの xjc コマンドを実行します。 のxjcスキーマコンパイラツールは、アプリケーションサーバールート\bin\ ディレクトリ。
    [Windows]
    app_server_root\bin\xjc.bat bookSchema.xsd
    [Linux][AIX][HP-UX][Solaris]
    app_server_root/bin/xjc.sh bookSchema.xsd
    xjc コマンドを実行すると、以下の JAXB Java ファイルが生成されます。
    generated\Bookdata.java
    generated\CatalogdData.java
    generated\ObjectFactory.java
    
  4. Java アプリケーション内の生成済み JAXB オブジェクトを使用して、生成済み JAXB クラスを介して XML コンテンツを操作します。

xjc コマンドについて詳しくは、 JAXB Reference implementation のドキュメンテーションを参照してください。