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….
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | 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; } } |
01 02 03 04 05 06 07 08 09 10 11 | 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.
1 2 3 4 5 6 7 8 9 | 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.
1 2 3 4 5 6 7 8 9 | 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.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | 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.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 | < 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 [...]