- import java.io.FileOutputStream;
-
- import javax.xml.bind.JAXBContext;
- import javax.xml.bind.Marshaller;
- import javax.xml.bind.annotation.XmlRootElement;
-
- public class JavaToXMLDemo {
- public static void main(String[] args) throws Exception {
- JAXBContext context = JAXBContext.newInstance(Employee.class);
-
- Marshaller m = context.createMarshaller();
- m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
-
- Employee object = new Employee();
- object.setCode("CA");
- object.setName("Cath");
- object.setSalary(300);
-
- m.marshal(object, System.out);
-
- }
- }
import java.io.FileOutputStream;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.annotation.XmlRootElement;
public class JavaToXMLDemo {
public static void main(String[] args) throws Exception {
JAXBContext context = JAXBContext.newInstance(Employee.class);
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
Employee object = new Employee();
object.setCode("CA");
object.setName("Cath");
object.setSalary(300);
m.marshal(object, System.out);
}
}
- @XmlRootElement
- class Employee {
- private String code;
-
- private String name;
-
- private int salary;
-
- public String getCode() {
- return code;
- }
-
- public void setCode(String code) {
- this.code = code;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public int getSalary() {
- return salary;
- }
-
- public void setSalary(int population) {
- this.salary = population;
- }
- }
@XmlRootElement
class Employee {
private String code;
private String name;
private int salary;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSalary() {
return salary;
}
public void setSalary(int population) {
this.salary = population;
}
}
运行结果:
- <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
- <employee>
- <code>CA</code>
- <name>Cath</name>
- <salary>300</salary>
- </employee>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<employee>
<code>CA</code>
<name>Cath</name>
<salary>300</salary>
</employee>
分享到:
相关推荐
**使用JAXB根据XSD生成XML文档** ...这个过程包括创建XSD文件、生成Java类、配置JAXB绑定、创建和填充Java对象,最后使用`Marshaller`生成XML文档。了解并熟练掌握这一流程,能够极大地提高XML处理的效率和准确性。
在给定的例子中,我们将深入理解如何使用JAXB注解来生成XML。 1. **@XmlType**: 这个注解用于定义类的属性在XML输出中的顺序。在`WriterXml`类中,propOrder 属性指定了"id", "name", "age", "book"这四个属性的...
Java Architecture for XML Binding (JAXB) 是Java平台中用于处理XML和Java对象之间转换的一个标准API。它使得在Java应用程序中使用XML数据变得更加方便,无需手动编写大量的转换代码。本教程将详细介绍JAXB如何实现...
本文详细介绍了如何使用JAXB从XML模式生成Java类,并最终构建出符合该模式的XML文档。通过这种方式,可以有效地实现XML数据和Java对象之间的相互转换,极大地简化了基于XML的应用程序的开发过程。需要注意的是,在...
1. 创建XML Schema(XSD)文件:首先,我们需要定义XML的数据结构,这通常通过创建一个XML Schema文件来完成。XSD文件定义了XML文档的元素、属性及其约束。 2. 生成Java类:使用JAXB工具(如`xjc`命令行工具或Maven...
通常,这个示例可能会定义一些带有JAXB注解的Java类,然后创建`JAXBContext`实例,生成`Marshaller`,最后将Java对象序列化为XML文件。 在实际开发中,JAXB广泛应用于各种场景,如Web服务的响应和请求、配置文件的...
无论是序列化Java对象为XML,还是从XML数据中构建Java对象,JAXB都提供了高效且易于使用的API。在实际开发中,配合良好的设计模式,JAXB能够帮助我们更好地管理和操作XML数据。通过实践和学习,开发者可以充分利用...
生成的Java类包含了getter和setter方法,使得你可以直接在代码中创建和操作这些对象,然后使用JAXB将其序列化为XML,或者反序列化XML到Java对象。例如: ```java import javax.xml.bind.JAXBContext; import javax....
`unmarshal`方法用于从XML文件中创建一个`Person`对象,而`marshal`方法则将`Person`对象写入XML文件。 ### JAXB的优势 1. **易用性**:JAXB提供了一种直观且易于理解的方式来处理XML,无需编写大量的DOM或SAX解析...
如果不希望手动添加注解,可以使用JAXB的绑定工具(如`xjc`)从XML Schema (XSD)文件生成对应的Java类。这一步骤将创建带有正确注解的Java类,以便JAXB理解XML结构。 (3) **实例化Java对象** 创建Java对象并填充...
使用JAXB解析XML时,我们首先需要创建一个Java类模型,这个模型反映了XML文档的结构。每个XML元素对应一个Java类,类的属性对应元素的属性或子元素。例如,如果XML中有以下结构: ```xml <text>Some text here ...
3. **创建Unmarshaller和Marshaller对象**:使用`javax.xml.bind.JAXBContext`类来创建Unmarshaller和Marshaller对象,这两个对象分别用于Unmarshalling和Marshalling。 4. **Unmarshalling**:使用Unmarshaller...
2. **实例化(Unmarshalling)**:当需要将XML数据转换为Java对象时,JAXB使用Unmarshaller接口解析XML文档,生成对应的Java对象。这个过程是将XML数据"反序列化"为可操作的Java对象。 3. **序列化(Marshalling)*...
JAXB提供了`Unmarshaller`接口,通过`unmarshal()`方法,可以从XML输入源(如文件、流或DOM节点)创建Java对象。 4. **注解驱动的绑定**: JAXB支持使用注解来定制Java类和XML之间的映射。例如,`@XmlElementWrapper...
这个过程被称为对象绑定,它简化了XML数据的处理,使得开发人员无需手动编写XML解析和生成代码。在本文中,我们将深入探讨如何使用JAXB实现JavaBean到XML的转换以及XML到JavaBean的反向转换。 首先,JAXB的核心组件...
首先,使用StAX逐个读取XML事件,然后利用JAXB将这些事件转换为Java对象,从而实现高效且内存友好的XML解析。 下面是一些关键知识点: 1. **StAX解析流程**: - 创建XMLInputFactory实例,这是解析XML的起点。 -...
例如,一个Web服务可能接收XML请求,然后使用JAXB将其转换为Java对象进行处理,最后再将结果转换为XML响应。 **五、示例代码** ```java import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; ...
- 序列化时,JAXB会根据对象的字段和属性自动创建XML元素和属性。 4. **XML到Java对象的反序列化**: - 反序列化是序列化的逆过程,使用`Unmarshaller`类,可以从XML字符串或文件中创建Java对象实例。 - JAXB会...
当我们有一个Java对象,并希望将其转换成XML格式时,JAXB会使用已有的Java类和XML Schema信息来生成符合Schema规范的XML文档。这个过程可以通过调用`JAXBContext`的`createMarshaller()`方法创建一个marshaller对象...
然后,JAXB会使用这些类来解析XML并生成相应的对象实例。对于简单的XML,这通常很有效。但是,对于复杂的XML结构,转换为Map可能更为合适。 转换XML到Map的过程通常包括以下步骤: 1. 创建一个XML解析器:使用`...