In the previous example you can see how to convert a bean into an XML persistence. Now we’ll do the opposite, converting the XML back to a bean. For the BeanToXML
class use in this example please refer to How do I convert a bean to XML persistence? example.
package org.kodejava.bean;
import java.beans.XMLDecoder;
import java.io.BufferedInputStream;
import java.util.Objects;
public class XmlToBean {
public static void main(String[] args) {
XMLDecoder decoder = new XMLDecoder(new BufferedInputStream(
Objects.requireNonNull(XmlToBean.class.getResourceAsStream("/Bean.xml"))));
// Reads the next object from the underlying input stream.
BeanToXML bean = (BeanToXML) decoder.readObject();
decoder.close();
System.out.println("ID = " + bean.getId());
System.out.println("Item Name = " + bean.getItemName());
System.out.println("Item Colour = " + bean.getItemColour());
System.out.println("Item Quantities = " + bean.getItemQuantities());
}
}
Here is our Bean.xml
persistence file:
<?xml version="1.0" encoding="UTF-8"?>
<java version="17" class="java.beans.XMLDecoder">
<object class="org.kodejava.bean.BeanToXML">
<void property="id">
<long>1</long>
</void>
<void property="itemColour">
<string>Dark Red</string>
</void>
<void property="itemName">
<string>T-Shirt</string>
</void>
<void property="itemQuantities">
<int>100</int>
</void>
</object>
</java>
The result are:
ID = 1
Item Name = T-Shirt
Item Colour = Dark Red
Item Quantities = 100