English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
O JAXB é Para a binding XML de arquitetura Javaabreviação. Permite que desenvolvedores Java mapeiem classes Java para representações XML. JAXB pode ser usado para encapsular objetos Java em XML e vice-versa.
É fornecido pela Sun OXM (Object XML Mapping) ou O/M framework.
As vantagens do JAXB não requerem a criação ou uso de analisadores SAX ou DOM, nem a escrita de métodos de callback.
Você precisa usar JAXB para criar os seguintes arquivos para encapsular objetos Java em XML:
Employee.java applicationContext.xml Client.java
Para executar este exemplo, você precisa carregar:
Arquivo jar do Spring Core Arquivo jar do Spring Web
Baixe todos os arquivos jar do Spring, incluindo core, web, aop, mvc, j2ee, remoting, oxm, jdbc, orm, etc.
Employee.java
Se definidos três atributos id, nome e salário. Usamos os seguintes comentários neste classe:
@XmlRootElement Ela especifica o elemento raiz do arquivo XML. @XmlAttribute Ela especifica a propriedade do atributo. @XmlElement Ela especifica o elemento.
package com.w;3codebox; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name="employee") public class Employee { private int id; private String name; private float salary; @XmlAttribute(name="id") public int getId() { return id; } public void setId(int id) { this.id = id; } @XmlElement(name="name") public String getName() { return name; } public void setName(String name) { this.name = name; } @XmlElement(name="salary") public float getSalary() {}} return salary; } public void setSalary(float salary) { this.salary = salary; } }
applicationContext.xml
Ele define um Bean jaxbMarshallerBean, onde a classe Employee está ligada ao framework OXM.
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:oxm="http://www.springframework.org/schema/oxm" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/oxm http://www.springframework.org/schema/oxm/spring-oxm-3.0.xsd"> <oxm:jaxb2-marshaller id="jaxbMarshallerBean"> <oxm:class-to-be-bound name="com.w3codebox.Employee"/> </oxm:jaxb2-marshaller> </beans>
Client.java
Ele obtém a instância do Marshaller a partir do arquivo applicationContext.xml e chama o método marshal.
package com.w;3codebox; import java.io.FileWriter; import java.io.IOException; import javax.xml.transform.stream.StreamResult; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.oxm.Marshaller; public class Client{ public static void main(String[] args) throws IOException{ ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); Marshaller marshaller = (Marshaller)context.getBean("jaxbMarshallerBean"); Funcionário funcionário=new Funcionário(); funcionário.setId(101); funcionário.setNome("Sonoo Jaiswal"); funcionário.setSalário(100000); marshaller.marshal(employee, new StreamResult(new FileWriter("employee.xml"))); System.out.println("XML Criado com Sucesso"); } }
employee.xml
<?xml version="1.0" encoding="UTF-8" standalone="sim"?> <funcionário id="101> <nome>Sonoo Jaiswal</nome> <salário>100000.0</salário> </funcionário>