`

java学习之jaxb的学习二

阅读更多
                            jaxb的annotation的理解
一.Jaxb处理java对象和xml之间转换常用的annotation有:
    @XmlType
    @XmlElement
    @XmlRootElement
    @XmlAttribute
    @XmlAccessorType
    @XmlAccessorOrder
    @XmlTransient
    @XmlJavaTypeAdapter

@XmlType用在class类的注解,常与@xmlRootElement和@XmlAccessorType一起使用.它有三个属性:name,namespace,propOrder,经常使用的前两个属性, 如:

@XmlType(name = "basicStruct",propOrder={"intValue","stringArray","stringValue"})

在使用propOrder的属性时,必须列出JavaBean对象中的所有属性,否则会报错。

@XmlElement用在java对象的属性映射成为xml的节点,在使用xmlElement时可通过name属性改变java属性在xml中显示的名字,例:
 
  @XmlElement(name="address")
    private String yourAddress;


@XmlRootElement用于类级别的注解,常与xmlType和xmlAccesorType一起使用,例:
  
 @XmlType
  @XmlAccessorType(XmlAccessType.FIELD)
  @XmlRootElement
  public class Address {}

@XmlAttribute 用于把java对象的属性映射为xml的属性,并可通过name属性为生成的xml属性指定别名。如:
  
@XmlAttribute(name="Country")

@XmlAccesorType 用于指定由java对象生成xml文件时对java对象属性访问的方式,常与xmlType和xmlAccessType连用,他的属性值是XmlAccessorType的四个枚举值:

XmlAccessType.FIELD:java对象中的所有成员变量

XmlAccessType.PROPERTY:java对象中所有通过getter/setter方式访问的成员变量

XmlAccessType.PUBLIC_MEMBER:java对象中所有的public访问权限的成员变量和通过getter/setter方式访问的成员变量

XmlAccessType.NONE:java对象的所有属性都不映射为xml的元素

注意:@XmlAccessorType的默认访问级别是XmlAccessType.PUBLIC_MEMBER,因此,如果java对象中的private成员变量设置了public权限的getter/setter方法,就不要在 private变量上使用@XmlElement和@XmlAttribute注解,否则在由java对象生成xml时会报同一个属性在java类里存在两次的错误。同理,如果@XmlAccessorType的访问权限为XmlAccessType.NONE,如果在java的成员变量上使用了@XmlElement或@XmlAttribute注解,这些成员变量依然可以映射到xml文件。

@XmlAccessorOrder用于对java生成的xml文件进行排序,它有两个属性值:

AccessorOrder.ALPHABETICAL:对生成的xml元素按字母书序排序

XmlAccessOrder.UNDEFINED:不排序


@XmlTransient 用于表示再由java生成xml文件时候忽略此属性,xml文件中不出现此元素

@XmlJavaTypeAdapter 让用于转换比较复杂的类型时,如map类型和时间属性的格式化,使用此注解时需要自己写一个Adapter类来继承XmlAdapter抽象类,并实现其中的方法 例:
public abstract class XmlAdapter<ValueType,BoundType> {
    // Do-nothing constructor for the derived classes.
    protected XmlAdapter() {}
    // Convert a value type to a bound type.
    public abstract BoundType unmarshal(ValueType v);
    // Convert a bound type to a value type.
    public abstract ValueType marshal(BoundType v);
 }


@XmlElementWrapper注解表示生成一个包装 XML 表示形式的包装器元素。 此元素主要用于生成一个包装集合的包装器 XML 元素。因此,仅允许出现在集合属性上。例如(set,string[],list等)与xmlElement联用.,例:

@XmlElementWrapper(name="books")
@XmlElement(name="book")
public Set<Book> getBook() {
    return book;
}
 
public void setBook(Set<Book> book) {
    this.book = book;
}
 


以上就是jaxb的常用注解! 也是我在一篇文章中看到的 就参考下来了
分享到:
评论

相关推荐

    java学习之jaxb的学习一

    Java学习之JAXB(Java Architecture for XML Binding)的学习一 JAXB是Java平台的一个标准,它为XML到Java对象的绑定提供了一种自动的方式,使得XML数据能够在Java应用程序中轻松地进行序列化和反序列化。这个技术...

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

    Java Architecture for XML Binding (JAXB) 是一个Java标准,它提供了在Java对象和XML文档之间进行自动转换的能力。这项技术极大地简化了XML数据处理,使得开发者可以方便地将Java对象序列化为XML,或者从XML数据中...

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

    2. **生成XML Schema(可选)**:如果你有预先定义的XML Schema(XSD),你可以使用JAXB的`xjc`工具将其转换为对应的Java类。 3. **创建Unmarshaller和Marshaller对象**:这两个对象分别用于反序列化和序列化。可以...

    jaxb2 生产java类demo实例

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

    java jdk1.6 新特性 jaxb2 demo

    Java JDK 1.6是Java开发工具包的一个重要版本,发布于2006年,引入了许多增强功能和新特性,极大地提升了开发效率...通过这样的示例,学习者可以深入理解JAXB的工作原理,以及它如何简化Java程序与XML数据交互的过程。

    java 使用 JAXB 将xml转换为 bean 包含xml和dto和读取文件的util类

    Java中的JAXB(Java Architecture for XML Binding)是一个用于在Java对象和XML文档之间进行映射的标准API。这个技术使得开发者可以方便地将XML数据转换为Java对象,反之亦然。在给定的压缩包文件中,可能包含了实现...

    jaxb (XML操作)

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

    数据绑定之JAXB

    2. **注解驱动的绑定**:学习如何使用`@XmlRootElement`,`@XmlElement`,`@XmlAttribute`等注解来标记Java类和其成员,以便JAXB理解如何进行转换。 3. **绑定配置文件**:在某些复杂场景下,可能需要使用`bindings...

    最新JAXB解析XML教程

    总之,学习JAXB不仅可以帮助你理解XML与Java之间的转换机制,还能提升你在开发中处理XML数据的能力。通过深入学习和实践,你将能够熟练运用JAXB进行XML的解析和编码,提高项目开发的效率和质量。

    jaxb-ri-2.2.7

    2. **二进制库**:包含JAXB运行时库的JAR文件(如`lib/jaxb-ri-runtime.jar`),这些库文件可以在Java项目中作为依赖引入,实现XML到Java对象的自动映射。 3. **源代码**:如果包含源码(如`src`目录),开发者可以...

    Java学习电子书合集

    Java学习电子书合集是一个全面涵盖Java编程各个方面的资源包,包含了从基础到高级的各类教程和参考书籍。这个合集旨在帮助初学者和有经验的开发者深化对Java语言的理解,提升编程技能。 《JAVA 编程思想》是Java...

    JAXB的例子

    **JAXB简介** Java Architecture for XML Binding (JAXB) 是Java平台上的一个重要标准,它提供了一种机制,能够将XML文档与Java...通过学习和掌握JAXB,开发者能够更加高效地处理XML数据,提升项目的开发效率和质量。

    jaxb2.0英文文档

    **Java Architecture for XML Binding (JAXB) 2.0** 是一个Java标准,它提供了一种将XML数据与Java对象之间进行自动转换的机制。这个技术是Java平台企业版(Java EE)的一部分,也是Java标准版(Java SE)的一个可选...

    jaxb学习资料

    ### jaxb学习资料知识点详解 #### 一、JAXB概览 JAXB,全称为Java Architecture for XML Binding,是一种用于处理XML数据的Java API。它允许开发者将Java类与XML文档之间的转换过程自动化,从而简化了数据交换的...

    Jaxb简单例子

    2. **XML到Java对象**: 反之,JAXB也能将XML解析为对应的Java对象,这被称为XML到对象的绑定。 **二、注解的使用** 在JAXB中,我们通常使用注解来标注Java类和字段,以便JAXB知道如何处理它们。以下是一些常用的...

    JAXB的HelloWorld源码

    总结来说,JAXB是Java中处理XML的强大工具,通过学习JAXB的HelloWorld源码,新手可以快速上手,理解XML和Java对象之间的绑定,以及如何进行序列化和反序列化操作。随着对JAXB的深入理解和实践,开发人员能够更高效地...

    《Java2全方位学习》(上)

    《Java2全方位学习》是针对Java编程语言的一本详尽教程,主要面向初学者和有一定经验的开发者。这本书分为上下两册,旨在帮助读者全面掌握Java2的核心概念和技术。通过阅读这本书,读者可以深入理解Java语言的基础...

    jaxb入门学习

    2. **JavaEE 5中的JAXB注解元素**:在`javax.xml.bind.annotation`包中提供了一系列注解,用于标注Java类,使其与XML元素进行映射。 #### 九、示例 以下是一个简单的示例,展示了如何使用JAXB操作XML文档。 1. **...

    使用jaxb将XML转化为JAVA BEAN

    在Java开发中,XML(eXtensible Markup Language)是一种常用的数据交换格式,它具有良好的结构化和可读性。...在提供的链接中,博主Eric Xiong的博客可能更深入地探讨了JAXB的使用和实践,可以作为进一步学习的资源。

Global site tag (gtag.js) - Google Analytics