JAXBElement এর মাধ্যমে XML Element ম্যাপিং

JAXBElement ব্যবহার - স্প্রিং ওএক্সএম (Spring OXM) - Java Technologies

278

Spring OXM-এ JAXBElement ব্যবহার করা হয় XML ডাটা এবং জাভা অবজেক্টের মধ্যে ম্যাপিং (Mapping) করার জন্য। এটি XML ডকুমেন্টের একটি নির্দিষ্ট element (যেমন: <person>, <name>, <age>) এবং জাভা অবজেক্টের মধ্যে সম্পর্ক স্থাপন করতে সাহায্য করে। JAXBElement মূলত একটি কন্টেইনার ক্লাস, যা XML এলিমেন্টের নাম এবং তার মান ধারণ করে।

Spring OXM এর মাধ্যমে JAXBElement ব্যবহার করে XML এলিমেন্ট ম্যাপিং করা বেশ কার্যকরী এবং সহজ। JAXB (Java Architecture for XML Binding) ব্যবহার করে XML ডাটা এবং জাভা অবজেক্টের মধ্যে রূপান্তর করতে হলে JAXBElement এর সাহায্য নিতে হয়। এটি সাধারণত Marshaller এবং Unmarshaller এর মাধ্যমে XML ডাটা তৈরি এবং পাড় করানোর সময় ব্যবহৃত হয়।


JAXBElement এর সুবিধা

  • ডায়নামিক XML এলিমেন্ট: JAXBElement ডায়নামিক XML এলিমেন্ট তৈরি করতে সাহায্য করে, যেখানে আপনি এলিমেন্টের নাম এবং মান পরিবর্তন করতে পারেন।
  • নাম এবং টাইপ নির্ধারণ: JAXBElement XML এলিমেন্টের নাম এবং টাইপ সহ একটি সাধারণ অবজেক্ট প্রদান করে, যা XML ডকুমেন্টের সাথে সহজে রূপান্তরিত হতে পারে।
  • ইন্টারফেসের মাধ্যমে ম্যাপিং: এটি একটি শক্তিশালী এবং নমনীয় উপায় যা JAXB মডেল বা অন্য কোনও ডাটা মডেলের সাথে কাজ করতে সক্ষম।

JAXBElement এর মাধ্যমে XML Element ম্যাপিং উদাহরণ

ধরা যাক, আমাদের একটি Person ক্লাস রয়েছে এবং আমরা JAXBElement এর মাধ্যমে name এবং age ফিল্ডগুলির XML এলিমেন্ট ম্যাপিং করতে চাই।

Person.java:

import javax.xml.bind.annotation.XmlElement;

public class Person {
    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;
    }
}

JAXBElement ব্যবহার করে Marshalling উদাহরণ

এখানে, আমরা JAXBElement ব্যবহার করে Person অবজেক্টের XML এলিমেন্ট ম্যাপিং করব।

import javax.xml.bind.JAXBElement;
import javax.xml.namespace.QName;
import org.springframework.oxm.jaxb.Jaxb2Marshaller;
import javax.xml.transform.stream.StreamResult;
import java.io.StringWriter;

public class JAXBElementMarshallingExample {
    public static void main(String[] args) throws Exception {
        // Person object তৈরি করা
        Person person = new Person();
        person.setName("John Doe");
        person.setAge(30);

        // JAXB2Marshaller ব্যবহার করা
        Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
        marshaller.setClassesToBeBound(Person.class);

        // JAXBElement তৈরি করা
        QName qName = new QName("http://example.com", "person");
        JAXBElement<Person> jaxbElement = new JAXBElement<>(qName, Person.class, person);

        // XML আউটপুট স্ট্রিম তৈরি করা
        StringWriter writer = new StringWriter();
        marshaller.marshal(jaxbElement, new StreamResult(writer));

        // XML আউটপুট প্রিন্ট করা
        System.out.println(writer.toString());
    }
}

উৎপন্ন XML আউটপুট:

<?xml version="1.0" encoding="UTF-8"?>
<person xmlns="http://example.com">
    <name>John Doe</name>
    <age>30</age>
</person>

এখানে, JAXBElement ব্যবহার করে Person অবজেক্টের XML এলিমেন্ট person নামে তৈরি করা হয়েছে। QName এর মাধ্যমে XML এলিমেন্টের নাম এবং নেমস্পেস সেট করা হয়েছে।


JAXBElement ব্যবহার করে Unmarshalling উদাহরণ

এখন আমরা JAXBElement ব্যবহার করে XML ডকুমেন্ট থেকে Person অবজেক্টে রূপান্তর করব।

import javax.xml.bind.JAXBElement;
import javax.xml.namespace.QName;
import org.springframework.oxm.jaxb.Jaxb2Marshaller;
import javax.xml.transform.stream.StreamSource;
import java.io.StringReader;

public class JAXBElementUnmarshallingExample {
    public static void main(String[] args) throws Exception {
        // XML স্ট্রিং
        String xml = "<person xmlns=\"http://example.com\"><name>John Doe</name><age>30</age></person>";

        // JAXB2Marshaller ব্যবহার করা
        Jaxb2Marshaller unmarshaller = new Jaxb2Marshaller();
        unmarshaller.setClassesToBeBound(Person.class);

        // JAXBElement থেকে Person অবজেক্টে রূপান্তর
        QName qName = new QName("http://example.com", "person");
        JAXBElement<Person> jaxbElement = (JAXBElement<Person>) unmarshaller.unmarshal(new StreamSource(new StringReader(xml)));

        // Person অবজেক্টের ডাটা প্রিন্ট করা
        Person person = jaxbElement.getValue();
        System.out.println("Name: " + person.getName());
        System.out.println("Age: " + person.getAge());
    }
}

আউটপুট:

Name: John Doe
Age: 30

এখানে, JAXBElement ব্যবহার করে XML ডকুমেন্ট থেকে Person অবজেক্টে রূপান্তর করা হয়েছে। XML এলিমেন্টের নাম person এবং নেমস্পেস http://example.com নির্ধারণ করা হয়েছে।


সারাংশ

JAXBElement ব্যবহার করে Spring OXM-এ XML এলিমেন্ট ম্যাপিং করা খুবই সহজ এবং কার্যকর। এটি XML ডকুমেন্টের একটি নির্দিষ্ট এলিমেন্টকে জাভা অবজেক্টের সাথে যুক্ত করার জন্য ব্যবহৃত হয়। JAXBElement-এর মাধ্যমে আপনি XML এলিমেন্টের নাম এবং টাইপ নির্ধারণ করতে পারেন এবং এটি XML ডাটা এবং জাভা অবজেক্টের মধ্যে সম্পর্ক তৈরি করতে সহায়তা করে। Spring OXM-এ JAXBElement ব্যবহারের মাধ্যমে XML ডাটা প্রক্রিয়া আরো সহজ ও পরিষ্কার হয়।

Content added By
Promotion

Are you sure to start over?

Loading...