English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
JAXB هو هيكل Java用于XML绑定الاختصار الأولي. يسمح للمطورين Java بتحويل الفئات Java إلى شكل XML.
إنه قالب OXM (م映射 كائن XML) أو O/M المقدم من Sun.
ميزة JAXB لا تتطلب إنشاء أو استخدام محولات SAX أو DOM، ولا تتطلب كتابة طرق إرجاع.
تحتاج إلى استخدام Spring مع JAXB لتحويل كائنات Java إلى XML لإنشاء الملفات التالية:
Employee.java applicationContext.xml Client.java
لإطلاق هذا المثال، تحتاج إلى تحميل:
ملف jar لـ Spring Core ملف jar لـ Spring Web
انقر على جميع ملفات jar الخاصة بـ spring، بما في ذلك core، web، aop، mvc، j2ee، remoting، oxm، jdbc، orm وما إلى ذلك.
Employee.java
إذا تم تعريف ثلاث خصائص id، الاسم، وسعر الساعة. نستخدم في هذا الفئة التعليقات التالية:
@XmlRootElement يحدد عنصر جذر ملف XML. @XmlAttribute يحدد خصائص العنصر. @XmlElement يحدد العنصر.
package com.w3codebox; 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
يحدد بيان Bean jaxbMarshallerBean، حيث يتم ربط فئة Employee بمفارز 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
يستخرج مثيل Marshaller من ملف applicationContext.xml ويقوم بنداء طريقة marshal.
package com.w3codebox; 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"); Employee employee=new Employee(); employee.setId(101); employee.setName("Sonoo Jaiswal"); employee.setSalary(100000); marshaller.marshal(employee, new StreamResult(new FileWriter("employee.xml"))); System.out.println("تم إنشاء XML بنجاح"); } }
employee.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <employee id="101"> <name>Sonoo Jaiswal</name> <salary>100000.0</salary> </employee>