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

JAXB2

    博客分类:
  • java
 
阅读更多
package com.benx.test;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

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.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.adapters.XmlAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;

public class JAXB2 {
	public static void main(String[] args) throws JAXBException, IOException {
		marshal();
		unmarshal();
	}
	

	static void marshal() throws JAXBException{
		JAXBContext context = JAXBContext.newInstance(Person.class);
		Marshaller m = context.createMarshaller();
		
		Person p = new Person("我是谁", "工程师", new Date());
		//把生产的xml文件输出到标准流
		m.marshal(p, System.out);
	}
	
	static void unmarshal() throws JAXBException{
		String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><person><name>我是谁</name><job>工程师</job><time>2011-06-30 10:13:59</time></person>";
		ByteArrayInputStream bos = new ByteArrayInputStream(xml.getBytes());
		
		JAXBContext context = JAXBContext.newInstance(Person.class);
		Unmarshaller um = context.createUnmarshaller();
		Person p2 = (Person) um.unmarshal(bos);
		
		System.out.println();
		System.out.println(p2.name);
		
	}
}



@XmlRootElement
class Person {

	@XmlElement
	public String name;

	@XmlElement
	public String job;

	@XmlElement
	@XmlJavaTypeAdapter(TimeAdapter.class)
	public Date time;

	public Person() {
	}

	public Person(String name, String job, Date time) {
		super();
		this.name = name;
		this.job = job;
		this.time = time;
	}
}

/**
 * 时间转换
 * @author jin.xiong
 *
 */
class TimeAdapter extends XmlAdapter<String, Date> {

	private SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

	/**
	 * java to xml 把Date转成日期字符形式
	 */
	public String marshal(Date arg0) throws Exception {
		Date date = (Date) arg0;
		return dateformat.format(date);
	}

	/**
	 * xml to java 把字符转成日期形式
	 */
	public Date unmarshal(String arg0) throws Exception {
		String time = (String) arg0;
		return dateformat.parse(time);
	}
}

分享到:
评论

