Webアプリ開発エンジニアのための技術情報サイト「テックスコア」

11.JAXB(3)

2005.10.14 株式会社四次元データ 小野彩子

今回は、JavaインスタンスよりXML文書を生成してみましょう。

11.1 JavaインスタンスよりXML文書を生成する

今回も従業員情報を例として取り上げます。以下のように、Employeeインスタンス2つと、Employeeのリストを保持するEmployeesインスタンスを生成します。EmployeesクラスやEmployeeクラスは、前々回JAXBを使用して、XMLスキーマより自動生成したクラスです。

EmployeesクラスやEmployeeクラスの図

このインスタンスの情報を、以下のようにXML文書に書き出すプログラムを作成します。

employees.xml
<?xml version="1.0"?>
<employees> <employee> <name>山田太郎</name> <nameKana>ヤマダタロウ</nameKana> <section>開発部</section> </employee> <employee> <name>海野次郎</name> <nameKana>ウミノジロウ</nameKana> <section>営業部</section> </employee> </employees>

以下は、与えられたインスタンスのツリーを、XML文書を出力するプログラムです。

Instance2XML.java
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;

import javax.xml.bind.Marshaller;


import test.jaxb.ObjectFactory;
import test.jaxb.Employees;
import test.jaxb.Employee;


import java.io.FileOutputStream;
import java.util.List;


public class Instance2XML {


    public static void main(String args[])  throws JAXBException{


        try {




            ObjectFactory objFactory = new ObjectFactory();

            Employees employees= (Employees) objFactory.createEmployees();
            List employeeList = employees.getEmployee();

            Employee employee = objFactory.createEmployee();
            employee.setName("山田太郎");
            employee.setNameKana("ヤマダタロウ");
            employee.setSection("開発部");
            employeeList.add(employee);

            Employee employee2 = objFactory.createEmployee();
			employee2.setName("海野次郎");
			employee2.setNameKana("ウミノジロウ");
			employee2.setSection("営業部");
			employeeList.add(employee2);
			
            JAXBContext jaxbContext = JAXBContext.newInstance("test.jaxb");
            Marshaller marshaller = jaxbContext.createMarshaller();
            marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT ,
                                   new Boolean(true));
            marshaller.marshal(employees,
                               new FileOutputStream("employees.xml"));
                               System.out.println("See output in employees.xml " ) ;


        }catch (Exception e ) {
            e.printStackTrace();
        }

    }


}


前のページへ TECHSCOREのTOPページへ 次のページへ
TECHSCORE PR
PR
PR
PR
PR
PR

techscore(トップページへ)
TECHSCORE書店
TECHSCOREトップページJavaSQLXMLリッチクライアントモデリングセマンティックWebその他技術Tuigwaa