Java用XMLシリアル化フレームワークを使ってみた

November 12, 2009,
tags: java sample xmlシリアライズ


このエントリーをはてなブックマークに追加

卒業制作で作っているプログラムでクラスから簡単にXMLに変換とかXMLからクラスに変換できたら素敵だなーとか思って、先生に相談してみますた。
そしたら、「simple」ってフレームワークを進められました。

とりあえず、使ってみてみないとわからないということで、サンプル書いてみました。
書いてみたものの全体像はまだつかめない感じです。

Example.java → XMLに変換するクラス
TestServlet → クラスからXMLに変換して出力

Example.java

import org.simpleframework.xml.Attribute;
import org.simpleframework.xml.Element;
import org.simpleframework.xml.Root;

@Root
public class Example {
	   @Element
	   private String text;

	   @Attribute
	   private int index;

	   public Example() {
	      super();
	   }

	   public Example(String text, int index) {
	      this.text = text;
	      this.index = index;
	   }

	   public String getMessage() {
	      return text;
	   }

	   public int getId() {
	      return index;
	   }
}

TestServlet.java

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.simpleframework.xml.Serializer;
import org.simpleframework.xml.core.Persister;

public class TestServlet extends HttpServlet {

    public TestServlet() {
        super();

    }


	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		try {
			response.setContentType("text/xml");

			PrintWriter out = response.getWriter();
			out.println("<?xml version=\"1.0\" encoding=\"Shift-Jis\"?>");

			Serializer serializer = new Persister();
			Example example = new Example("Example message", 123); //シリアライズするためのクラスのインスタンス化

			serializer.write(example,out); //XML形式に変換して出力する


		} catch(Exception e){
			e.printStackTrace();
		}
	}
}

結果


<example index="123">
   <text>Example message</text>
</example>

最初はXML宣言とかはJSPでやればいいかとか考えてたけど、そんな必要はないのでそのまま出力させました。
そもそもseriaralize.writeを使った場合にJSPに送る方法がわからないのですが・・・。

今週末できたらもう少し突っ込んだ感じに遊んでみます。

参考URL

http://www.syboos.jp/opensource/bookmark/detail/simple-xml-framework.html

http://simple.sourceforge.net/download/stream/doc/tutorial/tutorial.php

http://simple.sourceforge.net/download/stream/doc/javadoc/

comments powered by Disqus