目次へ

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

    }
}

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp