`
z_jiankun
  • 浏览: 164758 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

JDK6 的新特性之二:使用JAXB2来实现对象与XML之间的映射

    博客分类:
  • Java
阅读更多

JAXB是Java Architecture for XML Binding 的缩写,可以将一个Java对象转变成XML格式,反之亦然。

 

package com.java6.test;

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Calendar;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

public class JAXB2Tester
{
    public static void main(String[] args) throws JAXBException, IOException
    {

        JAXBContext context = JAXBContext.newInstance(Person.class);

        // 下面代码演示将对象转变为xml

        Marshaller m = context.createMarshaller();

        Address address = new Address("China", "Beijing", "Beijing", "ShangDi West", "100080");

        Person p = new Person(Calendar.getInstance(), "JAXB2", address, Gender.MALE, "SW");

        FileWriter fw = new FileWriter("person.xml");

        m.marshal(p, fw);

        // 下面代码演示将上面生成的xml 转换为对象

        FileReader fr = new FileReader("person.xml");

        Unmarshaller um = context.createUnmarshaller();

        Person p2 = (Person) um.unmarshal(fr);

        System.out.println("Country:" + p2.getAddress().getCountry());
    }

}

@XmlRootElement
// 表示person 是一个根元素
class Person
{
    @XmlElement
    Calendar birthDay; // birthday 将作为person 的子元素

    @XmlAttribute
    String name; // name 将作为person 的的一个属性

    public Address getAddress()
    {
        return address;
    }

    @XmlElement
    Address address; // address 将作为person 的子元素

    @XmlElement
    Gender gender; // gender 将作为person 的子元素

    @XmlElement
    String job; // job 将作为person 的子元素

    public Person()
    {

    }

    public Person(Calendar birthDay, String name, Address address, Gender gender, String job)
    {
        this.birthDay = birthDay;
        this.name = name;
        this.address = address;
        this.gender = gender;
        this.job = job;
    }
}

enum Gender
{

    MALE(true),

    FEMALE(false);

    private boolean value;

    Gender(boolean _value)
    {

        value = _value;

    }

}

class Address
{

    @XmlAttribute
    String country;

    @XmlElement
    String state;

    @XmlElement
    String city;

    @XmlElement
    String street;

    String zipcode; // 由于没有添加@XmlElement,所以该元素不会出现 输出的xml 中

    public Address()
    {

    }

    public Address(String country, String state, String city, String street, String zipcode)
    {
        this.country = country;
        this.state = state;
        this.city = city;
        this.street = street;
        this.zipcode = zipcode;
    }

    public String getCountry()
    {
        return country;
    }
}

 

person.xml

 

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<person name="JAXB2">
    <birthDay>2010-04-12T22:40:24.625+08:00</birthDay>
    <address country="China">
        <state>Beijing</state>
        <city>Beijing</city>
        <street>ShangDi West</street>
    </address>
    <gender>MALE</gender>
    <job>SW</job>
</person>

 

0
2
分享到:
评论

相关推荐

    [精品]JAVA6新特性介绍使用JAXB来实现对象与XML之间的映射.doc

    2. **集成到JDK**:Java 6将JAXB纳入标准库,这意味着开发者不再需要额外下载和管理JAXB的实现,可以直接在Java SE环境中使用。 3. **性能提升**:JAXB 2.0在底层使用了Streaming API for XML(STAX,JSR 173),这...

    JDK+6.0+ZH+API.chm.zip

    JDK6的新特性之二_使用JAXB2来实现对象与XML之间的映射 JDK6的新特性之三_理解StAX JDK6的新特性之四_使用Compiler API JDK6的新特性之五_轻量级HttpServer JDK6的新特性之七_用Console开发控制台程序 JDK6的...

    java jdk1.6 新特性 jaxb2 demo

    JAXB 2.0是Java对象与XML之间的绑定框架,相比于之前的版本,它引入了注解支持,使得无需编写XML绑定元数据,可以直接在Java类上使用注解来定义XML映射。这简化了XML数据的处理,并提高了代码的可读性和维护性。...

    webservice之使用jaxb把xml转换Object或把对象转换成xml文件

    在Java世界中,使用JAXB(Java Architecture for XML Binding)库可以方便地实现XML数据与Java对象之间的转换,从而在WebService中轻松处理数据交换。本篇文章将深入探讨如何使用JAXB进行XML到Object以及Object到XML...

    JDK1.6的九大新特性

    JDK1.6的九大新特性 九:Common Annotations 八:对脚本语言的支持 七:用Console开发控制台程序 六:插入式注解处理API(Pluggable Annotation ...二:使用JAXB2来实现对象与XML之间的映射 一:Desktop类和SystemTray类

    Java XML绑定技术 (Castor JAXB XMLBeans)

    - **简单易用**:只需在Java类上添加一些注解,即可实现对象与XML之间的转换。 - **灵活性高**:支持自定义XML结构,通过XSD(XML Schema Definition)文件定义XML结构。 - **兼容性强**:广泛支持各种版本的JDK。 ...

    JAXB 利用xsd文件生成java类

    JAXB (Java Architecture for XML Binding) 是Java平台上的一个标准,用于将XML文档与Java对象之间进行绑定,实现XML数据的解析和序列化。在Java开发中,JAXB提供了一种方便的方式,允许开发者通过XML Schema (XSD) ...

    JDK6的新特性之一.doc

    #### 二、使用JAXB2实现对象与XML之间的映射 ##### JAXB简介 JAXB(Java Architecture for XML Binding)是一种用于将Java对象转换为XML文档的技术,同时也能将XML文档转换回Java对象。这种技术简化了处理XML数据的...

    jdk1.6的新特性

    #### 二、使用JAXB2实现对象与XML之间的映射 **JAXB (Java Architecture for XML Binding)** 是一种用于Java对象与XML数据之间相互转换的技术,JDK 1.6中引入了JAXB 2.0,这是一个重要的改进。 - **JAXB 2.0** 的...

    JDK 6.2.3文文档.rar

    JAXB2实现对象与XML之间的映射 StAX Compiler API 轻量级 Http Server API 插入式注解处理API(Pluggable Annotation Processing API) 用Console开发控制台程序 对脚本语言的支持(如:ruby,groovy,javascript) ...

    jaxb-api jaxb-impl jar

    JAXB(Java Architecture for XML Binding)是Java平台上的一个标准,它提供了一种在Java对象和XML数据之间进行映射的机制。JAXB允许开发者将XML文档转换为可以直接在Java应用程序中使用的对象,同时也能够将Java...

    Jaxb2 开发指南

    Jaxb2利用注解(Annotation)和泛型(GenericType)等新特性,使得Java对象与XML文档的映射变得更加简单和直观。\n\n### 2. 使用Jaxb2的前提准备\n\n#### 2.1 资源准备\n\n- **官方文档**:官方文档提供了详细的使用...

    JAXB的使用JAXB的使用

    **JAXB(Java Architecture for XML Binding)**是Java平台中用于XML到Java对象绑定的一种标准技术,它使得Java开发者能够方便地在XML文档和Java对象之间进行数据转换。JAXB提供了一种自动化的方式,将XML Schema...

    Jaxb2实现JavaBean与xml互转的方法详解

    JAXB (Java Architecture for XML Binding) 是Java平台上的一个标准,它允许开发人员将XML文档与Java对象之间进行绑定,从而实现XML数据的序列化和反序列化。Jaxb2是JAXB的一个版本,从JDK 1.6开始成为其内置组件,...

    Java6JDK1.6新特性总结大全附代码.docx

    二、JAXB2(JSR 222)对象-XML 映射 1. JAXB 提供了对象与XML之间的自动转换,极大地简化了XML处理: - 在JDK 1.6中,JAXB 2.0被引入Java SE,它使用注解(Annotation)标记需要绑定的类和属性。 - 通过注解如`@...

    jaxb-impl.jar jaxb-api.jar jsr173_1.0_api.jar

    Java Architecture for XML Binding (JAXB) 是Java平台中用于XML数据绑定的标准库,它使得Java对象和XML文档之间可以进行无缝转换。在给定的压缩包文件中,包含了一些核心的JAXB组件以及相关的依赖库,如`jaxb-impl....

    JAXBContext测试Java对象与xml的相互转换Demo

    在Java世界中,Java Architecture for XML Binding (JAXB) 是一个强大的工具,它允许开发者将Java对象和XML数据进行互换。JAXBContext是JAXB框架的核心,它扮演着一个工厂的角色,负责创建Unmarshaller(用于从XML到...

Global site tag (gtag.js) - Google Analytics