Xml Serialization in Java using Simple – Inheritance
This is a continuation from this post: Xml Serialization in Java using Simple
Example 4 – Serializing a list of objects that inherit from Person
Lets create some objects that inherit from Person. I looked at some documentation to try to get it right the first time. And then I hoped that it would just work….
import org.simpleframework.xml.Element;
import org.simpleframework.xml.Root;
@Root
public class Person
{
	@Element(name="FirstName")
	private String _FirstName = "";
	@Element(name="LastName")
	private String _LastName = "";
	public String getFirstName()
	{
		return _FirstName;
	}
	public void setFirstName(String inFirstName)
	{
		_FirstName = inFirstName;
	}
	public String getLastName()
	{
		return _LastName;
	}
	public void setLastName(String inLastName)
	{
		_LastName = inLastName;
	}
}
import java.util.ArrayList;
import java.util.List;
import org.simpleframework.xml.ElementList;
import org.simpleframework.xml.Root;
@Root
public class People 
{
	@ElementList(inline=true)
	List<Person> List = new ArrayList<Person>();
}
I didn’t want to get too complex so I only added a single item to Patient, a list of Symptoms.
import java.util.ArrayList;
import java.util.List;
import org.simpleframework.xml.ElementList;
public class Patient extends Person
{
	@ElementList(entry = "Symptom", inline = true)
	public List<String> Symptoms = new ArrayList<String>();
}
For the Physician, again to keep it simple, I only added a list of Hospitals.
import java.util.ArrayList;
import java.util.List;
import org.simpleframework.xml.ElementList;
public class Physician extends Person
{
	@ElementList(entry = "Hospital", inline = true)
	public List<String> Hospitals = new ArrayList<String>();
}
And here is the main method where I create the instances and serialize them.
import java.io.File;
import org.simpleframework.xml.Serializer;
import org.simpleframework.xml.core.Persister;
public class Run
{
	public static void main(String[] args) throws Exception
	{
		People people = new People();
		
		Patient p1 = new Patient();
		p1.setFirstName("Jared");
		p1.setLastName("Barneck");
		p1.Symptoms.add("Runny nose");
		p1.Symptoms.add("Congestion");
		people.List.add(p1);
		Physician p2 = new Physician();
		p2.setFirstName("Mike");
		p2.setLastName("Michaels");
		p2.Hospitals.add("Intermount Health Care");
		p2.Hospitals.add("St. Marks");
		people.List.add(p2);
		
		Serializer serializer = new Persister();
		File file = new File("people.xml");
		serializer.write(people, file);
	}
}
And yeah! This worked. Here is the Xml.
<people>
   <person class="Patient">
      <FirstName>Jared</FirstName>
      <LastName>Barneck</LastName>
      <Symptom>Runny nose</Symptom>
      <Symptom>Congestion</Symptom>
   </person>
   <person class="Physician">
      <FirstName>Mike</FirstName>
      <LastName>Michaels</LastName>
      <Hospital>Intermount Health Care</Hospital>
      <Hospital>St. Marks</Hospital>
   </person>
</people>
There you go.
There are a lot more examples here:
Simple Xml Serialization Tutorial


That's what I looked. Thanks a lot. I'm trying to code backup functionality in my application. Your article is very helpful.
[...] in Java using Simple – Inheritance Filed under: FreeBSD — rhyous @ 9:24 pm Read more Share this:DiggRedditLike this:LikeBe the first to like this post. Leave a [...]