স্প্রিং ওএক্সএম (Spring OXM) ব্যবহার করে XML থেকে Java অবজেক্টে ডেটা ম্যাপ করা একটি সাধারণ প্রক্রিয়া, যা Marshaller এবং Unmarshaller ব্যবহার করে সম্পন্ন করা হয়। Unmarshaller একটি XML ডেটা পাঠ করে এবং সেটি একটি Java অবজেক্টে রূপান্তর করে। এটি সাধারণত JAXB (Java Architecture for XML Binding) অথবা অন্য কোনো XML ব্যান্ডিং ফ্রেমওয়ার্কের মাধ্যমে সম্পন্ন হয়।
XML থেকে Java Object এ ডেটা ম্যাপ করার প্রক্রিয়া
স্প্রিং ওএক্সএম ব্যবহারের মাধ্যমে XML থেকে Java অবজেক্টে ডেটা ম্যাপ করার জন্য নীচের ধাপগুলি অনুসরণ করা হয়।
১. মডেল ক্লাস তৈরি করা
প্রথমে, একটি Java মডেল ক্লাস তৈরি করতে হবে যেটি XML ডেটার স্ট্রাকচারের সাথে মেলে। উদাহরণস্বরূপ, ধরুন আপনার XML ডেটা কিছু স্টুডেন্ট সম্পর্কিত তথ্য ধারণ করে, তাহলে Java মডেল ক্লাস হতে পারে এমন:
package com.example.model;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Student {
private String name;
private int age;
// Getters and Setters
@XmlElement
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@XmlElement
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
এখানে @XmlRootElement এবং @XmlElement অ্যানোটেশন ব্যবহার করা হয়েছে, যা JAXB (Java Architecture for XML Binding) এর অংশ। এটি XML এবং Java অবজেক্টের মধ্যে ম্যাপিংকে সহজ করে।
২. স্প্রিং কনফিগারেশন ফাইল
স্প্রিং কনফিগারেশন ফাইলে Unmarshaller তৈরি করতে হবে যা XML ডেটা থেকে Java অবজেক্টে রূপান্তর করবে। নিচে একটি উদাহরণ দেওয়া হলো:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
<!-- JAXB Marshaller Bean -->
<bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="contextPath" value="com.example.model" />
</bean>
<!-- JAXB Unmarshaller Bean -->
<bean id="unmarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="contextPath" value="com.example.model" />
</bean>
</beans>
এখানে Jaxb2Marshaller ব্যবহৃত হয়েছে, যেটি JAXB প্রযুক্তির মাধ্যমে XML থেকে Java অবজেক্টে রূপান্তর করবে।
৩. Java কোড দিয়ে XML থেকে Java Object এ ডেটা ম্যাপ করা
এখন, আপনার Java কোডে XML ফাইলটি অবজেক্টে রূপান্তর করতে হবে। নিচে একটি উদাহরণ দেওয়া হলো যেখানে XML থেকে Java অবজেক্টে ডেটা রূপান্তর করা হচ্ছে:
package com.example;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.oxm.Marshaller;
import org.springframework.oxm.Unmarshaller;
import java.io.File;
public class SpringOxmExample {
public static void main(String[] args) {
// Spring Context লোড করা
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
// Unmarshaller Bean অ্যাক্সেস করা
Unmarshaller unmarshaller = (Unmarshaller) context.getBean("unmarshaller");
try {
// XML ফাইল থেকে Java অবজেক্টে রূপান্তর করা
File xmlFile = new File("student.xml"); // XML ফাইলের পাথ
Student student = (Student) unmarshaller.unmarshal(xmlFile);
// Java অবজেক্ট ব্যবহার করা
System.out.println("Student Name: " + student.getName());
System.out.println("Student Age: " + student.getAge());
} catch (Exception e) {
e.printStackTrace();
}
}
}
এখানে:
Unmarshaller.unmarshal()পদ্ধতি XML ফাইলটি পড়ে এবং সেটিকে Java অবজেক্টে রূপান্তর করে।student.xmlফাইলটি থেকে ডেটা পড়া হচ্ছে, এবং XML ডেটার সাথে মেলে এমনStudentঅবজেক্ট তৈরি হচ্ছে।
৪. XML ফাইল
XML ফাইলের উদাহরণটি নিচে দেওয়া হলো, যা Java অবজেক্টে রূপান্তরিত হবে:
<?xml version="1.0" encoding="UTF-8"?>
<student>
<name>John Doe</name>
<age>25</age>
</student>
এই XML ফাইলটি Student ক্লাসের সাথে ম্যাপিং করা হবে যেখানে <name> এবং <age> ট্যাগগুলি Java ফিল্ডের সাথে যুক্ত হবে।
সারাংশ
স্প্রিং ওএক্সএম (Spring OXM) ব্যবহার করে XML থেকে Java অবজেক্টে ডেটা ম্যাপ করার প্রক্রিয়া বেশ সরল। এখানে XML ডেটাকে JAXB বা অন্য কোনো XML ব্যান্ডিং ফ্রেমওয়ার্কের মাধ্যমে Java অবজেক্টে রূপান্তর করা হয়। এই প্রক্রিয়াতে স্প্রিং এর Unmarshaller ক্লাস গুরুত্বপূর্ণ ভূমিকা পালন করে, যা XML ডেটা পড়তে এবং তা Java অবজেক্টে রূপান্তর করতে সাহায্য করে।