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的基本工作原理。JAXB基于Java注解,这些注解用于标记Java类和它们的属性,以便JAXB知道哪些元素和属性应该映射到XML中...
使用java jdk的JAXB技术实现xml与java对象互相转化代码教程: JDK中JAXB相关的重要Class和Interface:(来源于百度百科JAXB) •JAXBContext类,是应用的入口,用于管理XML/Java绑定信息。 •Marshaller接口,将Java...
Java Architecture for XML Binding (JAXB) 是Java平台上的一个标准技术,它允许程序开发者将XML文档与Java对象之间进行绑定,实现XML数据的序列化和反序列化。JAXB是Java SE和Java EE环境中的一部分,提供了高效且...
1. **Java类与XML Schema绑定**: JAXB使用`@XmlRootElement`和`@XmlElement`等注解将Java类的字段与XML元素对应。XML Schema定义了XML文档的结构,通过`xsdschema`文件,JAXB可以自动生成符合Schema的Java类。 2. *...
在Java世界中,使用JAXB(Java Architecture for XML Binding)库可以方便地实现XML数据与Java对象之间的转换,从而在WebService中轻松处理数据交换。本篇文章将深入探讨如何使用JAXB进行XML到Object以及Object到XML...
该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例文档。从另一方面来讲,JAXB提供了快速而简便的方法将XML模式绑定到Java表示,从而使得Java开发者在Java应用...
总结来说,这个压缩包提供的内容涉及了Java中使用JAXB进行XML与Java对象之间转换的实际应用,以及辅助的DTO和文件读取工具。这些对于理解和实现XML数据处理的Java应用非常有帮助。开发者可以通过学习和使用这些示例...
4. **绑定文件自定义**:如果不想使用注解,可以创建一个XML绑定文件(如bindings.xjb),在其中定义类和元素的映射关系。这样,即使Java源代码不受控制,也可以自定义XML结构。 5. **数据类型转换**:JAXB自动处理...
1. **注解驱动**:JAXB 2.0允许开发者使用注解来标记需要进行绑定的类和属性,如`@XmlRootElement`、`@XmlElement`、`@XmlAttribute`等,这使得代码更加简洁,无需编写大量的XML绑定文件。 2. **集成到JDK**:Java ...
在实际项目中,JAXB通常与Spring框架结合使用,实现RESTful服务中的XML数据交换。同时,JAXB也常被用在Web服务中,如JAX-WS,进行SOAP消息的序列化和反序列化。 总结来说,JAXB是Java开发者处理XML数据的强大工具,...
JAXB,即Java Architecture for XML Binding,是Java EE的一部分,提供了一种将XML数据结构化为Java对象的机制,以及反向的绑定过程。本文将深入探讨JAXB的实现原理、使用方法和最佳实践。 JAXB为Java开发者提供了一...
JAXB 提供了许多有用的功能,例如可以将 Java 对象与 XML 进行绑定,可以实现 Java 对象与 XML 的相互转换,等等。 此外,JAXB 也提供了一些有用的工具,例如 XJC 工具,通过定义 schema 的方式可以实现 Java 对象...
JAXB通过元数据(如注解或XML绑定文件)来映射Java类到XML元素,以及XML元素到Java类。这使得XML文档能够被自动解析成Java对象,反之亦然。 **1. JAXB的使用步骤** (1) **创建Java类(javabean)** 首先,定义一...
这种映射关系可以通过注解、XML绑定文件(如`jaxb-bindings.xml`)或默认的命名约定来定义。 2. **注解**:在描述中提到的"JAXB注解"是用于标记Java类和类成员的关键元素,以指示它们如何在XML中表示。例如,`@...
JAXB (Java Architecture for XML Binding) 是Java平台上的一个标准,用于将XML文档与Java对象之间进行绑定,实现XML数据的解析和序列化。在Java开发中,JAXB提供了一种方便的方式,允许开发者通过XML Schema (XSD) ...
1. JAXB:JAXB是Java标准API,提供了一种高效的、基于注解的方式将Java类与XML Schema映射,实现了XML到Java对象以及Java对象到XML的自动转换。通过在Java类上添加注解,如@XmlRootElement、@XmlElement、@...