`

jaxb基本用法

 
阅读更多

转自:http://blog.csdn.net/heroson_chow/article/details/48627867

JAXB用途

JAXB(Java Architecture for XML Binding)封装在jdk中,jdk1.7及以上都不需要引入多于的jar包就可以完成JAXB代码开发了

1、将Java对象序列化为XML,过程叫Marshal出处

2、将XML数据文件解析成一个Java对象,过程叫Unmarshal出处)

 JAXB使用具体步骤(该段文字出处)

 

 一、 Java对象 to XML

    1. 通过映射的类创建XMLContext上下文对象,其中参数为映射的类。
                 JAXBContext context = JAXBContext.newInstance(Article.class)
    2. 通过JAXBComtext上下文对象的createMarshaller()方法,创建一个对象java格式转化成XML的格式,代码如下
                 Marshaller m = context.createMarshaller();
    3. 最后,将JAVA对象转换到制定的输出位置,其中的article为java对象。
                 m.marshal(article,xmlFile);

二、 XML to Java对象

    1. 通过映射的类创建XMLComtext上下文对象,其中参数为映射的类。
                 JAXBContext context = JAXBContext.newInstance(Article.class);
    2. 通过JAXBContext上下文对象创建createUnmarshaller()方法,创建XML转换成JAVA对象的格式。
                 Unmarshall m = context.createUnmarshaller();
    3. 最后,将XML转换成对映的类,转换后需要强制性转换成映射的类
                 Article article = (Article)m.unmarshaller(xmlFile);

 

 

jaxb注释

 

@XmlRootElement   将一个Java类映射为一段XML的根节点

参数:name            定义这个根节点的名称

          namespace   定义这个根节点命名空间



@XmlAccessorType  定义映射这个类中的何种类型需要映射到XML。可接收四个参数,分别是:

      XmlAccessType.FIELD:映射这个类中的所有字段到XML

      XmlAccessType.PROPERTY:映射这个类中的属性(get/set方法)到XML

      XmlAccessType.PUBLIC_MEMBER:将这个类中的所有public的field或property同时映射到XML(默认)

      XmlAccessType.NONE:不映射



@XmlElement  指定一个字段或get/set方法映射到XML的节点。如,当一个类的XmlAccessorType 被标注为PROPERTY时,在某一个没有get/set方法的字段上标注此注解,即可将该字段映射到XML。

参数:defaultValue  指定节点默认值

         name             指定节点名称

         namespace    指定节点命名空间

         required         是否必须(默认为false,解决null 或 空值 标签不显示)

         nillable           该字段是否包含 nillable="true" 属性(默认为false)

         type               定义该字段或属性的关联类型



@XmlAttribute  指定一个字段或get/set方法映射到XML的属性。

参数:name             指定属性名称

         namespace    指定属性命名空间

         required         是否必须(默认为false)



@XmlTransient  定义某一字段或属性不需要被映射为XML。如,当一个类的XmlAccessorType 被标注为PROPERTY时,在某一get/set方法的字段上标注此注解,那么该属性则不会被映射。



@XmlType 定义映射的一些相关规则

参数:propOrder        指定映射XML时的节点顺序

         factoryClass     指定UnMarshal时生成映射类实例所需的工厂类,默认为这个类本身

         factoryMethod  指定工厂类的工厂方法

         name               定义XML Schema中type的名称

         namespace      指定Schema中的命名空间



@XmlElementWrapper  为数组元素或集合元素定义一个父节点。如,类中有一元素为List items,若不加此注解,该元素将被映射为

    <items>...</items>

    <items>...</items>

这种形式,此注解可将这个元素进行包装,如:

    @XmlElementWrapper(name="items")
    @XmlElement(name="item")
    public List items;

将会生成这样的XML样式:

    <items>

        <item>...</item>

        <item>...</item>

    </items>



@XmlJavaTypeAdapter  自定义某一字段或属性映射到XML的适配器。如,类中包含一个接口,我们可以定义一个适配器(继承自 javax.xml.bind.annotation.adapters.XmlAdapter类),指定这个接口如何映射到XML。



@XmlSchema 配置整个包的namespace,这个注解需放在package-info.java文件中。

jaxb编码:

           JAXBContext jaxbContext = JAXBContext.newInstance(clazz);
            Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
            InputStreamReader reader=new InputStreamReader(inputStream,"GBK");   //在此修改编码
            return unmarshaller.unmarshal(reader);

分享到:
评论

相关推荐

    JAXB的使用JAXB的使用

    ### JAXB的基本概念 1. **Java类到XML Schema的映射**:通过`@XmlRootElement`和`@XmlElement`等注解,可以将Java类和其属性映射为XML元素和属性。例如,一个名为`Person`的类可以通过注解映射到一个XML文档的根...

    jaxb功能用法

    在这个"jaxb功能用法"的讨论中,我们将深入探讨如何利用JAXB进行XML与Java Bean之间的转换,并结合XSD(XML Schema)进行数据验证。 ### JAXB的基本概念 1. **绑定文件**:JAXB的配置通常通过一个名为`jaxb-...

    JAXB的安装包及插件

    **JAXB的基本用法** - **生成Java类**:JAXB提供了一个工具`xjc`,可以将XML Schema文档转换为对应的Java类。 - **对象到XML**:使用`Marshaller`类将Java对象转换为XML文档。 - **XML到对象**:使用`Unmarshaller`...

    jaxb (XML操作)

    2. **实例化(Unmarshalling)**:当需要将XML数据转换为Java对象时,JAXB使用Unmarshaller接口解析XML文档,生成对应的Java对象。这个过程是将XML数据"反序列化"为可操作的Java对象。 3. **序列化(Marshalling)*...

    jaxb 使用实例

    ### JAXB的基本概念 1. **Java类到XML的映射(Marshalling)**:将Java对象转换为XML文档的过程称为Marshalling。JAXB通过`Marshaller`接口来实现这个功能,它提供了一系列方法将Java对象转换成XML格式的字符串或者...

    Jaxb简单例子

    这个简单的例子将带你深入理解JAXB的基本用法,包括注解的使用和Java与XML之间的互相转换。 **一、JAXB的基本概念** 1. **Java对象到XML**: JAXB允许我们将Java对象直接序列化为XML格式的文档,这称为对象到XML的...

    JAXB 利用xsd文件生成java类

    JAXB (Java Architecture for XML Binding) 是Java平台上的一个标准,用于将XML文档与Java对象之间进行绑定,...在JAXB-Sunshine7这个示例中,可能包含了一个或多个关于如何使用JAXB从XSD生成Java类的演示和实践案例。

    java学习之jaxb的学习一

    三、JAXB的基本使用 1. 定义Java类:首先,我们需要定义一个Java类,该类的属性对应XML文档中的元素和属性。JAXB会自动为这些属性生成getter和setter方法。 2. 创建JAXBContext:这是JAXB的核心,负责管理和控制XML...

    axis部署WebServices 和 JAXB的使用

    在这个"axis部署WebServices 和 JAXB的使用"主题中,我们将深入探讨这两个关键技术及其协同工作。 首先,让我们关注Axis的部署过程。Axis1.3是Axis的一个较旧版本,但仍然适用于许多遗留系统。部署Web服务的基本...

    JAXB的HelloWorld源码

    在上述代码中,`main`方法展示了如何使用JAXBContext、Marshaller和Unmarshaller进行序列化和反序列化操作。运行这个程序,你将在控制台看到XML表示形式的`HelloWorld`对象,以及从输入流反序列化回的`HelloWorld`...

    JAXB.zip_jaxb

    通过分析这个"JAXB.zip_jaxb"压缩包的内容,我们可以学习到如何在NetBeans中创建和管理一个JAXB项目,理解JAXB的基本原理和用法,以及如何利用Ant进行构建和测试。这不仅有助于加深对JAXB的理解,也能够提升在实际...

    jaxb xml 转map

    首先,我们需要了解JAXB的基本用法。JAXB的工作原理是基于Java类来生成XML schema,或者反过来基于XML schema生成Java类。当我们有一个XML文档,我们可以创建对应的Java类,这些类将作为映射的基础。然后,JAXB会...

    利用JAXB进行xml和javabean之间转换

    首先,我们需要了解JAXB的基本工作原理。JAXB通过元数据(如注解或XML绑定文件)来映射Java类到XML元素,以及XML元素到Java类。这使得XML文档能够被自动解析成Java对象,反之亦然。 **1. JAXB的使用步骤** (1) **...

    jaxb解析xml

    2. 使用 JAXB 的 XJC 工具,通过定义 schema 的方式实现 Java 对象与 XML 的绑定。 ### 3.2 JAXB Annotation 使用说明 #### 3.2.1 @XmlType @XmlType 定义映射的一些规则,用在 class 类的注解,常与 @...

    通过JAXB实现完成java对象和xml的互相转换

    Java Architecture for XML Binding (JAXB) 是一个Java标准,它提供了在Java对象和XML文档之间...在提供的压缩包文件`JAXB_tests`中,可能包含了一些示例代码和测试用例,这将有助于更深入地理解JAXB的工作机制和用法。

    利用jaxb实现xml和bean互转

    **一、JAXB的基本概念** 1. **Java Bean**: Java Bean是Java中的一个简单对象,通常具有getter和setter方法,用于封装数据。在JAXB中,这些Bean类会被映射到XML元素和属性。 2. **XML Schema**: 定义了XML文档的...

    JAXB资料集.rar

    "jaxb使用文档.doc"应该是详细介绍了JAXB的使用方法,包括基本操作、高级特性以及可能遇到的问题和解决方案。文档可能还涵盖了错误处理、性能优化、XML Schema的处理等内容。 总的来说,这份"JAXB资料集.rar"是一份...

    Jaxb2 开发指南

    Jaxb2基本操作\n\nJaxb2主要通过`JAXBContext`、`Unmarshaller`和`Marshaller`三个核心类来实现Java对象与XML的转换。\n\n#### 3.1 创建`JAXBContext`\n\n`JAXBContext`是整个转换过程的核心,它负责管理Java类型和...

    JAVA JAXB 解析XML嵌套子节点为字符串

    当我们面临XML文档中存在嵌套子节点,并且希望将其解析为字符串时,JAXB提供了一种有效的方法。 首先,我们需要理解XML文档的基本结构。XML是一种可扩展标记语言,它通过标签来定义元素和数据,允许数据以层次结构...

Global site tag (gtag.js) - Google Analytics