স্প্রিং OXM (Spring OXM) XML ডাটা এবং জাভা অবজেক্টের মধ্যে ম্যাপিং করার জন্য ব্যবহৃত হয়। এতে বিশেষভাবে JAXB (Java Architecture for XML Binding) ব্যবহার করা হয়, যা XML এবং জাভা অবজেক্টের মধ্যে ডাটা রূপান্তর করে। JAXB এর মাধ্যমে XML ডকুমেন্টের সাথে কাজ করতে গেলে কিছু গুরুত্বপূর্ণ অ্যানোটেশন ব্যবহার করা হয়, যেমন @XmlRootElement, @XmlElement, এবং @XmlAttribute।
@XmlRootElement
@XmlRootElement অ্যানোটেশনটি JAXB এর মূল অ্যানোটেশন। এটি নির্ধারণ করে যে কোন ক্লাসটি একটি XML ডকুমেন্টের মূল রুট এলিমেন্ট হিসেবে ব্যবহৃত হবে। এই অ্যানোটেশনটি ক্লাসের উপরে ব্যবহার করা হয় এবং এটি স্পষ্টভাবে নির্দেশ করে যে ক্লাসটি একটি XML রুট এলিমেন্টের প্রতিনিধিত্ব করবে।
উদাহরণ:
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Person {
private String name;
private int age;
// getters and setters
}
এখানে Person ক্লাসে @XmlRootElement অ্যানোটেশন ব্যবহৃত হয়েছে, যার ফলে এটি XML ডকুমেন্টের রুট এলিমেন্ট হিসেবে ব্যবহৃত হবে।
@XmlElement
@XmlElement অ্যানোটেশনটি ব্যবহার করা হয় ক্লাসের প্রপার্টি বা ফিল্ডের উপরে, যা XML ডকুমেন্টের মধ্যে একটি এলিমেন্ট হিসেবে পরিগণিত হবে। এটি একটি ফিল্ডকে XML ট্যাগ হিসেবে ম্যাপ করতে ব্যবহৃত হয়।
উদাহরণ:
import javax.xml.bind.annotation.XmlElement;
public class Person {
private String name;
private int age;
@XmlElement
public String getName() {
return name;
}
@XmlElement
public int getAge() {
return age;
}
// setters
}
এখানে @XmlElement অ্যানোটেশনটি getName() এবং getAge() মেথডের উপরে ব্যবহৃত হয়েছে, যা XML ফাইলের এলিমেন্ট হিসেবে ম্যাপ হবে।
@XmlAttribute
@XmlAttribute অ্যানোটেশনটি ব্যবহার করা হয় ক্লাসের ফিল্ড বা মেথডের উপরে, যেটি XML এলিমেন্টের অ্যাট্রিবিউট হিসেবে ব্যবহৃত হবে। এটি XML ট্যাগের মধ্যে অ্যাট্রিবিউট যুক্ত করতে ব্যবহৃত হয়, যেমন <person name="John" age="30"/> এর মধ্যে name এবং age হচ্ছে অ্যাট্রিবিউট।
উদাহরণ:
import javax.xml.bind.annotation.XmlAttribute;
public class Person {
private String name;
private int age;
@XmlAttribute
public String getName() {
return name;
}
@XmlAttribute
public int getAge() {
return age;
}
// setters
}
এখানে @XmlAttribute অ্যানোটেশনটি getName() এবং getAge() মেথডের উপরে ব্যবহৃত হয়েছে, যা XML ডকুমেন্টে অ্যাট্রিবিউট হিসেবে পরিগণিত হবে।
@XmlRootElement, @XmlElement, @XmlAttribute এর সংমিশ্রণ
যখন আপনি @XmlRootElement, @XmlElement, এবং @XmlAttribute একসঙ্গে ব্যবহার করেন, তখন আপনি একটি পূর্ণাঙ্গ XML ডকুমেন্ট মডেল তৈরি করতে পারেন যা XML ডেটা এবং জাভা অবজেক্টের মধ্যে ম্যাপিংকে আরও স্পষ্ট এবং কার্যকর করে।
উদাহরণ:
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlAttribute;
@XmlRootElement
public class Person {
private String name;
private int age;
@XmlElement
public String getName() {
return name;
}
@XmlElement
public int getAge() {
return age;
}
@XmlAttribute
public String getId() {
return "123";
}
// setters
}
এখানে Person ক্লাসে @XmlRootElement রুট এলিমেন্ট হিসেবে ব্যবহৃত হয়েছে, @XmlElement ডাটা ফিল্ডগুলোর জন্য, এবং @XmlAttribute অ্যাট্রিবিউট হিসেবে একটি আইডি ফিল্ড যুক্ত করা হয়েছে।
স্প্রিং OXM এবং JAXB এর মাধ্যমে XML ডকুমেন্টের সাথে কাজ করার সময় এই অ্যানোটেশনগুলোর ব্যবহার ডাটা রূপান্তর এবং ম্যাপিংকে সহজ এবং বেশি কার্যকর করে। এগুলো স্পষ্টভাবে নির্দেশ করে, কোন অংশটি XML এলিমেন্ট হবে এবং কোন অংশটি অ্যাট্রিবিউট, যা জাভা কোড এবং XML ডকুমেন্টের মধ্যে সঠিক সম্পর্ক তৈরি করতে সাহায্য করে।
Read more