卒業制作で作っているプログラムでクラスから簡単にXMLに変換とかXMLからクラスに変換できたら素敵だなーとか思って、先生に相談してみますた。
そしたら、「simple」ってフレームワークを進められました。
とりあえず、使ってみてみないとわからないということで、サンプル書いてみました。
書いてみたものの全体像はまだつかめない感じです。
Example.java → XMLに変換するクラス
TestServlet → クラスからXMLに変換して出力
Example.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
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();
}
}
}
|
結果
1
2
3
4
|
<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/