WebSphere Application Server Version 6.1 Feature Pack for Web Services   
             オペレーティング・システム: AIX , HP-UX, i5/OS, Linux, Solaris, Windows, Windows Vista, z/OS

             目次と検索結果のパーソナライズ化
             New or updated topic for this feature pack

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

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

始める前に

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

このタスクについて

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

JAXB スキーマ・コンパイラーの xjc コマンド行ツールを使用して、XML スキーマ・ファイルから完全なアノテーションが付いた Java クラスを生成できます。 その結果のアノテーション付き Java クラスには、マーシャルおよびアンマーシャル用の XML を構文解析するために JAXB ランタイムが必要とするすべての情報が含まれています。 生成された JAXB クラスは、Java API for XML Web Services (JAX-WS) アプリケーション内で、 または XML データの処理用の JAX-WS 以外の Java アプリケーション内で使用できます。

プロシージャー

  1. JAXB スキーマ・コンパイラーの xjc コマンドを使用して、 JAXB のアノテーション付き Java クラスを生成します。 スキーマ・コンパイラーは、app_server_root¥bin¥ ディレクトリーにあります。 スキーマ・コンパイラーは、コンパイルに使用されたバインディング・オプションにより、 Java ソース・ファイルと Java プロパティー・ファイルを含むパッケージのセットを生成します。
  2. (オプション) カスタム・バインディング宣言を使用して、 デフォルトの JAXB マッピングを変更します。 XML スキーマ・ファイルまたは別個のバインディング・ファイルのいずれかにバインディング宣言を定義します。 xjc コマンドに -b オプションを使用して、 カスタム・バインディング・ファイルを受け渡すことができます。
  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="http://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 スキーマ・コンパイラー・ツールは、 app_server_root¥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 2.0 Reference implementation のドキュメンテーションを参照してください。




関連概念
JAXB
関連タスク
XML データ・バインディングのための JAXB の使用
JAXB ツールを使用した Java クラスからの XML スキーマ・ファイルの生成
JAXB ランタイムを使用した XML 文書のマーシャルとアンマーシャル
関連資料
Web サービス仕様と API
関連情報
JAXB 2.0 Reference implementation
Java Architecture for XML Binding (JAXB) 2.0 specification documentation
タスク・トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 4:10:06 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.wsfep.multiplatform.doc/info/ae/ae/twbs_jaxbschema2java.html