2005.10.14 株式会社四次元データ 小野彩子
XML DOM XSLT 10章 JAXB(2)
- 10.1. JAXBでXML文書よりインスタンスを生成する
- 10.2. JAXBコンテキストとUnmarshaller
- 10.3. 子要素を取得する
- 10.4. XML文書の検証を行う
10.2 JAXBコンテキストとUnmarshaller
JAXBより生成されたクラスを使用してXML文書の操作を行う場合、まず、JAXBコンテキストを取得します。
JAXBContext jc = JAXBContext.newInstance("test.jaxb");
JAXBコンテキストはJAXBContextクラスのnewInstanceメソッドで使用できます。nesInstanceメソッドの引数には、JAXBで自動生成されたクラスが格納されているパッケージの名前を指定します。パッケージ名は、クラスを生成するときに「xjc.sh」コマンドの引数に指定したものです。
次に、XML文書からインスタンスを生成する「Unmarshaller」を作成します。Unmarshallerは、JAXBContextのcreateUnmarshallerメソッドを使って作成します。
Unmarshaller unmarshaller = jc.createUnmarshaller();
それでは、XML文書よりクラスのインスタンスを取り出しましょう。
Employees employees = (Employees) unmarshaller.unmarshal(new File(args[0]));
Unmarshallerのunmarshalメソッドを使用し、XML文書のルート要素を表すインスタンスを取得します。unmarshalの引数には、XML文書を指定します。例では、XML文書を表すFileオブジェクトを指定していますが、InputStreamなどの入力ソースでも構いません。ここでは、ルート要素「employees」を表すtest.jaxb.Employeesクラスのインスタンスを取得できます。