JAXB (Java Architecture for XML Binding) হলো একটি জনপ্রিয় টেকনোলজি যা XML ডেটাকে Java অবজেক্টে রূপান্তর (unmarshal) এবং Java অবজেক্টকে XML ডেটায় রূপান্তর (marshal) করতে ব্যবহৃত হয়। স্প্রিং OXM (Spring Object/XML Mapping) ফ্রেমওয়ার্ক JAXB সহ বিভিন্ন OXM টেকনোলজি সমর্থন করে। স্প্রিং OXM এর সাথে JAXB ব্যবহার করলে Java অবজেক্ট এবং XML ডেটার মধ্যে রূপান্তর সহজ এবং কার্যকরী হয়।
স্প্রিং OXM-এ JAXB ব্যবহার করা হয় XML ডেটাকে Java অবজেক্টে এবং Java অবজেক্টকে XML ডেটায় রূপান্তর করার জন্য, যেখানে স্প্রিং কনফিগারেশন ব্যবহারের মাধ্যমে আপনি JAXB কনফিগার করতে পারেন।
JAXB এর সাথে স্প্রিং OXM ব্যবহারের প্রক্রিয়া
স্প্রিং OXM এর সাথে JAXB ব্যবহার করার জন্য কিছু পদক্ষেপ অনুসরণ করতে হবে। এই পদক্ষেপগুলো হল:
স্প্রিং কনফিগারেশন তৈরি করা
প্রথমে স্প্রিং কনফিগারেশন ফাইল বা কনফিগারেশন ক্লাস তৈরি করতে হবে, যেখানে JAXB এর জন্য
Jaxb2Marshallerকনফিগার করা হবে। এটি JAXB মার্শালিং এবং আনার্শালিং (marshalling and unmarshalling) পরিচালনা করবে।উদাহরণস্বরূপ, XML ডেটা থেকে Java অবজেক্ট রূপান্তর করার জন্য:
@Configuration public class SpringOXMConfig { @Bean public Jaxb2Marshaller jaxb2Marshaller() { Jaxb2Marshaller marshaller = new Jaxb2Marshaller(); marshaller.setContextPath("com.example.model"); // JAXB ক্লাসের প্যাকেজ return marshaller; } @Bean public SomeService someService() { SomeService service = new SomeService(); service.setMarshaller(jaxb2Marshaller()); return service; } }Java ক্লাসে JAXB অ্যানোটেশন ব্যবহার করা
Java ক্লাসগুলোর মধ্যে JAXB অ্যানোটেশন যেমন
@XmlRootElement,@XmlElementইত্যাদি ব্যবহার করতে হবে, যাতে XML ডেটার কাঠামোর সাথে সামঞ্জস্য রাখা যায়।উদাহরণস্বরূপ, একটি
Personক্লাস:@XmlRootElement public class Person { private String name; private int age; @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; } }Marshaller এবং Unmarshaller ব্যবহার করা
এখন
MarshallerএবংUnmarshallerব্যবহার করে XML ডেটা এবং Java অবজেক্টের মধ্যে রূপান্তর করতে হবে।XML থেকে Java অবজেক্টে রূপান্তর (Unmarshaller):
@Autowired private Jaxb2Marshaller marshaller; public Person unmarshalXML(String xml) throws Exception { Person person = (Person) marshaller.unmarshal(new StreamSource(new StringReader(xml))); return person; }Java অবজেক্ট থেকে XML ডেটায় রূপান্তর (Marshaller):
public String marshalToXML(Person person) throws Exception { StringWriter writer = new StringWriter(); marshaller.marshal(person, new StreamResult(writer)); return writer.toString(); }
উপসংহার
স্প্রিং OXM এর সাথে JAXB ব্যবহার করলে XML ডেটার সাথে কাজ করা অনেক সহজ হয়ে যায়, কারণ এটি স্বয়ংক্রিয়ভাবে Java অবজেক্ট এবং XML ডেটার মধ্যে রূপান্তর করতে সহায়তা করে। স্প্রিং কনফিগারেশন ফাইলের মাধ্যমে JAXB ব্যবহার করা এবং Marshaller ও Unmarshaller এর মাধ্যমে XML ডেটাকে Java অবজেক্টে এবং Java অবজেক্টকে XML ডেটায় রূপান্তর করা যায়।
JAXB (Java Architecture for XML Binding) হল একটি প্রযুক্তি যা Java অবজেক্ট এবং XML ডকুমেন্টের মধ্যে মেপিং (mapping) এবং কনভার্সন (conversion) প্রক্রিয়া সরলীকৃত করতে ব্যবহৃত হয়। এটি XML ডাটা এবং Java ক্লাসের মধ্যে ডাটা স্থানান্তর (data transfer) সহজ করে, যার ফলে ডেভেলপাররা XML ফাইলের সাথে সহজে কাজ করতে পারেন, যেমন ডাটা পার্সিং, জেনারেশন এবং ম্যানিপুলেশন।
JAXB ব্যবহার করে, আপনি XML ডকুমেন্টের ডাটা Java অবজেক্টে আনমার্শাল (unmarshal) এবং Java অবজেক্টের ডাটা XML ডকুমেন্টে মার্শাল (marshal) করতে পারেন।
JAXB ব্যবহারের সুবিধা
XML ডেটা এবং Java অবজেক্টের মধ্যে স্বয়ংক্রিয় মেপিং
JAXB স্বয়ংক্রিয়ভাবে XML ডেটা এবং Java অবজেক্টের মধ্যে কনভার্সন (conversion) পরিচালনা করে। ডেভেলপারদের জন্য এটি সময় সাশ্রয়ী এবং কমপ্লেক্স কাজকে সহজ করে তোলে।
এক্সটেনশন এবং কাস্টমাইজেশন
JAXB অনেক কাস্টমাইজেশন অপশন অফার করে। আপনি JAXB-এ কাস্টম মার্শালিং এবং আনমার্শালিং যুক্ত করতে পারেন যাতে এটি আপনার প্রয়োজন অনুযায়ী কাজ করে। এর মাধ্যমে আপনি XML ডকুমেন্ট এবং Java অবজেক্টের মধ্যকার সম্পর্কটিকে সহজেই নিয়ন্ত্রণ করতে পারেন।
সহজ XML ডাটা ম্যানিপুলেশন
JAXB এর মাধ্যমে XML ডাটাকে Java অবজেক্টে রূপান্তরিত করা হলে, Java অবজেক্টের উপর সাধারণ মেথড কলিং করে ডাটা ম্যানিপুলেশন করা সহজ হয়ে যায়। এটি বিশেষত বড় বড় XML ডকুমেন্টের সাথে কাজ করার সময় কার্যকরী।
JAXB ব্যবহার করার জন্য উদাহরণ
JAXB এর মাধ্যমে XML ডেটা থেকে Java অবজেক্টে কনভার্সন
ধরা যাক, আপনার একটি XML ডকুমেন্ট রয়েছে এবং আপনি সেটিকে Java অবজেক্টে কনভার্ট করতে চান। এটি করার জন্য JAXB ব্যবহার করা যেতে পারে।
<person>
<name>John Doe</name>
<age>30</age>
</person>
এখন, এই XML ডেটাকে Java ক্লাসে কনভার্ট করা হবে:
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Person {
private String name;
private int age;
@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;
}
}
এখন, JAXB ব্যবহার করে XML ডকুমেন্ট থেকে Java অবজেক্টে কনভার্সন করা যাবে:
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) throws JAXBException {
String xml = "<person><name>John Doe</name><age>30</age></person>";
JAXBContext context = JAXBContext.newInstance(Person.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
Person person = (Person) unmarshaller.unmarshal(new StringReader(xml));
System.out.println(person.getName()); // Output: John Doe
System.out.println(person.getAge()); // Output: 30
}
}
এই উদাহরণে, XML ডেটাকে JAXB এর মাধ্যমে Java অবজেক্টে কনভার্ট করা হয়েছে এবং সেটির ডাটা অ্যাক্সেস করা হয়েছে।
JAXB একে অপরের মধ্যে Java অবজেক্ট এবং XML ডেটার আদান-প্রদান সহজ করে তোলে এবং ডেভেলপারদের জন্য XML ডেটা ম্যানিপুলেশন অনেক সহজ ও সুবিধাজনক করে তোলে।
স্প্রিং ওএক্সএম (Spring OXM) XML ডাটা এবং Java অবজেক্টের মধ্যে মাধ্যস্থতা (mapping) তৈরিতে ব্যবহৃত একটি শক্তিশালী ফ্রেমওয়ার্ক। JAXB (Java Architecture for XML Binding) হল এমন একটি প্রযুক্তি যা Java অবজেক্ট এবং XML ডাটার মধ্যে সহজে রূপান্তর করতে সাহায্য করে। JAXB এর মাধ্যমে XML ডাটার সাথে Java অবজেক্টের মাপিং করা হয়, যেখানে অ্যানোটেশন ব্যবহার করে এই সম্পর্ক নির্ধারণ করা হয়।
JAXB অ্যানোটেশন ব্যবহার
JAXB অ্যানোটেশনগুলি Java ক্লাসের মধ্যে XML ডাটার সাথে সম্পর্ক স্থাপন করতে ব্যবহৃত হয়। এই অ্যানোটেশনগুলি ক্লাস, ফিল্ড, অথবা মেথডের উপর প্রয়োগ করা যেতে পারে, যা XML ফাইলের স্ট্রাকচারের সাথে Java অবজেক্টের স্ট্রাকচারকে সম্পর্কিত করে। স্প্রিং ওএক্সএম JAXB অ্যানোটেশন ব্যবহার করে XML ডাটা থেকে Java অবজেক্টে রূপান্তর এবং Java অবজেক্ট থেকে XML ফরম্যাটে রূপান্তর করতে সাহায্য করে।
JAXB অ্যানোটেশনগুলোর মূল ধরনের
- @XmlRootElement: XML ফাইলের মূল উপাদান হিসেবে কাজ করে।
- @XmlElement: Java ক্লাসের ফিল্ডগুলোকে XML উপাদান হিসেবে চিহ্নিত করে।
- @XmlAttribute: XML এলিমেন্টের অ্যাট্রিবিউট হিসেবে একটি ফিল্ডকে চিহ্নিত করে।
- @XmlType: ক্লাসের ধরন নির্ধারণ করে, যাতে JAXB কীভাবে ক্লাসের অবজেক্টটিকে XML ফরম্যাটে রূপান্তর করবে তা জানে।
- @XmlAccessorType: JAXB কিভাবে ফিল্ড ও মেথডের উপর কাজ করবে তা নির্ধারণ করে।
JAXB অ্যানোটেশন ব্যবহার করে XML এর সাথে Object Mapping উদাহরণ
একটি সাধারণ উদাহরণ দেখা যাক, যেখানে XML ডাটার সাথে একটি Java অবজেক্টের মাপিং করা হয়েছে:
Java ক্লাস
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Book {
private String title;
private String author;
@XmlElement
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
@XmlElement
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
}
এই উদাহরণে, @XmlRootElement অ্যানোটেশনটি Book ক্লাসকে XML উপাদান হিসেবে চিহ্নিত করে। @XmlElement অ্যানোটেশনটি title এবং author ফিল্ডগুলোকে XML উপাদান হিসেবে চিহ্নিত করে।
XML ডাটা (book.xml)
<book>
<title>Spring in Action</title>
<author>Craig Walls</author>
</book>
এই XML ডাটাটি Book অবজেক্টের উপস্থাপন।
স্প্রিং ওএক্সএম কনফিগারেশন
স্প্রিং ওএক্সএম কনফিগারেশনে JAXB এর সাথে ইন্টিগ্রেশন করার জন্য Jaxb2Marshaller ব্যবহার করা হয়। নিচে একটি সাধারণ কনফিগারেশন দেখানো হলো:
<bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="contextPath" value="com.example.model"/>
</bean>
<bean id="unmarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="contextPath" value="com.example.model"/>
</bean>
এখানে contextPath প্রপার্টি com.example.model প্যাকেজের মধ্যে থাকা JAXB অ্যানোটেশনযুক্ত ক্লাসকে নির্দেশ করে।
JAXB দিয়ে XML থেকে Java অবজেক্টে রূপান্তর
XML ডাটাকে Java অবজেক্টে রূপান্তর করতে নিচের কোড ব্যবহার করা যেতে পারে:
import org.springframework.oxm.Marshaller;
import org.springframework.oxm.Unmarshaller;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
Unmarshaller unmarshaller = (Unmarshaller) context.getBean("unmarshaller");
File xmlFile = new File("book.xml");
Book book = (Book) unmarshaller.unmarshal(xmlFile);
এখানে unmarshal মেথড XML ডাটাকে Book অবজেক্টে রূপান্তরিত করে।
JAXB দিয়ে Java অবজেক্ট থেকে XML রূপান্তর
Java অবজেক্টকে XML ফরম্যাটে রূপান্তর করতে নিচের কোড ব্যবহার করা যেতে পারে:
Marshaller marshaller = (Marshaller) context.getBean("marshaller");
File outputFile = new File("output.xml");
marshaller.marshal(book, outputFile);
এখানে marshal মেথড Book অবজেক্টকে XML ফরম্যাটে রূপান্তরিত করে এবং output.xml ফাইলে সংরক্ষণ করে।
স্প্রিং ওএক্সএম এবং JAXB অ্যানোটেশনগুলি XML ডাটা ও Java অবজেক্টের মধ্যে রূপান্তর প্রক্রিয়াকে সহজ, কার্যকর এবং অটোমেটেড করে তোলে। এটি Java ডেভেলপারদের জন্য XML ডাটার সাথে কাজ করার একটি শক্তিশালী টুল হিসেবে কাজ করে।
স্প্রিং 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 ডকুমেন্টের মধ্যে সঠিক সম্পর্ক তৈরি করতে সাহায্য করে।
স্প্রিং ওএক্সএম (Spring OXM) ব্যবহার করে JAXB (Java Architecture for XML Binding) এর মাধ্যমে Object/XML Mapping করার প্রক্রিয়া বেশ সহজ এবং কার্যকর। JAXB হল একটি প্রযুক্তি যা Java অবজেক্টগুলোকে XML ডেটাতে এবং XML ডেটাকে Java অবজেক্টে রূপান্তর করতে ব্যবহৃত হয়।
এখানে আমরা স্প্রিং ওএক্সএমের সাহায্যে JAXB ব্যবহার করে একটি সাধারণ উদাহরণ দেখব, যেখানে একটি Java অবজেক্ট XML এ রূপান্তরিত হবে এবং আবার XML থেকে Java অবজেক্টে রূপান্তর হবে।
পদক্ষেপ ১: Maven পম.xml ফাইল কনফিগারেশন
প্রথমে, আপনার Maven প্রকল্পে Spring OXM এবং JAXB এর জন্য ডিপেনডেন্সি যুক্ত করুন:
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>5.3.20</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
</dependencies>
পদক্ষেপ ২: Java ক্লাস তৈরি করা
এখন, একটি সাধারণ Java ক্লাস তৈরি করি যা JAXB এর মাধ্যমে XML ম্যাপিং করবে। ধরুন আমাদের একটি Person ক্লাস আছে, যার দুটি ফিল্ড name এবং age।
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Person {
private String name;
private int age;
@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 এর জন্য প্রয়োজনীয়। @XmlRootElement ক্লাসটিকে XML রুট এলিমেন্ট হিসেবে চিহ্নিত করে এবং @XmlElement ফিল্ডগুলিকে XML ট্যাগ হিসেবে নির্দেশ করে।
পদক্ষেপ ৩: Spring OXM JAXB কনফিগারেশন
এখন, Spring OXM কনফিগারেশন তৈরি করা যাক। এর জন্য আমরা একটি Jaxb2Marshaller Bean কনফিগার করব, যা JAXB প্রযুক্তির সাহায্যে Java অবজেক্ট এবং XML এর মধ্যে রূপান্তর করবে।
import org.springframework.oxm.jaxb.Jaxb2Marshaller;
import org.springframework.oxm.Marshaller;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class SpringConfig {
@Bean
public Marshaller marshaller() {
Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
marshaller.setContextPath("com.example"); // আপনার package নাম দিন
return marshaller;
}
}
এই কনফিগারেশনে Jaxb2Marshaller এর setContextPath() মেথডে Person ক্লাসের প্যাকেজ নাম উল্লেখ করা হয়েছে। এটি JAXB কে জানায় যে কোন ক্লাসগুলিকে XML এ রূপান্তর করতে হবে।
পদক্ষেপ ৪: XML থেকে Java অবজেক্টে রূপান্তর
এখন, আমরা XML ডেটাকে Java অবজেক্টে রূপান্তর করার জন্য Unmarshaller ব্যবহার করব। নিচে একটি উদাহরণ দেখানো হলো:
import org.springframework.oxm.Marshaller;
import org.springframework.oxm.Unmarshaller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class XmlToObject {
public static void main(String[] args) throws Exception {
ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
Unmarshaller unmarshaller = context.getBean(Unmarshaller.class);
// XML String
String xml = "<person><name>John Doe</name><age>30</age></person>";
// XML থেকে Java অবজেক্টে রূপান্তর
Person person = (Person) unmarshaller.unmarshal(new StringReader(xml));
System.out.println(person.getName()); // Output: John Doe
System.out.println(person.getAge()); // Output: 30
}
}
এখানে, Unmarshaller এর মাধ্যমে XML স্ট্রিংকে Person অবজেক্টে রূপান্তর করা হয়েছে।
পদক্ষেপ ৫: Java অবজেক্ট থেকে XML এ রূপান্তর
এখন, আমরা Java অবজেক্ট থেকে XML এ রূপান্তরের জন্য Marshaller ব্যবহার করব। নিচে একটি উদাহরণ দেখানো হলো:
import org.springframework.oxm.Marshaller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import java.io.StringWriter;
public class ObjectToXml {
public static void main(String[] args) throws Exception {
ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
Marshaller marshaller = context.getBean(Marshaller.class);
// Java অবজেক্ট
Person person = new Person();
person.setName("Alice");
person.setAge(25);
// Java অবজেক্ট থেকে XML এ রূপান্তর
StringWriter writer = new StringWriter();
marshaller.marshal(person, new StreamResult(writer));
String xmlOutput = writer.toString();
System.out.println(xmlOutput); // Output: <person><name>Alice</name><age>25</age></person>
}
}
এখানে, Marshaller ব্যবহার করে Person অবজেক্টটিকে XML ফরম্যাটে রূপান্তর করা হয়েছে এবং এর আউটপুট হিসেবে XML স্ট্রিং প্রিন্ট করা হয়েছে।
স্প্রিং ওএক্সএমের মাধ্যমে JAXB ব্যবহার করে Object/XML Mapping করা একটি সহজ এবং কার্যকরী প্রক্রিয়া। এই উদাহরণে আমরা দেখেছি কীভাবে XML থেকে Java অবজেক্টে এবং Java অবজেক্ট থেকে XML এ রূপান্তর করা যায়।
Read more