目次へ

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();
        }

    }


}

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp
  • シナジーマーケティング研究開発グループブログ