今日のjavaおっかけ(20150526):JAX-B

目次とぶっつぶつテーマ

http://snoopopo.hatenablog.com/entry/2015/04/14/102732

今日のテーマ:JAX-B

javaXMLを扱うのに、DOMやSAXを使うことはあったのですが、 このjAX-Bは使ったことがないので、やってみます。

標準ライブラリに組み込まれるようになったのはjava6かららしいです。

JAX-Bは、XMLとオブジェクトの変換するAPI。 これを使えば、今までXMLを扱うのに、XMLの形式や文字をけっこう意識してたと思うけど、オブジェクトにしてしまえる。

・mainメソッド

   public static void main(String[] args) {
        //オブジェクト->XML 変換
        SampleBean objToXml = new SampleBean();
        objToXml.setId("T1");
        objToXml.setName("nameTest");
        JAXB.marshal(objToXml, new File("./jaxbsample.xml"));

        //XML->オブジェクト 変換
        SampleBean xmlToObj =JAXB.unmarshal(new File("./jaxbsample.xml"), SampleBean.class);
        System.out.println("id:" + xmlToObj.getId());
        System.out.println("name:" + xmlToObj.getName());
    }

・SampleBean.java

public class SampleBean {
    private String id;
    private String name;

    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

・オブジェクト→XMLの変換で、出来たXML

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<sampleBean>
    <id>T1</id>
    <name>nameTest</name>
</sampleBean>

どうゆうものかはわかった。DOMやSAXよりも難しいこと考えなくてよい。(今のところはだけど)

オブジェクト→XMLの変換で生成されるXMLについては、アノテーションの指定でいろいろなことが出来るみたいだ。