JAXB (Java Architecture for XML Binding) হলো একটি প্রযুক্তি যা Java অ্যাপ্লিকেশন এবং XML ডেটার মধ্যে মিথস্ক্রিয়া সহজ করে তোলে। JAXB-এর মাধ্যমে, Java অবজেক্টগুলোকে XML ফরম্যাটে কনভার্ট করা এবং XML ডেটাকে Java অবজেক্টে রূপান্তর করা যায়। এটি বিশেষ করে ওয়েব সার্ভিস ডেভেলপমেন্টে গুরুত্বপূর্ণ, যেখানে XML ডেটার আদান-প্রদান সাধারণত ব্যবহার হয়, যেমন SOAP ওয়েব সার্ভিসে।
JAXB হল একটি Java API যা XML ডেটা এবং Java অবজেক্টের মধ্যে ম্যাপিং তৈরি করে। এটি XML ডেটাকে Java অবজেক্টে এবং Java অবজেক্টকে XML ডেটাতে কনভার্ট করার জন্য অ্যানোটেশন এবং API প্রদান করে। JAXB ব্যবহার করে আপনি সহজেই XML ডেটার সাথে কাজ করতে পারেন এবং এটি প্রোগ্রামিং কাজের জটিলতা কমায়।
JAXB মূলত ওয়েব সার্ভিসে ব্যবহৃত XML ডেটা ফরম্যাটকে Java অবজেক্টে রূপান্তর (unmarshal) এবং Java অবজেক্টকে XML ফরম্যাটে রূপান্তর (marshal) করতে ব্যবহৃত হয়। JAXB এর সাহায্যে ওয়েব সার্ভিসের মাধ্যমে XML ডেটার আদান-প্রদান খুব সহজ হয়ে যায়।
JAXB ব্যবহার করার জন্য আপনাকে কিছু মূল পদক্ষেপ অনুসরণ করতে হবে:
JAXB অ্যানোটেশনগুলোর মাধ্যমে আপনি Java ক্লাস এবং XML ডেটার মধ্যে সম্পর্ক তৈরি করতে পারেন। নিম্নে কিছু গুরুত্বপূর্ণ JAXB অ্যানোটেশন এবং তাদের ব্যবহার দেখানো হলো:
@XmlRootElement
: এই অ্যানোটেশনটি XML ডকুমেন্টের মূল এলিমেন্টের সাথে Java ক্লাসের সম্পর্ক স্থাপন করে।@XmlElement
: এটি Java ফিল্ডকে XML এলিমেন্টে রূপান্তর করে।@XmlAttribute
: এটি Java ফিল্ডকে XML অ্যাট্রিবিউট হিসেবে রূপান্তর করে।@XmlType
: এটি ক্লাসের মধ্যে উপাদানগুলির সাজানো এবং বৈশিষ্ট্য নির্ধারণ করে।ধরা যাক, আপনি একটি XML ডকুমেন্টকে Java অবজেক্টে রূপান্তর করতে চান যেটি কিছু গ্রাহকের তথ্য ধারণ করে। প্রথমে Java ক্লাস তৈরি করুন এবং JAXB অ্যানোটেশন ব্যবহার করুন।
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Customer {
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
ব্যবহার করা হয়েছে যা Java ক্লাসকে XML ডকুমেন্টের মূল এলিমেন্ট হিসেবে চিহ্নিত করে এবং @XmlElement
ব্যবহার করা হয়েছে ফিল্ডগুলিকে XML এলিমেন্টে রূপান্তর করতে।
এখন, JAXB কনটেক্সট তৈরি করে আমরা Java অবজেক্টকে XML ফরম্যাটে রূপান্তর (মার্শালিং) এবং XML ডেটাকে Java অবজেক্টে রূপান্তর (আনমার্শালিং) করতে পারি।
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
public class JAXBExample {
public static void main(String[] args) {
try {
// Create a new customer object
Customer customer = new Customer();
customer.setName("John Doe");
customer.setAge(30);
// Create JAXB context for Customer class
JAXBContext context = JAXBContext.newInstance(Customer.class);
// Create marshaller to convert object to XML
Marshaller marshaller = context.createMarshaller();
// Print the XML to console
marshaller.marshal(customer, System.out);
} catch (JAXBException e) {
e.printStackTrace();
}
}
}
এই কোডের মাধ্যমে আপনি Customer
অবজেক্টটিকে XML ফরম্যাটে কনভার্ট করতে পারবেন এবং এটি কনসোলে আউটপুট হিসেবে প্রদর্শিত হবে।
XML ডেটাকে Java অবজেক্টে রূপান্তর করার জন্য JAXB আনমার্শালিং ব্যবহার করা হয়:
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import java.io.StringReader;
public class JAXBUnmarshalExample {
public static void main(String[] args) {
try {
String xmlData = "<customer><name>John Doe</name><age>30</age></customer>";
// Create JAXB context for Customer class
JAXBContext context = JAXBContext.newInstance(Customer.class);
// Create unmarshaller to convert XML to object
Unmarshaller unmarshaller = context.createUnmarshaller();
// Convert XML to Customer object
Customer customer = (Customer) unmarshaller.unmarshal(new StringReader(xmlData));
// Print customer information
System.out.println("Name: " + customer.getName());
System.out.println("Age: " + customer.getAge());
} catch (JAXBException e) {
e.printStackTrace();
}
}
}
এখানে, XML ডেটাকে StringReader
ব্যবহার করে Java অবজেক্টে রূপান্তর করা হয়েছে।
JAXB ওয়েব সার্ভিসে সাধারণত XML ডেটা নিয়ে কাজ করে, বিশেষ করে SOAP ওয়েব সার্ভিসের ক্ষেত্রে। SOAP রিকোয়েস্ট এবং রেসপন্সের জন্য XML ফরম্যাট ব্যবহৃত হয়, এবং JAXB এর মাধ্যমে Java অবজেক্টগুলিকে XML ডেটাতে রূপান্তর এবং XML ডেটাকে Java অবজেক্টে রূপান্তর করা যায়।
JAXB Java অ্যাপ্লিকেশন এবং ওয়েব সার্ভিসে XML ডেটা ম্যানিপুলেট করার জন্য একটি শক্তিশালী টুল, যা ডেভেলপারদের জন্য কার্যকরী, স্কেলেবল এবং দ্রুত সমাধান প্রদান করে।