`

JAXB 简单Demo

    博客分类:
  • jdk
 
阅读更多
jaxb.JaxbDemo
package jaxb;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;

import pojo.People;

public class JaxbDemo {
	// 编组数据
	public static void marshalData() throws JAXBException, IOException {
		JAXBContext context = JAXBContext.newInstance(People.class);

		Marshaller marshaller = context.createMarshaller();
		marshaller.setProperty(Marshaller.JAXB_ENCODING, "gb2312");// 编码格式
		marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);// 是否格式化生成的xml串
		// 是否省略xml头信息(<?xml version="1.0" encoding="gb2312" standalone="yes"?>)
		marshaller.setProperty(Marshaller.JAXB_FRAGMENT, false);

		People people = new People();

		people.setLogo("=====");

		people.setId(1);

		people.setName("son");

		People father = new People();

		father.setId(2);

		father.setName("father");

		people.setFather(father);

		FileOutputStream os = new FileOutputStream("People.xml");

		marshaller.marshal(people, os);

		os.close();
	}

	// 解组数据
	public static void unmarshalData() throws JAXBException, FileNotFoundException {
		JAXBContext context = JAXBContext.newInstance(People.class);

		Unmarshaller unmarshaller = context.createUnmarshaller();

		People p = (People) unmarshaller.unmarshal(new FileInputStream("People.xml"));

		System.out.println(p.getId() + " : " + p.getName());
	}
}

pojo.AbstractPeople
package pojo;

public class AbstractPeople {
	private String logo;

	public String getLogo() {
		return logo;
	}

	public void setLogo(String logo) {
		this.logo = logo;
	}
}

pojo.People
package pojo;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name = "People")
@XmlAccessorType(XmlAccessType.FIELD)
public class People extends AbstractPeople{
	private int id;

	private String name;

	private People father;

	public People() {
	}

	public People(int id, String name) {
		this.id = id;
		this.name = name;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public People getFather() {
		return father;
	}

	public void setFather(People father) {
		this.father = father;
	}

}

People.xml
<?xml version="1.0" encoding="gb2312" standalone="yes"?>
<People>
    <logo>=====</logo>
    <id>1</id>
    <name>son</name>
    <father>
        <id>2</id>
        <name>father</name>
    </father>
</People>
分享到:
评论

相关推荐

    Jaxb简单例子

    在"JaxbDemo"这个示例项目中,你可能会找到一个包含上述代码的简单应用。这个项目可能包含了`Person`类、序列化和反序列化的代码,以及运行这些代码的主函数。通过运行这个程序,你可以看到XML与Java对象之间的转换...

    jaxb+stax+demo

    在"jaxb+stax+demo"的示例中,通常会展示如何结合JAXB和STAX来高效地解析和生成XML。具体步骤可能包括以下几点: 1. **定义Java类**:首先,我们需要创建一些Java类,这些类将代表XML文档中的元素和属性。JAXB使用...

    JAXB Demo及namespace的prefix自定义解决方案

    总结一下,JAXB是一个强大的工具,它使得Java程序与XML数据之间的交互变得简单。通过自定义NamespacePrefixMapper,我们可以更好地控制XML文档中的命名空间前缀,使其符合我们的需求和规范。理解和熟练掌握JAXB,...

    JAXB的HelloWorld源码

    **JAXB的DEMO** 通常包含更复杂的数据结构和转换场景,可能涉及嵌套对象、集合、自定义转换逻辑等。通过实践这些示例,新手可以逐步掌握JAXB的各种特性和用法。 **源码分析** 对于初学者来说至关重要,因为可以直接...

    一个基于java jaxb的序列化例子,非常简单易懂

    在给定的例子"JAXBDemo"中,我们可以预期它包含了一个简单的JAXB使用示例,帮助我们理解这一过程。 首先,让我们了解一下JAXB的工作原理。JAXB的核心思想是通过元数据(如注解或XML Schema)将Java类与XML结构关联...

    JAXB与xml相互转换实例

    在`jaxb_demo`这个示例压缩包中,可能包含了以下内容: - 一个XML Schema文件(`.xsd`),定义了数据结构。 - 由JAXB自动生成的Java类,这些类对应于XML Schema中的元素和类型。 - 一个或多个Java源代码文件,演示...

    jaxb功能用法

    JAXB允许我们通过简单的API来实现XML的序列化(将Java对象转换为XML)和反序列化(将XML转换回Java对象)。在这个"jaxb功能用法"的讨论中,我们将深入探讨如何利用JAXB进行XML与Java Bean之间的转换,并结合XSD(XML...

    Jaxb webservice java调用

    在`JaxbDemo`这个示例中,可能包含了创建JAXB上下文、绑定XML到Java对象、Java对象到XML的转换,以及如何使用这些转换来调用和响应Web服务的方法。具体代码细节可能包括: - 创建JAXBContext实例,它是整个JAXB绑定...

    JAXB实例入门

    public class JaxbDemo { public static void main(String[] args) throws JAXBException { Person person = new Person(); person.setName("张三"); person.setAge(30); JAXBContext context = JAXBContext....

    JAXBDemo:JAXB(Java Architecture for XML Binding)的演示,它允许在 XML 和 java 类之间轻松转换

    JAXB使得XML的解析、生成以及数据绑定变得更加简单,避免了手动编写XML解析和生成代码的繁琐工作。 在项目**JAXBDemo**中,我们可以看到一个关于如何使用JAXB进行实际操作的示例。这个项目的核心目标是展示如何通过...

    JAXB-XML注解-应用

    JAXB 的简单应用可以分为两步: 第一步:创建要转化的 Java 对象,该对象需要使用相关注解注释各字段(标注在 get 方法上)。 第二步:编组(Java 对象转 xml),提供多种编组目的地,例如编组到文件或编组到...

    jaxb XMl和BEAN互转实例(内含jar包)

    在提供的"jaxbDEMO"压缩包中,可能包含了一个已经实现了上述逻辑的Util工具类,允许开发者通过简单的调用API就能完成XML与BEAN之间的转换,而无需关心具体的实现细节。这样的工具对于处理XML数据的项目来说非常方便...

    java 解析XML性能对比分析Demo

    2. SAX(简单API for XML)解析: 与DOM不同,SAX是一种事件驱动的解析器。它逐行读取XML文件,遇到元素、属性等时触发相应的事件回调。这种方式节省了内存,但编程相对复杂,需要编写事件处理器。 3. JDOM: ...

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

    JAXB2提供了基于注解的API,使得XML和Java之间的映射变得简单直观。通过在Java类上使用特定的注解,如`@XmlRootElement`和`@XmlElement`,我们可以指定哪些类和字段应该被映射到XML元素。 2. **生成Java模型** ...

    Java JDK DEMO

    同时,这些DEMO也提供了一个良好的起点,帮助开发者进一步探索Java SE的其他组件和服务,例如数据库连接(JDBC)、XML处理(JAXB和DOM)、反射以及Java的集合框架等。 总的来说,Java JDK DEMO是一个极好的学习资源...

    xml-demo.rar_DEMO_blue j_demo.xml_xml demo_做xml的demo

    在Java中,处理XML的库主要有DOM解析器(java.xml.dom),SAX解析器(java.xml.sax)以及JAXB(Java Architecture for XML Binding)用于对象和XML之间的绑定。DOM解析器的示例通常会展示如何创建Document对象,查找...

    cxf server demo简单程序例子

    【描述】:“关于Java CXF的一个简单示例,你需要自行下载所需的jar包。” 这个描述意味着你需要具备基本的Java环境,并且要手动下载和管理与CXF相关的依赖库。CXF项目通常依赖于一系列的jar包,包括CXF的核心库、...

    demo4j文件包

    例如,可能有"javax.xml.parsers"包,它提供了DOM、SAX和JAXB(Java Architecture for XML Binding)的解析器工厂类。还有"org.w3c.dom"包,包含了DOM接口的实现,如Document、Element和Node等。学习者可以通过这些...

    spring+cxf小demo

    代码实现部分,开发者通常会创建一个简单的客户端来调用我们之前创建的Web服务。这可以通过CXF的`JaxWsProxyFactoryBean`来完成,该工厂可以生成一个服务代理,通过这个代理可以像调用本地方法一样调用远程Web服务。...

    Axis2例子Demo

    Axis2是基于SOAP(简单对象访问协议)的Web服务框架,它构建在AXIOM(抽象XML信息模型)之上,提供了高性能和低内存消耗。Axis2支持多种传输协议,如HTTP、HTTPS,以及消息格式,如SOAP、RESTful。它具有模块化结构...

Global site tag (gtag.js) - Google Analytics