`

用JAXB实现JAVA对象与XML文件的绑定

    博客分类:
  • jaxb
阅读更多
1.用JAXB可以实现JAVA对象与XML文件的绑定。可以直接将对象序列化到XML文件中。
 
  需要jaxb-api-2.1.jar支持
 
  2.使用方法:首先定义对象,如下面对象
 
  @XmlRootElement(name = "company")
 
  public class Company {
 
  @XmlElement(name = "employee")
 
  private List<Employee> employees;
 
  @XmlTransient
 
  public List<Employee> getEmployees() {
 
  return employees;
 
  }
 
  public void setEmployees(List<Employee> employees) {
 
  this.employees = employees;
 
  }
 
  public void addEmployee(Employee employee) {
 
  if (employees == null) {
 
  employees = new ArrayList<Employee>();
 
  }
 
  employees.add(employee);
 
  }
 
  }
 
  其中@XmlRootElement(name = "company")为注释,表示该Company对象对应XML文件中的根节点company,
 
  而@XmlElement(name = "employee")说明对应imployee元素。
 
  @XmlType
 
  public class Employee {
 
  @XmlElement(name = "name")
 
  private String name;
 
  @XmlElement(name = "id")
 
  private String id;
 
  @XmlTransient
 
  public String getId() {
 
  return id;
 
  }
 
  public void setId(String id) {
 
  this.id = id;
 
  }
 
  @XmlTransient
 
  public String getName() {
 
  return name;
 
  }
 
  public void setName(String name) {
 
  this.name = name;
 
  }
 
  }
 
  注意要把@XmlTransient放在get()方法前面,否则可能会出现导致运行报错:
 
  Exception in thread "main" com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException:
 
  2 counts of IllegalAnnotationExceptions
 
  3.需要建一个文件jaxb.index,里面的内容为类的名字,如Company
 
  4.读写XML文件时
 
  JAXBContext jc = JAXBContext.newInstance("test.xml");
 
  Unmarshaller unmarshaller = jc.createUnmarshaller();
 
  Marshaller marshaller = jc.createMarshaller();
 
  // 写入文件,xmlFile为文件名
 
  FileOutputStream fout = new FileOutputStream(xmlFile);
 
  OutputStreamWriter streamWriter = new OutputStreamWriter(fout);
 
  // 文件写入格式
 
  OutputFormat outputFormat = new OutputFormat();
 
  outputFormat.setIndent(4);
 
  outputFormat.setLineSeparator(System.getProperty("line.separator"));
 
  XMLSerializer xmlSerializer = new XMLSerializer(streamWriter, outputFormat);
 
  marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
 
  marshaller.marshal(company, xmlSerializer);
 
  // 读取文件
 
  Company company = (Company) unmarshaller.unmarshal(xmlFile);



分享到:
评论

相关推荐

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

    在本文中,我们将深入探讨如何使用JAXB实现Java对象与XML的互相转换。 首先,我们需要理解JAXB的基本工作原理。JAXB基于Java注解,这些注解用于标记Java类和它们的属性,以便JAXB知道哪些元素和属性应该映射到XML中...

    JAXB技术实现xml与java对象互相转化代码教程

    使用java jdk的JAXB技术实现xml与java对象互相转化代码教程: JDK中JAXB相关的重要Class和Interface:(来源于百度百科JAXB) •JAXBContext类,是应用的入口,用于管理XML/Java绑定信息。 •Marshaller接口,将Java...

    JAXB_Java Architecture For XML Binding

    Java Architecture for XML Binding (JAXB) 是Java平台上的一个标准技术,它允许程序开发者将XML文档与Java对象之间进行绑定,实现XML数据的序列化和反序列化。JAXB是Java SE和Java EE环境中的一部分,提供了高效且...

    [转载] JAXB中Java对象和XML之间的转换

    1. **Java类与XML Schema绑定**: JAXB使用`@XmlRootElement`和`@XmlElement`等注解将Java类的字段与XML元素对应。XML Schema定义了XML文档的结构,通过`xsdschema`文件,JAXB可以自动生成符合Schema的Java类。 2. *...

    webservice之使用jaxb把xml转换Object或把对象转换成xml文件

    在Java世界中,使用JAXB(Java Architecture for XML Binding)库可以方便地实现XML数据与Java对象之间的转换,从而在WebService中轻松处理数据交换。本篇文章将深入探讨如何使用JAXB进行XML到Object以及Object到XML...

    JAXB完成XML和Java对象的互转

    该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例文档。从另一方面来讲,JAXB提供了快速而简便的方法将XML模式绑定到Java表示,从而使得Java开发者在Java应用...

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

    总结来说,这个压缩包提供的内容涉及了Java中使用JAXB进行XML与Java对象之间转换的实际应用,以及辅助的DTO和文件读取工具。这些对于理解和实现XML数据处理的Java应用非常有帮助。开发者可以通过学习和使用这些示例...

    Java与XML数据绑定

    4. **绑定文件自定义**:如果不想使用注解,可以创建一个XML绑定文件(如bindings.xjb),在其中定义类和元素的映射关系。这样,即使Java源代码不受控制,也可以自定义XML结构。 5. **数据类型转换**:JAXB自动处理...

    [精品]JAVA6新特性介绍使用JAXB来实现对象与XML之间的映射.doc

    1. **注解驱动**:JAXB 2.0允许开发者使用注解来标记需要进行绑定的类和属性,如`@XmlRootElement`、`@XmlElement`、`@XmlAttribute`等,这使得代码更加简洁,无需编写大量的XML绑定文件。 2. **集成到JDK**:Java ...

    用jaxb 实现 xml转java对象技术

    在实际项目中,JAXB通常与Spring框架结合使用,实现RESTful服务中的XML数据交换。同时,JAXB也常被用在Web服务中,如JAX-WS,进行SOAP消息的序列化和反序列化。 总结来说,JAXB是Java开发者处理XML数据的强大工具,...

    深入解析:Java中JAXB(Java Architecture for XML Binding)实现机制

    JAXB,即Java Architecture for XML Binding,是Java EE的一部分,提供了一种将XML数据结构化为Java对象的机制,以及反向的绑定过程。本文将深入探讨JAXB的实现原理、使用方法和最佳实践。 JAXB为Java开发者提供了一...

    JaxbContext生成xml文件或java类对象转化注解

    JAXB 提供了许多有用的功能,例如可以将 Java 对象与 XML 进行绑定,可以实现 Java 对象与 XML 的相互转换,等等。 此外,JAXB 也提供了一些有用的工具,例如 XJC 工具,通过定义 schema 的方式可以实现 Java 对象...

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

    JAXB通过元数据(如注解或XML绑定文件)来映射Java类到XML元素,以及XML元素到Java类。这使得XML文档能够被自动解析成Java对象,反之亦然。 **1. JAXB的使用步骤** (1) **创建Java类(javabean)** 首先,定义一...

    JAXB 生成XML文件

    这种映射关系可以通过注解、XML绑定文件(如`jaxb-bindings.xml`)或默认的命名约定来定义。 2. **注解**:在描述中提到的"JAXB注解"是用于标记Java类和类成员的关键元素,以指示它们如何在XML中表示。例如,`@...

    JAXB 利用xsd文件生成java类

    JAXB (Java Architecture for XML Binding) 是Java平台上的一个标准,用于将XML文档与Java对象之间进行绑定,实现XML数据的解析和序列化。在Java开发中,JAXB提供了一种方便的方式,允许开发者通过XML Schema (XSD) ...

    JAVA和XML数据绑定 经典PDF

    1. JAXB:JAXB是Java标准API,提供了一种高效的、基于注解的方式将Java类与XML Schema映射,实现了XML到Java对象以及Java对象到XML的自动转换。通过在Java类上添加注解,如@XmlRootElement、@XmlElement、@...

Global site tag (gtag.js) - Google Analytics