XStream হল একটি শক্তিশালী লাইব্রেরি যা Java objects কে XML ফরম্যাটে রূপান্তর করতে এবং XML থেকে Java objects তে রূপান্তর করতে ব্যবহৃত হয়। এটি Collections (যেমন: List, Set, Map) এবং Arrays (যেমন: int[], String[]) এর মতো জটিল ডেটা স্ট্রাকচারগুলোকে XML এ রূপান্তর করার জন্য খুবই কার্যকরী।
XStream লাইব্রেরি Collections এবং Arrays এর জন্য স্বয়ংক্রিয়ভাবে XML রূপান্তর করে এবং XML থেকে সেই ডেটা পুনরায় Java Collection বা Array তে রূপান্তর করে। এর মাধ্যমে আপনি জটিল ডেটা স্ট্রাকচারগুলিকে XML ফরম্যাটে সেভ করতে এবং সহজে পুনরুদ্ধার করতে পারেন।
১. Collections এর জন্য XStream
যখন আপনার Java ক্লাসে List, Set, বা Map ব্যবহার করা হয়, তখন XStream স্বয়ংক্রিয়ভাবে এসব ডেটা স্ট্রাকচারকে XML ফরম্যাটে রূপান্তর করতে পারে। নিচে একটি উদাহরণ দেওয়া হল যেখানে List এবং Map টাইপের ডেটা XStream ব্যবহার করে XML এ রূপান্তরিত হচ্ছে।
উদাহরণ: XStream ব্যবহার করে List এবং Map কে XML এ রূপান্তর
import com.thoughtworks.xstream.XStream;
import java.util.*;
public class CollectionExample {
public static void main(String[] args) {
// List তৈরি করা
List<String> namesList = new ArrayList<>();
namesList.add("John");
namesList.add("Jane");
namesList.add("Doe");
// Map তৈরি করা
Map<String, Integer> ageMap = new HashMap<>();
ageMap.put("John", 30);
ageMap.put("Jane", 25);
ageMap.put("Doe", 40);
// XStream অবজেক্ট তৈরি করা
XStream xstream = new XStream();
// List কে XML এ রূপান্তর
String listXml = xstream.toXML(namesList);
System.out.println("Serialized List as XML:");
System.out.println(listXml);
// Map কে XML এ রূপান্তর
String mapXml = xstream.toXML(ageMap);
System.out.println("\nSerialized Map as XML:");
System.out.println(mapXml);
// XML থেকে List এবং Map পুনরুদ্ধার করা
List<String> restoredList = (List<String>) xstream.fromXML(listXml);
Map<String, Integer> restoredMap = (Map<String, Integer>) xstream.fromXML(mapXml);
System.out.println("\nDeserialized List:");
System.out.println(restoredList);
System.out.println("\nDeserialized Map:");
System.out.println(restoredMap);
}
}
কোড ব্যাখ্যা:
- List এবং Map তৈরি: এখানে একটি
Listএবং একটিMapতৈরি করা হয়েছে এবং ডেটা ইনসার্ট করা হয়েছে। - XStream অবজেক্ট:
XStream xstream = new XStream();লাইনে XStream অবজেক্ট তৈরি করা হয়েছে যা XML সেরিয়ালাইজেশন এবং ডি-সেরিয়ালাইজেশন পরিচালনা করবে। - XML এ রূপান্তর:
xstream.toXML(namesList)এবংxstream.toXML(ageMap)মেথড ব্যবহার করে List এবং Map-কে XML এ রূপান্তর করা হয়েছে। - XML থেকে পুনরুদ্ধার:
xstream.fromXML(xml)মেথড ব্যবহার করে XML থেকে List এবং Map পুনরুদ্ধার করা হয়েছে।
আউটপুট:
Serialized List as XML:
<list>
<string>John</string>
<string>Jane</string>
<string>Doe</string>
</list>
Serialized Map as XML:
<map>
<entry>
<string>John</string>
<integer>30</integer>
</entry>
<entry>
<string>Jane</string>
<integer>25</integer>
</entry>
<entry>
<string>Doe</string>
<integer>40</integer>
</entry>
</map>
Deserialized List:
[John, Jane, Doe]
Deserialized Map:
{John=30, Jane=25, Doe=40}
এখানে, List এবং Map দুটি ডেটা স্ট্রাকচার XML এ রূপান্তরিত হয়ে পরে পুনরায় Java object-এ রূপান্তরিত হয়েছে।
২. Arrays এর জন্য XStream
XStream Arrays (যেমন: int[], String[], ইত্যাদি) কে XML এ রূপান্তর করতে পারে। XStream স্বয়ংক্রিয়ভাবে একটি array এর প্রতিটি উপাদানকে XML এর একটি পৃথক এলিমেন্টে রূপান্তর করে।
উদাহরণ: XStream ব্যবহার করে Arrays কে XML এ রূপান্তর
import com.thoughtworks.xstream.XStream;
public class ArrayExample {
public static void main(String[] args) {
// Array তৈরি করা
String[] namesArray = {"John", "Jane", "Doe"};
// XStream অবজেক্ট তৈরি করা
XStream xstream = new XStream();
// Array কে XML এ রূপান্তর
String arrayXml = xstream.toXML(namesArray);
System.out.println("Serialized Array as XML:");
System.out.println(arrayXml);
// XML থেকে Array পুনরুদ্ধার করা
String[] restoredArray = (String[]) xstream.fromXML(arrayXml);
System.out.println("\nDeserialized Array:");
for (String name : restoredArray) {
System.out.println(name);
}
}
}
কোড ব্যাখ্যা:
- Array তৈরি: এখানে একটি
String[]array তৈরি করা হয়েছে এবং কিছু নাম সেট করা হয়েছে। - XStream অবজেক্ট: XStream অবজেক্ট ব্যবহার করে array কে XML ফরম্যাটে রূপান্তর করা হয়েছে।
- XML থেকে পুনরুদ্ধার: XML থেকে array পুনরুদ্ধার করার জন্য
xstream.fromXML(arrayXml)ব্যবহার করা হয়েছে।
আউটপুট:
Serialized Array as XML:
<array>
<string>John</string>
<string>Jane</string>
<string>Doe</string>
</array>
Deserialized Array:
John
Jane
Doe
এখানে, String[] array XML ফরম্যাটে রূপান্তরিত হয়ে পুনরায় Java array তে রূপান্তরিত হয়েছে।
সারাংশ
XStream লাইব্রেরি Collections এবং Arrays এর জন্য অত্যন্ত কার্যকরী। আপনি Java objects যেমন List, Set, Map, এবং Arrays কে সহজে XML ফরম্যাটে রূপান্তর করতে পারেন এবং XML থেকে Java objects তে রূপান্তর করতে পারেন। XStream স্বয়ংক্রিয়ভাবে এসব ডেটা স্ট্রাকচারকে XML ফরম্যাটে রূপান্তর এবং ডি-সেরিয়ালাইজেশন করার কাজটি সহজ এবং দ্রুত করে তোলে।
XStream হল একটি লাইব্রেরি যা Java objects এবং XML এর মধ্যে রূপান্তর করার জন্য ব্যবহৃত হয়। এটি শুধুমাত্র সাধারণ Java objects নয়, বরং Collections (List, Set) এবং Arrays-এর জন্যও XML সিরিয়ালাইজেশন এবং ডেসিরিয়ালাইজেশন সমর্থন করে। XStream-এর মাধ্যমে আপনি Collections এবং Arrays কে সহজে XML ফরম্যাটে রূপান্তরিত করতে পারেন এবং XML থেকে Java Collections বা Arrays-এ রূপান্তর করতে পারেন।
এখানে, XStream ব্যবহার করে Collections (যেমন List, Set) এবং Arrays রূপান্তরের প্রক্রিয়া নিয়ে বিস্তারিত আলোচনা করা হয়েছে।
1. XStream দিয়ে List, Set এবং Arrays সিরিয়ালাইজেশন (Serialization)
1.1 List সিরিয়ালাইজেশন (Serialization)
ধরা যাক, আমাদের একটি List আছে এবং আমরা সেটি XML ফরম্যাটে রূপান্তর করতে চাই।
import com.thoughtworks.xstream.XStream;
import java.util.ArrayList;
import java.util.List;
public class XStreamExample {
public static void main(String[] args) {
XStream xstream = new XStream();
// List তৈরি করা
List<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Cherry");
// List থেকে XML তৈরি (Serialization)
String xml = xstream.toXML(fruits);
System.out.println(xml);
}
}
Output:
<list>
<string>Apple</string>
<string>Banana</string>
<string>Cherry</string>
</list>
এখানে, List এর উপাদানগুলি <string> ট্যাগের মধ্যে XML ফরম্যাটে রূপান্তরিত হয়েছে।
1.2 Set সিরিয়ালাইজেশন (Serialization)
এখন, আমরা একটি Set সিরিয়ালাইজ করি। Set হল একটি এমন Collection যা ডুপ্লিকেট আইটেম ধারণ করে না।
import com.thoughtworks.xstream.XStream;
import java.util.HashSet;
import java.util.Set;
public class XStreamExample {
public static void main(String[] args) {
XStream xstream = new XStream();
// Set তৈরি করা
Set<String> fruits = new HashSet<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Cherry");
// Set থেকে XML তৈরি (Serialization)
String xml = xstream.toXML(fruits);
System.out.println(xml);
}
}
Output:
<set>
<string>Apple</string>
<string>Banana</string>
<string>Cherry</string>
</set>
এখানে, Set এর উপাদানগুলি <string> ট্যাগের মধ্যে XML ফরম্যাটে রূপান্তরিত হয়েছে।
1.3 Arrays সিরিয়ালাইজেশন (Serialization)
একইভাবে, আপনি Arrays কে XML ফরম্যাটে রূপান্তরিত করতে পারেন। নিচে একটি String Array সিরিয়ালাইজ করা হলো:
import com.thoughtworks.xstream.XStream;
public class XStreamExample {
public static void main(String[] args) {
XStream xstream = new XStream();
// Array তৈরি করা
String[] fruits = {"Apple", "Banana", "Cherry"};
// Array থেকে XML তৈরি (Serialization)
String xml = xstream.toXML(fruits);
System.out.println(xml);
}
}
Output:
<array>
<string>Apple</string>
<string>Banana</string>
<string>Cherry</string>
</array>
এখানে, Array এর উপাদানগুলি <string> ট্যাগের মধ্যে XML ফরম্যাটে রূপান্তরিত হয়েছে।
2. XStream দিয়ে List, Set এবং Arrays Unmarshalling (XML থেকে Object রূপান্তর)
এখন, আমরা দেখব কিভাবে XStream ব্যবহার করে XML ডেটা থেকে List, Set, এবং Arrays রূপান্তর করা হয় (Unmarshalling)।
2.1 List Unmarshalling (XML থেকে List Object)
import com.thoughtworks.xstream.XStream;
import java.util.List;
public class XStreamExample {
public static void main(String[] args) {
XStream xstream = new XStream();
// XML ডেটা
String xml = "<list><string>Apple</string><string>Banana</string><string>Cherry</string></list>";
// XML থেকে List তৈরি (Unmarshalling)
List<String> fruits = (List<String>) xstream.fromXML(xml);
System.out.println(fruits);
}
}
Output:
[Apple, Banana, Cherry]
এখানে, XML ডেটা থেকে List অবজেক্ট তৈরি করা হয়েছে এবং তালিকার উপাদানগুলি প্রদর্শিত হচ্ছে।
2.2 Set Unmarshalling (XML থেকে Set Object)
import com.thoughtworks.xstream.XStream;
import java.util.Set;
public class XStreamExample {
public static void main(String[] args) {
XStream xstream = new XStream();
// XML ডেটা
String xml = "<set><string>Apple</string><string>Banana</string><string>Cherry</string></set>";
// XML থেকে Set তৈরি (Unmarshalling)
Set<String> fruits = (Set<String>) xstream.fromXML(xml);
System.out.println(fruits);
}
}
Output:
[Apple, Banana, Cherry]
এখানে, XML ডেটা থেকে Set অবজেক্ট তৈরি করা হয়েছে এবং সেটের উপাদানগুলি প্রদর্শিত হচ্ছে।
2.3 Arrays Unmarshalling (XML থেকে Arrays Object)
import com.thoughtworks.xstream.XStream;
public class XStreamExample {
public static void main(String[] args) {
XStream xstream = new XStream();
// XML ডেটা
String xml = "<array><string>Apple</string><string>Banana</string><string>Cherry</string></array>";
// XML থেকে Array তৈরি (Unmarshalling)
String[] fruits = (String[]) xstream.fromXML(xml);
for (String fruit : fruits) {
System.out.println(fruit);
}
}
}
Output:
Apple
Banana
Cherry
এখানে, XML ডেটা থেকে String Array অবজেক্ট তৈরি করা হয়েছে এবং array এর উপাদানগুলি প্রদর্শিত হচ্ছে।
3. XStream কনফিগারেশন এবং কাস্টমাইজেশন
3.1 Alias ব্যবহার করা
XML থেকে List, Set, এবং Arrays Unmarshalling এবং Serialization এর সময় আপনি alias ব্যবহার করতে পারেন। এতে XML ট্যাগের নাম কাস্টমাইজ করা সহজ হয়।
XStream xstream = new XStream();
xstream.alias("fruits", List.class);
এখানে, আপনি List ক্লাসের জন্য fruits নামে XML ট্যাগ ব্যবহার করতে পারেন।
সারাংশ
XStream ব্যবহার করে আপনি সহজেই List, Set, এবং Arrays কে XML ফরম্যাটে সিরিয়ালাইজ এবং XML থেকে Java Object-এ Unmarshal করতে পারেন। Alias, Custom converters, এবং অন্যান্য কনফিগারেশন ব্যবহার করে XML ফরম্যাট কাস্টমাইজ করা যায়। XStream-এ Collections এবং Arrays এর রূপান্তর খুবই সহজ এবং দ্রুত, যা ডেটা এক্সচেঞ্জ এবং পার্সিংয়ের জন্য অত্যন্ত কার্যকরী।
এক্সস্ট্রিম (XStream) লাইব্রেরি Java Object এবং XML ডেটার মধ্যে রূপান্তর করার জন্য ব্যবহৃত হয়। Complex Objects এবং Collections এর মধ্যে XML ডেটা এবং Java Object এর মাপিং করা XStream-এর মাধ্যমে খুবই সহজ। এখানে Complex Object এবং Collection ডেটার মধ্যে মাপিং কিভাবে করতে হয় এবং এর জন্য কিছু উদাহরণ দেওয়া হলো।
Complex Object Mapping
একটি Complex Object হল এমন একটি অবজেক্ট, যার মধ্যে অন্য অবজেক্ট থাকে, অর্থাৎ একটি অবজেক্টের মধ্যে আরেকটি অবজেক্ট সংরক্ষিত থাকে (এটি nested object হিসেবে পরিচিত)। XStream সহজভাবে এই ধরনের nested object বা complex object XML এবং Java Object এর মধ্যে রূপান্তর করতে পারে।
১. Complex Object Example
ধরা যাক, আমাদের একটি Person ক্লাস আছে, যার মধ্যে একটি Address ক্লাস অন্তর্ভুক্ত রয়েছে।
ক. Java Classes
public class Address {
private String street;
private String city;
public Address(String street, String city) {
this.street = street;
this.city = city;
}
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
}
public class Person {
private String name;
private Address address;
public Person(String name, Address address) {
this.name = name;
this.address = address;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
}
এখানে, Person ক্লাসে একটি Address অবজেক্ট রয়েছে, যা একটি Complex Object।
খ. XML Representation
XML ডেটা কিছু এমন হতে পারে:
<person>
<name>Alice</name>
<address>
<street>Main Street</street>
<city>Springfield</city>
</address>
</person>
এখানে, person ট্যাগের মধ্যে address নামে আরেকটি অবজেক্ট রয়েছে যা street এবং city প্রপার্টি ধারণ করে।
গ. XStream Mapping Example
XStream ব্যবহার করে Person এবং Address অবজেক্টে XML ডেটা রূপান্তর করা যাবে:
import com.thoughtworks.xstream.XStream;
public class XStreamExample {
public static void main(String[] args) {
// XStream instance
XStream xstream = new XStream();
// Aliases for complex objects
xstream.alias("person", Person.class);
xstream.alias("address", Address.class);
// Creating Person and Address objects
Address address = new Address("Main Street", "Springfield");
Person person = new Person("Alice", address);
// Converting object to XML
String xml = xstream.toXML(person);
System.out.println(xml);
// Converting XML back to object
Person personFromXML = (Person) xstream.fromXML(xml);
System.out.println("Name: " + personFromXML.getName());
System.out.println("Street: " + personFromXML.getAddress().getStreet());
System.out.println("City: " + personFromXML.getAddress().getCity());
}
}
আউটপুট:
<person>
<name>Alice</name>
<address>
<street>Main Street</street>
<city>Springfield</city>
</address>
</person>
এই কোডে:
aliasমেথড ব্যবহার করে XStream কে নির্দেশ দেওয়া হয়েছে, যেন XML-এ<person>এবং<address>ট্যাগকেPersonএবংAddressক্লাসের সাথে যুক্ত করে।toXML()মেথড দ্বারা Java Object কে XML ফরম্যাটে রূপান্তরিত করা হয়েছে।fromXML()মেথড ব্যবহার করে XML থেকে Java Object তৈরি করা হয়েছে।
Collections Mapping
Collections হল একটি List, Set, বা Map যেখানে একাধিক অবজেক্ট সংরক্ষিত থাকে। XStream সহজেই Collections এর মধ্যে মাপিং করতে পারে এবং XML ডেটাকে Java Collections এ রূপান্তর করতে পারে।
২. Collection Example
ধরা যাক, আমাদের একটি Person ক্লাস রয়েছে যেখানে List of Address রাখা হয়েছে।
ক. Java Class with Collection
import java.util.List;
public class Person {
private String name;
private List<Address> addresses;
public Person(String name, List<Address> addresses) {
this.name = name;
this.addresses = addresses;
}
public String getName() {
return name;
}
public List<Address> getAddresses() {
return addresses;
}
}
এখানে, Person ক্লাসের মধ্যে একাধিক Address অবজেক্ট সংরক্ষিত থাকে।
খ. XML Representation of Collection
XML ডেটা কিছু এমন হতে পারে:
<person>
<name>Alice</name>
<addresses>
<address>
<street>Main Street</street>
<city>Springfield</city>
</address>
<address>
<street>Second Street</street>
<city>Brooklyn</city>
</address>
</addresses>
</person>
এখানে, person ট্যাগের মধ্যে একাধিক address ট্যাগ রয়েছে, যা বিভিন্ন Address অবজেক্টের প্রতিনিধিত্ব করে।
গ. XStream Mapping for Collection
import com.thoughtworks.xstream.XStream;
import java.util.Arrays;
public class XStreamExample {
public static void main(String[] args) {
// XStream instance
XStream xstream = new XStream();
// Aliases for complex objects
xstream.alias("person", Person.class);
xstream.alias("address", Address.class);
xstream.alias("addresses", List.class); // Alias for List of Address
// Creating Address objects
Address address1 = new Address("Main Street", "Springfield");
Address address2 = new Address("Second Street", "Brooklyn");
// Creating Person object with List of Address
Person person = new Person("Alice", Arrays.asList(address1, address2));
// Converting object to XML
String xml = xstream.toXML(person);
System.out.println(xml);
// Converting XML back to object
Person personFromXML = (Person) xstream.fromXML(xml);
System.out.println("Name: " + personFromXML.getName());
for (Address addr : personFromXML.getAddresses()) {
System.out.println("Street: " + addr.getStreet() + ", City: " + addr.getCity());
}
}
}
আউটপুট:
<person>
<name>Alice</name>
<addresses>
<address>
<street>Main Street</street>
<city>Springfield</city>
</address>
<address>
<street>Second Street</street>
<city>Brooklyn</city>
</address>
</addresses>
</person>
এখানে:
Arrays.asList(address1, address2)ব্যবহার করে দুটিAddressঅবজেক্ট একটি List এ রাখা হয়েছে।alias("addresses", List.class)দ্বারা XML এaddressesট্যাগের সাথেListমডেলকে যুক্ত করা হয়েছে।
সারাংশ
XStream লাইব্রেরি ব্যবহার করে Complex Object এবং Collection এর মধ্যে XML এবং Java Object এর মাপিং সহজে করা যায়।
- Complex Objects এর মধ্যে nested অবজেক্ট থাকে, এবং XStream সেগুলিকে সঠিকভাবে রূপান্তর করতে পারে।
- Collections এর মধ্যে একাধিক অবজেক্ট যেমন List, Set, বা Map রাখতে পারে এবং XStream সেগুলি XML ফরম্যাটে রূপান্তর এবং আবার Java Object এ রূপান্তর করতে পারে।
- XStream এর alias এবং aliasField ফিচারগুলি XML ট্যাগ কাস্টমাইজ করতে এবং সঠিকভাবে ক্লাসের সাথে মিলিয়ে কাজ করতে সহায়তা করে।
এটি Java অ্যাপ্লিকেশনগুলির জন্য XML এবং Java Object এর মধ্যে কার্যকরীভাবে ডেটা রূপান্তর করার একটি সহজ এবং শক্তিশালী উপায়।
এক্সস্ট্রিম (XStream) লাইব্রেরি ব্যবহার করে আপনি Collections এবং Arrays (যেমন List, Set, বা সাধারণ অ্যারে) কে XML ফরম্যাটে সিরিয়ালাইজ (Serialization) এবং ডেসিরিয়ালাইজ (Deserialization) করতে পারেন। XStream এর মাধ্যমে আপনি সহজেই Java Collection বা Arrays কে XML ফরম্যাটে কনভার্ট করতে পারবেন এবং XML ডেটা থেকে সেই Collection বা Arrays এর Java অবজেক্ট তৈরি করতে পারবেন।
এখানে Collections এবং Arrays জন্য XStream ব্যবহার করার কিছু উদাহরণ দেওয়া হলো।
1. XStream ব্যবহার করে Collection সিরিয়ালাইজেশন (Serialization)
যেহেতু XStream Java Collections যেমন List, Set, Map ইত্যাদি সমর্থন করে, আপনি সহজেই একটি Collection অবজেক্ট XML ফরম্যাটে কনভার্ট করতে পারবেন।
উদাহরণ: List সিরিয়ালাইজেশন
ধরা যাক, আমাদের কাছে একটি Person ক্লাস এবং সেই ক্লাসের একটি List অবজেক্ট আছে। আমরা সেই List অবজেক্টটি XML ফরম্যাটে কনভার্ট করতে চাই।
import com.thoughtworks.xstream.XStream;
import java.util.ArrayList;
import java.util.List;
public class XStreamCollectionExample {
public static void main(String[] args) {
// Create a list of Person objects
List<Person> people = new ArrayList<>();
people.add(new Person("John", 30));
people.add(new Person("Alice", 25));
people.add(new Person("Bob", 35));
// Create an instance of XStream
XStream xstream = new XStream();
// Serialize the List to XML
String xml = xstream.toXML(people);
System.out.println("Serialized XML:\n" + xml);
}
}
class Person {
private String name;
private int age;
// Constructor
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// Getters and Setters
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
Output (Serialized XML):
<list>
<person>
<name>John</name>
<age>30</age>
</person>
<person>
<name>Alice</name>
<age>25</age>
</person>
<person>
<name>Bob</name>
<age>35</age>
</person>
</list>
এখানে, toXML() মেথডটি List অবজেক্টকে XML ফরম্যাটে কনভার্ট করেছে।
2. XStream ব্যবহার করে Collection ডেসিরিয়ালাইজেশন (Deserialization)
এখন, আমরা XML ডেটাকে পুনরায় List অবজেক্টে কনভার্ট (ডেসিরিয়ালাইজ) করতে চাই। XStream এর fromXML() মেথড ব্যবহার করে আপনি XML ডেটাকে Java অবজেক্টে কনভার্ট করতে পারবেন।
উদাহরণ: List ডেসিরিয়ালাইজেশন
import com.thoughtworks.xstream.XStream;
import java.util.List;
public class XStreamCollectionDeserialization {
public static void main(String[] args) {
// XML data representing a List of Person objects
String xml = "<list>\n" +
" <person>\n" +
" <name>John</name>\n" +
" <age>30</age>\n" +
" </person>\n" +
" <person>\n" +
" <name>Alice</name>\n" +
" <age>25</age>\n" +
" </person>\n" +
" <person>\n" +
" <name>Bob</name>\n" +
" <age>35</age>\n" +
" </person>\n" +
"</list>";
// Create an instance of XStream
XStream xstream = new XStream();
// Deserialize the XML back into a List of Person objects
List<Person> people = (List<Person>) xstream.fromXML(xml);
// Print the deserialized objects
for (Person person : people) {
System.out.println("Name: " + person.getName() + ", Age: " + person.getAge());
}
}
}
class Person {
private String name;
private int age;
// Constructor
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// Getters
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
Output (Deserialized Object):
Name: John, Age: 30
Name: Alice, Age: 25
Name: Bob, Age: 35
এখানে, fromXML() মেথডটি XML ডেটাকে List অবজেক্টে কনভার্ট করেছে।
3. XStream ব্যবহার করে Arrays সিরিয়ালাইজেশন এবং ডেসিরিয়ালাইজেশন
XStream আপনাকে Java Arrays (যেমন String[], int[] ইত্যাদি) সিরিয়ালাইজ এবং ডেসিরিয়ালাইজ করতে সক্ষম করে।
উদাহরণ: Array সিরিয়ালাইজেশন
import com.thoughtworks.xstream.XStream;
public class XStreamArrayExample {
public static void main(String[] args) {
// Create an array of strings
String[] names = {"John", "Alice", "Bob"};
// Create an instance of XStream
XStream xstream = new XStream();
// Serialize the array to XML
String xml = xstream.toXML(names);
System.out.println("Serialized Array to XML:\n" + xml);
}
}
Output (Serialized XML):
<array>
<string>John</string>
<string>Alice</string>
<string>Bob</string>
</array>
উদাহরণ: Array ডেসিরিয়ালাইজেশন
import com.thoughtworks.xstream.XStream;
public class XStreamArrayDeserialization {
public static void main(String[] args) {
// XML data representing an array of strings
String xml = "<array>\n" +
" <string>John</string>\n" +
" <string>Alice</string>\n" +
" <string>Bob</string>\n" +
"</array>";
// Create an instance of XStream
XStream xstream = new XStream();
// Deserialize the XML back into an array of strings
String[] names = (String[]) xstream.fromXML(xml);
// Print the deserialized array
for (String name : names) {
System.out.println(name);
}
}
}
Output (Deserialized Array):
John
Alice
Bob
4. কাস্টম এলিয়াস (Alias) ব্যবহার করা
আপনি XStream এ XML ট্যাগের নাম কাস্টমাইজ করতে alias ব্যবহার করতে পারেন, যা আপনার Java ক্লাসের নামের পরিবর্তে XML ট্যাগের নামকে কাস্টমাইজ করে।
XStream xstream = new XStream();
xstream.alias("personInfo", Person.class); // Custom XML tag name
String xml = xstream.toXML(people);
System.out.println(xml);
এটি XML ডেটাতে <personInfo> ট্যাগ ব্যবহার করবে, যা আপনাকে কাস্টম ট্যাগ নামের মাধ্যমে XML ডেটা তৈরি এবং প্রক্রিয়া করতে সহায়তা করবে।
সারাংশ
XStream ব্যবহার করে আপনি Java Collections (যেমন List, Set, Map) এবং Arrays কে খুব সহজে XML ফরম্যাটে কনভার্ট (Serialization) এবং XML থেকে আবার Java Objects এ কনভার্ট (Deserialization) করতে পারেন। XStream এর মাধ্যমে আপনি Collection এবং Array এর ডেটা XML ফরম্যাটে কার্যকরীভাবে সঞ্চয় এবং প্রক্রিয়া করতে পারেন, যা ডেটা শেয়ারিং এবং স্টোরেজে সহায়ক।
Read more