今天上午接着昨天的内容继续讲解XML相关的技术,重点讲解了JAXB (Java Architecture XML Bind的缩写)
使用JAXB实现XML与java对象的映射,这也是JDK1.6的新特性之一,我们可以把对象和XML之间的映射成为OXM
(Object XML Mapping),JAXB原来为JavaEE的一部分,在JDK1.6中,Sun把JAXB放到了Java SE中,用JDK1.5中
的新特性Annotation来标识要绑定的类和属性等。下面贴一个例子
package com.future;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
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 JAXBTest {
/*
* 1、marshal java object----document
* 2、gegXMLFromObject
* 3、unmarshal document-----java object
*/
public static void main(String[] args) {
try {
JAXBContext context = JAXBContext.newInstance(Person.class);
gegXMLFromObject(context);
} catch (JAXBException e) {
e.printStackTrace();
}
}
public static void gegXMLFromObject(JAXBContext context) {
try {
// 下面代码演示将对象转变为xml Object------XML
Address address = new Address("China", "Beijing", "Haidian",
"北京大学", "100871");
Person p = new Person(Calendar.getInstance(), "zhansan", address,
Gender.MALE, "professor");
//指定对应的xml文件
FileOutputStream fw = new FileOutputStream("person.xml");
Marshaller m = context.createMarshaller();
//将对象转换为对应的XML文件
m.marshal(p, fw);
} catch (JAXBException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void getObjectFromXML(JAXBContext context) {
try {
// 下面代码演示将上面生成的xml转换为对象 XML------Object
FileReader fr = new FileReader("person.xml");
Unmarshaller um = context.createUnmarshaller();
Person p2 = (Person) um.unmarshal(fr);
System.out.println("Country:" + p2.getAddress().getCountry());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (JAXBException e) {
e.printStackTrace();
}
}
}
@XmlRootElement
// 表示person是一个根元素
class Person {
@XmlAttribute
String name;
@XmlElement
Calendar birthDay;
@XmlElement
Address address;
@XmlElement
Gender gender;
@XmlElement
String job;
public Address getAddress() {
return address;
}
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("male"),
FEMALE("female") ;
private String name = null;
private Gender(String name){
this.name = name;
}
@Override
public String toString(){
return name;
}
}
class Address {
@XmlAttribute
String country;
@XmlElement
String state;
@XmlElement
String city;
@XmlElement
String street;
String zipcode;
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="zhansan">
<birthDay>2011-03-15T00:08:51.437+08:00</birthDay>
<address country="China">
<state>Beijing</state>
<city>Haidian</city>
<street>北京大学</street>
</address>
<gender>MALE</gender>
<job>professor</job>
</person>
发表评论
-
java web开发之Servlet
2011-03-16 23:49 924尽管还有许多烦心的事 ... -
GUI编程基础知识点总结
2011-01-06 12:54 10581.JOptionPane的使用 JOptionPane 有 ... -
MyEclipse下创建的带包名的类在dos中能编译得到class文件,但不能运行的解决办法
2011-01-03 13:37 2307相信很多朋友遇到过这样一个问题(MyEclipse用久了, ... -
利用java反射机制访问JavaBean中的私有属性
2010-12-29 18:43 1093public class TestReflect ... -
java基础知识整理
2010-12-29 17:29 8411.JVM(虚拟机)的运行过程 代码的装入 代码的校 ... -
java运行机制与执行顺序
2010-12-29 17:20 1128package Test1229;/** * java的 ... -
Andriod开发环境的搭建
2010-12-29 00:14 2683Andriod开发环境的搭建 收藏 几经周转,终于搭建好了 ... -
JDK1.5的新特性
2010-12-29 00:13 875万丈高楼平地起,楼的高度取决于地基的牢固程度,虽然这些东西以前 ... -
java的反射机制(Reflection)
2010-12-29 00:11 854今天复习了Java的反射机制,说实话,对于这方面的知识自己以前 ... -
Myeclipse删字节码文件报异常的原因
2010-12-28 21:05 942今天帮网友解决了这么个小问题,问题虽小,但还是蛮有收获的,其实 ... -
创建Java代码模板
2010-12-27 22:20 893创建Java代码模版 windows--preferences ...
相关推荐
我们把对象与关系数据库之间的映射称为ORM, 其实也可以把对象与XML之间的映射称为OXM(Object XML Mapping). 原来JAXB是JavaEE的一部分,在JDK6中,SUN将其放到了Java SE中,这也是SUN的一贯做法。JDK6中自带的这个...
主要介绍了spring使用OXM进行对象XML映射解析,具有一定借鉴价值,需要的朋友可以参考下
· 是不是可以提供一个oxm模型,完成BinXML与Object之间的直接映射,现在这个映射工作还是人工代码实现的,譬如:GetString/GetLong,等等。应该可以完善一个映射机制,自动根据定义好的类型进行转换;
Spring oxm:Spring对于object/xml映射的支持,可以让JAVA与XML之间来回切换; spring-oxm是操作XML文件:生成,修改节点的完美第三方库
$ mvn干净$ MVN测试 #step3:-如果要在从分支机构签出后进行测试,请运行Client.java,它将把Java对象编组到文件“ C:/employee.xml”,并出于演示目的在同一程序中取消编组同一对象并转到打印值。
Spring oxm:Spring对于object/xml映射的支持,可以让JAVA与XML之间来回切换; spring-oxm是操作XML文件:生成,修改节点的完美第三方库
是个不错的XML解析工具。 1、xml格式文件的用法,我们学过的xml有两种用法:一,作为配置文件。二、作为数据存储文件。...2、这个工具的功能:能够把xml文件存储的数据和pojo对象进行映射。我们暂且把这种叫做:OXM。
赠送jar包:spring-oxm-5.3.15.jar; 赠送原API文档:spring-oxm-5.3.15-javadoc.jar; 赠送源代码:spring-oxm-5.3.15-sources.jar; 赠送Maven依赖信息文件:spring-oxm-5.3.15.pom; 包含翻译后的API文档:spring...
spring-oxm源码,可以直接导入Eclipse里面!
赠送jar包:spring-oxm-5.3.10.jar; 赠送原API文档:spring-oxm-5.3.10-javadoc.jar; 赠送源代码:spring-oxm-5.3.10-sources.jar; 赠送Maven依赖信息文件:spring-oxm-5.3.10.pom; 包含翻译后的API文档:spring...
赠送jar包:spring-oxm-5.0.8.RELEASE.jar; 赠送原API文档:spring-oxm-5.0.8.RELEASE-javadoc.jar; 赠送源代码:spring-oxm-5.0.8.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-oxm-5.0.8.RELEASE.pom;...
赠送jar包:spring-oxm-5.3.15.jar; 赠送原API文档:spring-oxm-5.3.15-javadoc.jar; 赠送源代码:spring-oxm-5.3.15-sources.jar; 赠送Maven依赖信息文件:spring-oxm-5.3.15.pom; 包含翻译后的API文档:spring...
《Spring3.x企业应用开发实战》是在《精通Spring2.x——企业应用开发详解》的基础上,经过历时一年的重大调整改版而成的,本书延续了上一版本追求深度,注重原理,不停留在技术表面的写作风格,力求使读者在熟练使用...
《Spring3.x企业应用开发实战》是在《精通Spring2.x——企业应用开发详解》的基础上,经过历时一年的重大调整改版而成的,本书延续了上一版本追求深度,注重原理,不停留在技术表面的写作风格,力求使读者在熟练使用...
赠送jar包:spring-oxm-4.2.8.RELEASE.jar; 赠送原API文档:spring-oxm-4.2.8.RELEASE-javadoc.jar; 赠送源代码:spring-oxm-4.2.8.RELEASE-sources.jar; 包含翻译后的API文档:spring-oxm-4.2.8.RELEASE-...
spring-oxm-4.0.0.RELEASE.jar
spring-oxm-4.1.0.RELEASE.jar
赠送jar包:spring-oxm-5.2.15.RELEASE.jar; 赠送原API文档:spring-oxm-5.2.15.RELEASE-javadoc.jar; 赠送源代码:spring-oxm-5.2.15.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-oxm-5.2.15.RELEASE....
赠送jar包:spring-oxm-5.0.5.RELEASE.jar; 赠送原API文档:spring-oxm-5.0.5.RELEASE-javadoc.jar; 赠送源代码:spring-oxm-5.0.5.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-oxm-5.0.5.RELEASE.pom;...
赠送jar包:spring-oxm-4.2.2.RELEASE.jar; 赠送原API文档:spring-oxm-4.2.2.RELEASE-javadoc.jar; 赠送源代码:spring-oxm-4.2.2.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-oxm-4.2.2.RELEASE.pom;...