相关推荐

    jaxb2 生产java类demo实例

    JAXB2是JAXB的第二个主要版本,它引入了更强大的功能和改进,如注解支持,使得XML绑定更加直观和便捷。本教程将通过一个实际的demo实例来详细讲解如何使用JAXB2来生产Java类。 **1. JAXB2概述** JAXB2是Java SE 6及...

    JAXB2 jaxb-api.jar jaxb-xjc.jar jaxb-impl.jar activation.jar

    JAXB2,全称为Java Architecture for XML Binding 2,是Java平台上的一个标准技术,用于在XML和Java对象之间进行绑定。它允许开发者通过简单的API将XML文档转换为Java对象,反之亦然,大大简化了XML数据处理。JAXB2...

    maven-jaxb2-plugin-0.14.0.jar

    maven-jaxb2-plugin-0.14.0 下载 maven包 JAXB能够使用Jackson对JAXB注解的支持实现(jackson-module-jaxb-annotations),既方便生成XML,也方便生成JSON,这样一来可以更好的标志可以转换为JSON对象的JAVA类。JAXB...

    java jdk1.6 新特性 jaxb2 demo

    在这个"jaxb2 demo"中,我们将探讨JDK 1.6中的一些重要特性以及JAXB 2.0的相关应用。 1. **泛型增强**: Java JDK 1.6对泛型的支持进行了增强,包括类型推断(Type Inference)和泛型通配符的改进。类型推断使得在...

    JAXB的安装包及插件

    对于Eclipse,可以搜索并安装"JAXB2 Basics Tools"插件,它提供了诸如生成Java类、XML schema等实用工具。对于IntelliJ IDEA,虽然内置了一些基本的JAXB支持,但也可以安装如"Java2WSDL"这样的插件来增强功能。 **...

    JAXB2_20080829.jar

    JAXB2_20080829.jar (JAXB)是一种Java技术,通过这种技术你可以从XML 模式生成Java类。作为这一过程的一部分,JAXB技术还提供将XML实例文档反编组为Java对象的一个内容树,然后再将内容树编组成一个XML文档。JAXB...

    《Jaxb2 转换XML文档》学习笔记

    **JAXB2 转换XML文档** JAXB(Java Architecture for XML Binding)是Java平台标准版(Java SE)的一部分,用于将Java对象绑定到XML文档,并反之亦然。JAXB2是JAXB的第二个主要版本,引入了更多功能和改进,使其在...

    maven-jaxb2-plugin:用于XML模式编译的最先进的JAXB2 Maven插件

    JAXB2 Maven插件欢迎使用org.jvnet.jaxb2.maven2:maven-jaxb2-plugin ,这是用于XML Schema编译的最先进且功能齐全的Maven插件。 这个Maven插件包装并增强了 并允许将XML Schema(以及WSDL,DTD,RELAX NG)编译为...

    Jaxb2 实现JavaBean与xml互转

    **JavaBean与XML互转——基于JAXB2的深度解析** 在Java开发中,XML作为一种通用的数据交换格式,被广泛用于存储和传输数据。而JavaBean则是Java对象的一种简化表示,便于封装和处理业务逻辑。当需要在Java程序中...

    、jackson、xStream、castor、jibx、jaxb2.docx

    在给定的文档中,提到了几种用于Java对象与XML之间转换的技术,包括Jackson、xStream、castor、Jibx和Jaxb2。以下是对这些技术和Spring MVC整合的详细说明: 1. **Jackson**: Jackson是一个高性能的JSON库,支持...

    jaxb2-maven-plugin:JAXB2 Maven插件

    关于Jaxb2-Maven-Plugin 这个Maven插件使用Java API for XML Binding(JAXB)2+版来执行以下2个主要任务之一: 从XML模式(以及可选的绑定文件)生成Java类。 这是通过将工作委派给Java SDK附带的XJC工具来完成的...

    jaxb2-basics:适用于JAXB2的有用插件和工具

    JAXB2基础 JAXB2 Basics是一个项目,为提供有用的插件和工具。 文献资料 请参考文档。 JAXB2 Basics只能与JAXB / XJC 2.3.0及更高版本一起使用。 不再支持JAXB / XJC 2.2.x和更早版本。 JAXB2 Basics只能与Java ...

    jaxb.rar_J2EE JA_JDK6 JAXB_jaxb_jaxb2 binding xjb_nbproje

    J2EE中解析XML文件的技术。最初JAXB是JavaEE的一部分,在JDK6.0中,sun将其移到了JavaSE中。在JDK6.0中,JAXB的版本中2.0,比起1.0版本,JAXB2.0基于Annotation来标识要作绑定的类和属性,从而缩减了开发工作量。

    JAXB2 Webservice

    NULL 博文链接:https://endeavor416.iteye.com/blog/270507

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

    `jaxb1-impl.jar`和`jaxb1-impl-src.zip`可能是针对JAXB 1.x版本的实现和源代码,与JAXB 2.x的`jaxb-impl.jar`有所不同,主要用于兼容旧版本的系统或代码。 `jaxb-api-doc.zip`可能包含JAXB API的文档,这对于理解...

    jaxb2-rich-contract-plugin:实现一些JAXB插件以从XSD生成高级合同方案

    jaxb2-rich-contract-plugin 一组JAXB / XJC插件,可从XSD生成高级合同方案 当前版本:2.1.0 该模块是JAXB2(用于XML绑定的Java API)“从XSD到Java编译器”(XJC)的几个插件的集合。 这些插件旨在为XJC生成的类...

    JAXB 利用xsd文件生成java类

    - Maven可以通过`maven-jaxb2-plugin`或`jaxb2-maven-plugin`插件实现XSD到Java的编译。 - Gradle则可以使用`jaxb`插件或自定义Task来执行相同的操作。 6. **使用示例**: - 创建一个简单的XSD文件,例如: ```...

Global site tag (gtag.js) - Google Analytics