JAXB 2.0 Hello World

本文演示了如何使用JAXB2.0库来创建一个简单的HelloWorld类,并展示了从类到XML文件的序列化和从XML文件到类的反序列化过程。

For people who have played with JAXB 1.x, JAXB 2.0 has the same beahavior: it can marshall/unmarshall object from/to XML. But the syntax is completly different. It uses all kind of annotations. This blog is just about writing and executing a good old Hello World with JAXB 2.0.

First you need to download and install the binary. For the following example you will just need to put jaxb-api.jar and jaxb-impl.jar in your classpath.

The following code represents a HelloWorld class with two attributes. The main method creates a HelloWorld object, sets some values, marshalles it to the hello.xml file, displays the xml representation, unmarshalles the xml file into a HelloWord and displays the toString method :

import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import javax.xml.bind.annotation.XmlRootElement;
import java.io.File;
import java.io.FileOutputStream;

@XmlRootElement
public class HelloWorld {

  private String hello;
  private Integer world;

  public String getHello() {
    return hello;
  }

  public void setHello(String hello) {
    this.hello = hello;
  }

  public Integer getWorld() {
    return world;
  }

  public void setWorld(Integer world) {
    this.world = world;
  }

  public String toString() {
    return hello   "-"   world;
  }

  public static void main(String[] args) throws Exception {

    // Set up file and JAXB context
    final File file = new File("hello.xml");
    JAXBContext context = JAXBContext.newInstance(HelloWorld.class);

    // Creates a HelloWorld object
    HelloWorld hw = new HelloWorld();
    hw.setHello("Hello !!!");
    hw.setWorld(1234);

    // From a HelloWorld object creates a hello.xml file
    Marshaller m = context.createMarshaller();
    m.marshal(hw, new FileOutputStream(file));
    m.marshal(hw, System.out);

    // From the hello.xml file creates a HelloWorld object
    Unmarshaller um = context.createUnmarshaller();
    HelloWorld hw2 = (HelloWorld) um.unmarshal(file);
    System.out.println("/n/n" + hw2);

  }
}

http://agoncal.wordpress.com/2006/07/06/jaxb-20-hello-world/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值