JAXB এর মাধ্যমে XML থেকে Java Object Mapping

Web Development - অ্যাপাচি সিএক্সএফ (Apache CXF) - WSDL এবং JAXB (WSDL এবং JAXB এর ব্যবহার) |
5
5

JAXB (Java Architecture for XML Binding) একটি প্রযুক্তি যা XML ডেটা এবং Java অবজেক্টের মধ্যে রূপান্তর করার কাজ করে। এটি ডেটা বিনিময়ের জন্য XML ফাইলগুলিকে Java ক্লাসে পরিণত করে এবং Java অবজেক্টগুলোকে XML ফরম্যাটে রূপান্তর করতে সক্ষম। JAXB ব্যবহারে আপনি XML ডেটার সাথে Java এ কাজ করার সময় একে অটোমেটিকভাবে Java অবজেক্টে ম্যাপ করতে পারেন এবং vice versa।

JAXB এর মাধ্যমে XML থেকে Java Object Mapping করার জন্য আপনাকে নিম্নলিখিত ধাপগুলো অনুসরণ করতে হবে:


ধাপ 1: JAXB ডিপেনডেন্সি সংযোজন

প্রথমে আপনাকে আপনার pom.xml ফাইলে JAXB এর জন্য ডিপেনডেন্সি যোগ করতে হবে। JAXB Java SE 8 বা তার আগের সংস্করণের জন্য Java প্ল্যাটফর্মের অংশ ছিল, কিন্তু Java 9 থেকে JAXB আলাদা লাইব্রেরি হিসেবে এসেছে, তাই Maven প্রজেক্টে এটি অন্তর্ভুক্ত করতে হবে।

<dependencies>
    <!-- JAXB API dependency -->
    <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.3.1</version>
    </dependency>

    <!-- JAXB Runtime dependency -->
    <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-runtime</artifactId>
        <version>2.3.1</version>
    </dependency>
</dependencies>

এছাড়া, যদি আপনি Java 9 বা তার উপরের ভার্সন ব্যবহার করেন, তবে JAXB লাইব্রেরি আলাদাভাবে ইনস্টল করতে হবে।


ধাপ 2: JAXB আনোটেশন ব্যবহার করে Java ক্লাস তৈরি করা

XML থেকে Java অবজেক্টে রূপান্তরের জন্য Java ক্লাসে JAXB এর কিছু নির্দিষ্ট আনোটেশন ব্যবহার করতে হয়। সাধারণত @XmlRootElement, @XmlElement এবং @XmlAttribute এই ধরনের আনোটেশন ব্যবহার করা হয়।

2.1 Java ক্লাস তৈরি করা

ধরা যাক, আমাদের XML ফাইলটি নিম্নরূপ:

<person>
    <name>John Doe</name>
    <age>30</age>
</person>

এটি Java অবজেক্টে ম্যাপ করার জন্য নিম্নলিখিত Java ক্লাস তৈরি করা হবে:

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement  // Root element of the XML
public class Person {
    
    private String name;
    private int age;

    @XmlElement  // This will map to the <name> XML element
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @XmlElement  // This will map to the <age> XML element
    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

এখানে:

  • @XmlRootElement: এটি XML এর রুট এলিমেন্টের সাথে Java ক্লাসটি সম্পর্কিত করে।
  • @XmlElement: এটি ক্লাসের গেটার মেথডে ব্যবহৃত হয় এবং নির্দিষ্ট XML এলিমেন্টগুলির সঙ্গে মেপিং করে।

ধাপ 3: XML থেকে Java Object এ রূপান্তর করা

JAXB ব্যবহার করে XML থেকে Java অবজেক্টে রূপান্তরের জন্য JAXBContext এবং Unmarshaller ক্লাস ব্যবহার করতে হয়। এর মাধ্যমে আপনি XML ফাইলটি পড়তে এবং তা Java অবজেক্টে রূপান্তর করতে পারবেন।

3.1 XML থেকে Java Object রূপান্তর

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 {
        // XML String to be converted to Java Object
        String xmlString = "<person><name>John Doe</name><age>30</age></person>";
        
        // Create a JAXB context for the Person class
        JAXBContext context = JAXBContext.newInstance(Person.class);
        
        // Create an unmarshaller
        Unmarshaller unmarshaller = context.createUnmarshaller();
        
        // Convert the XML string to a Person object
        StringReader reader = new StringReader(xmlString);
        Person person = (Person) unmarshaller.unmarshal(reader);
        
        // Print the Java object
        System.out.println("Name: " + person.getName());
        System.out.println("Age: " + person.getAge());
    }
}

এখানে:

  • JAXBContext.newInstance(Person.class): JAXBContext তৈরি করে, যা Person ক্লাসের জন্য রূপান্তর নির্ধারণ করে।
  • Unmarshaller.unmarshal(): এটি XML স্ট্রিংকে Java অবজেক্টে রূপান্তর করে।

এই কোডটি রান করলে এটি নিচের আউটপুট দেবে:

Name: John Doe
Age: 30

ধাপ 4: Java Object থেকে XML রূপান্তর

এছাড়া, Java অবজেক্টকে XML ফরম্যাটে রূপান্তর করার জন্য Marshaller ব্যবহার করা হয়।

4.1 Java Object থেকে XML রূপান্তর

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) throws JAXBException {
        // Create a Person object
        Person person = new Person();
        person.setName("John Doe");
        person.setAge(30);
        
        // Create a JAXB context for the Person class
        JAXBContext context = JAXBContext.newInstance(Person.class);
        
        // Create a marshaller
        Marshaller marshaller = context.createMarshaller();
        
        // Convert Java object to XML string
        StringWriter writer = new StringWriter();
        marshaller.marshal(person, writer);
        
        // Print the XML
        System.out.println(writer.toString());
    }
}

এখানে:

  • Marshaller.marshal(): এটি Java অবজেক্টকে XML ফরম্যাটে রূপান্তর করে।

রান করলে আউটপুট হবে:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<person>
    <name>John Doe</name>
    <age>30</age>
</person>

সারাংশ

JAXB এর মাধ্যমে XML এবং Java অবজেক্টের মধ্যে রূপান্তর খুবই সহজ এবং দ্রুত। আপনি XML ডেটাকে Java অবজেক্টে এবং Java অবজেক্টকে XML ফরম্যাটে রূপান্তর করতে JAXB এর Unmarshaller এবং Marshaller ক্লাস ব্যবহার করতে পারেন। এটি বিভিন্ন ওয়েব সার্ভিস, ডেটা বিনিময় এবং ইনটিগ্রেশন প্রকল্পে ব্যাপকভাবে ব্যবহৃত হয়।

Content added By
Promotion