[Simpleweb-Support] Xml To Java Object conversion
Brought to you by:
niallg
From: Hardik U. <hup...@as...> - 2013-04-23 12:44:50
|
I am converting xml file to java object using simpleframework. I am using generics since my xml's internal nodes gets changing. But simpleframework throws an error while converting. Here is my sample code: @Root(name = "searchresult", strict = false) public class ResponseVO<T> { @ElementList(entry = "document", inline = true) public List<T> elementVOList = new ArrayList<T>(); public List<T> getElementsVOList() { return elementVOList; } public void setElementsVOList(List<T>list) { elementVOList = list; } } ResponseVO is container for various other VOs as bellow: @Root(name = "document", strict = false) public class Projects_Display_VO { @Element(name = "projectname") private String projectName; @Attribute(name = "id") private int tmpid; public int getTmpid() { return tmpid; } public void setTmpid(int tmpid) { this.tmpid = tmpid; } /** * ProjectId */ @Element(name = "projectid") private String projectID; public String getProjectName() { return projectName; } public void setProjectName(String projectName) { this.projectName = projectName; } public int getProjectID() { return Integer.parseInt(projectID); } public void setProjectID(String projectID) { this.projectID = projectID; } } And the XML file is As bellow: <searchresult> <query>id:(PROJ2 PROJ6)</query> <document id="0"> <projectid>2</projectid> <projectname>Redundant Demo Project</projectname> <doctype>Projects</doctype> <summary>||Demo Project</summary> <title>Redundant Demo Project</title> </document> <document id="1"> <projectid>6</projectid> <projectname>Redundant Demo Project2</projectname> <doctype>Projects</doctype> <summary>||Main terminal links.</summary> <title>Terminal 5 Project</title> </document> </searchresult> The code for conversion is as bellow: ResponseVO<Projects_Display_VO> resp = (ResponseVO<Projects_Display_VO>) SerializationUtil.deserialize(ResponseVO.class, reader); Here i am using serializer from simpleframework. But it throws following error Exception::Attribute 'id' does not have a match in class java.lang.Object at line 5 org.simpleframework.xml.core.AttributeException: Attribute 'id' does not have a match in class java.lang.Object at line 5 at org.simpleframework.xml.core.Composite.readAttribute(Composite.java:555) at org.simpleframework.xml.core.Composite.readAttributes(Composite.java:474) at org.simpleframework.xml.core.Composite.readSection(Composite.java:387 I don't understand whats going wrong here. Does simpleframework supports generics ? Or am I doing something wrong ? Best Regards Hardik Upadhyay |