package jaxb2;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.Calendar;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import javax.xml.bind.annotation.XmlRootElement;
public class JAXB2Test {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
JAXBContext context = JAXBContext.newInstance(Student.class);
//下面代码演示将对象转变为xml
Marshaller m = context.createMarshaller();
Address address = new Address("China","Beijing","Beijing","HuiLongGuan West","20090806");
Student p = new Student(200800,"leiwuluan",address,95.5,1);
FileWriter fw = new FileWriter("Student.xml");
m.marshal(p,fw);
//下面代码演示将上面生成的xml转换为对象
FileReader fr = new FileReader("person.xml");
Unmarshaller um = context.createUnmarshaller();
Student p2 = (Student)um.unmarshal(fr);
System.out.println("Country:"+p2.getAddress().getCountry());
}
}
@XmlRootElement//表示person是一个根元素
class Student {
@javax.xml.bind.annotation.XmlElement
Integer studentId; //studentId将作为Student的子元素
@javax.xml.bind.annotation.XmlAttribute
String studentName; //studentName将作为Student的的一个属性
@javax.xml.bind.annotation.XmlElement
Address address; //address将作为Student的子元素
@javax.xml.bind.annotation.XmlElement
Double score; //gender将作为Student的子元素
@javax.xml.bind.annotation.XmlElement
Integer grade; //job将作为Student的子元素
public Student(){
}
public Student(Integer studentId, String studentName, Address address,
Double score, Integer grade) {
super();
this.studentId = studentId;
this.studentName = studentName;
this.address = address;
this.score = score;
this.grade = grade;
}
public Address getAddress() {
return address;
}
}
class Address {
@javax.xml.bind.annotation.XmlAttribute
String country;
@javax.xml.bind.annotation.XmlElement
String state;
@javax.xml.bind.annotation.XmlElement
String city;
@javax.xml.bind.annotation.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;
}
}
|
相关推荐
在这个"jaxb2 demo"中,我们将探讨JDK 1.6中的一些重要特性以及JAXB 2.0的相关应用。 1. **泛型增强**: Java JDK 1.6对泛型的支持进行了增强,包括类型推断(Type Inference)和泛型通配符的改进。类型推断使得在...
Java Development Kit (JDK) 6是Java编程语言的一个重要版本,它引入了许多新特性,极大地提升了开发效率和应用程序性能。以下将详细阐述JDK6的一些核心新特性: 1. **改进的编译器(Project Coin)** JDK 6中的...
JDK6的新特性之二_使用JAXB2来实现对象与XML之间的映射 JDK6的新特性之三_理解StAX JDK6的新特性之四_使用Compiler API JDK6的新特性之五_轻量级HttpServer JDK6的新特性之七_用Console开发控制台程序 JDK6的...
### JDK6的新特性详解 #### 一、Desktop类与SystemTray类 ##### Desktop类 在JDK6中,AWT库新增了`Desktop`类,这是一个非常实用且功能丰富的类,它允许开发者轻松地执行一系列与桌面环境交互的操作。`Desktop`类...
JDK1.6的九大新特性 九:Common Annotations 八:对脚本语言的支持 七:用Console开发控制台程序 六:插入式注解处理API(Pluggable Annotation Processing API) 五:轻量级Http Server API 四:使用Compiler API 三...
- **2.2.5-2 至 2.2.6**:这些更改可能包括 bug 修复、性能改进以及新特性的引入。 - **2.2.5-1 至 2.2.5-2**:同样记录了这一小版本之间的变更。 - **后续版本至 2.2.5**:每个小版本之间的变更都被详细列出,...
JAXB 2.3.0引入了一些新的特性和改进,包括: 1. **Java SE 9+支持**:JAXB 2.3.0开始支持Java 9及其后续版本,这包括模块化系统(Jigsaw)的集成。 2. **API增强**:可能包含了新的API接口或方法,以提供更丰富的...
Java Development Kit (JDK) 6是Java编程语言的一个重要版本,它引入了许多新特性,极大地提升了开发效率和应用程序的功能性。以下是对JDK6主要新特性的详细说明: 1. **嵌入式数据库 Derby**: JDK 6包含了Apache ...
【JAVA6新特性:JAXB简介】 Java Architecture for XML Binding(JAXB)是Java平台上的一个标准技术,它提供了一种方便的对象与XML之间的映射机制。在Java 6中,JAXB已经成为Java Standard Edition(Java SE)的一...
通过这些新特性,JDK1.6为开发者提供了更强大的工具集,提升了开发效率,同时也优化了应用程序的性能和可管理性。理解并掌握这些特性,对于深入理解Java技术和开发高质量的Java应用具有重要的意义。
Java SE 6是Java平台标准版的一个重大更新,发布于2006年,它在前一版本的基础上引入了多项新特性和改进。 1. **新特性**: - **Scripting支持**:Java 6通过Java Scripting API引入了对脚本语言的支持,允许Java...
2. **JAXB2**: JAXB (Java Architecture for XML Binding) 2.0 提供了对象与XML之间的自动转换,使得XML数据的处理更加便捷。通过注解,可以轻松地将Java类映射到XML Schema,反之亦然。 3. **StAX (Streaming API ...
4. **XML处理改进**:JAXB(Java Architecture for XML Binding)和StAX(Streaming API for XML)在JDK 6中得到了加强,提供了更快的XML解析和生成能力。 5. **改进的内存管理**:垃圾收集器进行了优化,尤其是...
二、JAXB2(JSR 222)对象-XML 映射 1. JAXB 提供了对象与XML之间的自动转换,极大地简化了XML处理: - 在JDK 1.6中,JAXB 2.0被引入Java SE,它使用注解(Annotation)标记需要绑定的类和属性。 - 通过注解如`@...
JDK6新特性目录导航: Desktop类和SystemTray类 JAXB2实现对象与XML之间的映射 StAX Compiler API 轻量级 Http Server API 插入式注解处理API(Pluggable Annotation Processing API) 用Console开发控制台程序 对...
### JDK 7.0 新特性详解 随着Java技术的不断发展和完善,每一版更新都带来了新的特性和优化。JDK 7.0作为Java发展史上的一个重要里程碑,不仅增强了语言本身的特性,还在运行时环境中加入了多项重要的改进。接下来...
### JDK6新特性详解 #### 1. Desktop类和SystemTray类 `Desktop` 类允许开发者与用户的桌面环境进行交互,如打开浏览器、发送电子邮件、打印文件等。下面是一个简单的使用示例: ```java if (Desktop....