解答例 - 実習課題1 - 11.JAXB(3)
(実習課題1)
9章の実習課題で作成したスキーマやJAXBにより自動生成したクラス(Products、Product...)を使用し、以下のXML文書を生成するプログラムを作成しなさい。
product.xml
<?xml version="1.0"?>
<products>
<product>
<name>ゼロからはじめるJava</name>
<price>1905</price>
</product>
<product>
<name>ゼロからはじめるJ2EE</name>
<price>2095</price>
</product>
</products>
解答例
/**
* ProductXmlWriter.java
*
* TECHSCORE Java XML DOM XSLT 11章 実習課題1
*
* Copyright (c) 2004 Four-Dimensional Data, Inc.
*/
package com.techscore.dom.chapter11.exercise1;
import java.io.FileOutputStream;
import java.util.List;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import com.techscore.dom.jaxb.ObjectFactory;
import com.techscore.dom.jaxb.Product;
import com.techscore.dom.jaxb.Products;
public class ProductXmlWriter {
public static void main(String[] args) throws Exception {
ObjectFactory objFactory = new ObjectFactory();
Products products = (Products) objFactory.createProducts();
List productList = products.getProduct();
Product product = objFactory.createProduct();
product.setName("ゼロからはじめるJava");
product.setPrice("1905");
productList.add(product);
Product product2 = objFactory.createProduct();
product2.setName("ゼロからはじめるJ2EE");
product2.setPrice("2095");
productList.add(product2);
JAXBContext jaxbContext = JAXBContext.newInstance("com.techscore.dom.jaxb");
Marshaller marshaller = jaxbContext.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
new Boolean(true));
marshaller.marshal(products, new FileOutputStream("product.xml"));
}
}

