Java XML বলতে, জাভা প্রোগ্রামিং ভাষায় XML (Extensible Markup Language) ডকুমেন্টগুলি পড়া, লিখা, এবং প্রক্রিয়া করার জন্য ব্যবহৃত টেকনোলজিগুলিকে বোঝানো হয়। XML একটি সাধারণ ফাইল ফরম্যাট যা ডাটা স্টোর এবং ট্রান্সফার করার জন্য ব্যবহৃত হয়, এবং এটি বিভিন্ন প্ল্যাটফর্ম এবং প্রোগ্রামিং ভাষার মধ্যে ডাটা এক্সচেঞ্জ করার জন্য উপযুক্ত। Java এক্সএমএল প্রযুক্তি আপনাকে XML ডকুমেন্টগুলোকে সহজে ম্যানিপুলেট করতে, পার্স করতে এবং জেনারেট করতে সাহায্য করে।
Java XML টেকনোলজিগুলির মধ্যে কিছু গুরুত্বপূর্ণ উপাদান হল:
- JAXB (Java Architecture for XML Binding): JAXB হল একটি API যা XML ডকুমেন্টের সাথে কাজ করার জন্য জাভা অবজেক্টগুলিকে ম্যাপ করতে ব্যবহৃত হয়। JAXB ডাটা বাইন্ডিং করতে সাহায্য করে, যেখানে আপনি একটি Java ক্লাসকে XML ফরম্যাটে কনভার্ট করতে পারেন এবং আবার XML থেকে Java অবজেক্টে কনভার্ট করতে পারেন।
- DOM (Document Object Model): DOM API XML ডকুমেন্টে গাছের কাঠামো তৈরির মাধ্যমে XML ডেটাকে ম্যানিপুলেট করতে সাহায্য করে।
- SAX (Simple API for XML): SAX API ইভেন্ট-ভিত্তিক XML প্রোসেসিং মডেল ব্যবহার করে, যেখানে ডকুমেন্টটি সিকোয়েন্সিয়ালি পার্স করা হয় এবং মেমরির ব্যবহার কম থাকে।
JAXB (Java Architecture for XML Binding):
JAXB আপনাকে Java অবজেক্টকে XML ফরম্যাটে কনভার্ট (marshalling) এবং XML ডকুমেন্ট থেকে Java অবজেক্টে কনভার্ট (unmarshalling) করার সুবিধা দেয়। এটি XML ডেটাকে জাভা ক্লাসের সঙ্গে বাইন্ডিং করে। JAXB ব্যবহার করে XML ডেটা প্রক্রিয়া করার জন্য যে স্টেপগুলি অনুসরণ করতে হয় তা নিম্নরূপ:
- Java ক্লাস তৈরি করুন যা XML এলিমেন্টের সাথে মিলে।
- JAXB অনোটেশন ব্যবহার করে ক্লাসকে XML ডেটা ম্যানিপুলেশনের জন্য প্রস্তুত করুন।
- Marshalling (Java অবজেক্টকে XML-এ কনভার্ট করা) এবং Unmarshalling (XML থেকে Java অবজেক্টে কনভার্ট করা)।
উদাহরণ: JAXB ব্যবহার
এখানে একটি সহজ উদাহরণ দেখানো হচ্ছে যেখানে JAXB ব্যবহার করে একটি Java অবজেক্টকে XML ডকুমেন্টে কনভার্ট করা হয় এবং XML থেকে Java অবজেক্টে কনভার্ট করা হয়।
1. Java ক্লাস তৈরি
প্রথমে, আপনি একটি ক্লাস তৈরি করবেন যেটি XML ডকুমেন্টের সাথে সম্পর্কিত।
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Student {
private String name;
private int age;
// Getter and Setter methods
@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অনোটেশনটি XML রুট এলিমেন্টকে নির্দেশ করে।@XmlElementঅনোটেশনটি ফিল্ড বা মেথডের জন্য XML ট্যাগকে নির্দিষ্ট করে।
2. Marshalling (Java অবজেক্ট থেকে XML-এ কনভার্ট করা)
এখন, JAXB ব্যবহার করে আমরা Student ক্লাসের একটি অবজেক্ট XML ডকুমেন্টে কনভার্ট (marshal) করতে পারি।
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import java.io.StringWriter;
public class JAXBExample {
public static void main(String[] args) {
try {
// Create a new student object
Student student = new Student();
student.setName("John Doe");
student.setAge(20);
// Create JAXB context and marshaller
JAXBContext context = JAXBContext.newInstance(Student.class);
Marshaller marshaller = context.createMarshaller();
// Convert Java object to XML
StringWriter writer = new StringWriter();
marshaller.marshal(student, writer);
// Print the XML output
System.out.println(writer.toString());
} catch (JAXBException e) {
e.printStackTrace();
}
}
}
এটি আপনাকে XML আউটপুট দিবে:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<student>
<name>John Doe</name>
<age>20</age>
</student>
3. Unmarshalling (XML থেকে Java অবজেক্টে কনভার্ট করা)
এখন, JAXB ব্যবহার করে একটি XML ডকুমেন্টকে Java অবজেক্টে কনভার্ট (unmarshal) করতে পারি।
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import java.io.StringReader;
public class JAXBExample {
public static void main(String[] args) {
try {
// Sample XML string
String xml = "<student><name>John Doe</name><age>20</age></student>";
// Create JAXB context and unmarshaller
JAXBContext context = JAXBContext.newInstance(Student.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
// Convert XML to Java object
StringReader reader = new StringReader(xml);
Student student = (Student) unmarshaller.unmarshal(reader);
// Print the student object data
System.out.println("Name: " + student.getName());
System.out.println("Age: " + student.getAge());
} catch (JAXBException e) {
e.printStackTrace();
}
}
}
এটি আপনাকে Java অবজেক্টের ডেটা আউটপুট করবে:
Name: John Doe
Age: 20
JAXB (Java Architecture for XML Binding) একটি শক্তিশালী টুল যা Java অবজেক্ট এবং XML ডেটা ফরম্যাটের মধ্যে কনভার্টিং করার জন্য ব্যবহার করা হয়। JAXB ব্যবহার করে XML ডেটা কনভার্ট, ম্যানিপুলেট এবং প্রসেস করা খুবই সহজ এবং কার্যকর। XML ডেটা স্টোরেজ, এক্সচেঞ্জ এবং সিস্টেম ইন্টিগ্রেশন প্রজেক্টগুলিতে JAXB একটি অপরিহার্য টুল হিসেবে ব্যবহৃত হয়।
Read more