解答例 - 実習課題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")); } }