java - SimpleXml ValueRequiredException -


i'm trying complex-ish xml parsing using simplexml 2.7.1.

the error i'm getting

org.simpleframework.xml.core.valuerequiredexception: unable satisfy @org.simpleframework.xml.element(name=, type=void, data=false, required=true) on field 'rwrd_nmb' private java.lang.string com.staples.mobile.enterprise.rewards.model.core.simple.table1.rwrd_nmb class com.staples.mobile.enterprise.rewards.model.core.simple.table1 @ line 1 

in following test:

@test public void table1shouldgetparsed() {     string rawxmlresponse = "<diffgr:diffgram xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\" xmlns:diffgr=\"urn:schemas-microsoft-com:xml-diffgram-v1\">\n" +             "                  <newdataset xmlns=\"\">\n" +             "                     <table1 diffgr:id=\"table11\" msdata:roworder=\"0\">\n" +             "                        <rwrd_nmb>5094934675</rwrd_nmb>\n" +             "                        <tran_id>304011</tran_id>\n" +             "                        <tran_dt>2015-02-23t00:00:00-05:00</tran_dt>\n" +             "                        <str_nmb>1715</str_nmb>\n" +             "                        <sku_nmb>648370</sku_nmb>\n" +             "                        <item_description>648370 - epson t200 color ink 3pk</item_description>\n" +             "                        <disc_prog_id>1</disc_prog_id>\n" +             "                        <category_id>1</category_id>\n" +             "                        <cpn_amt>0.00</cpn_amt>\n" +             "                        <total_qty>1</total_qty>\n" +             "                        <tot_price_amt>22.49</tot_price_amt>\n" +             "                        <net_spnd_amt>22.49</net_spnd_amt>\n" +             "                        <total_rewards>0.00</total_rewards>\n" +             "                        <dsc_pgm_dscr>rewards core program</dsc_pgm_dscr>\n" +             "                     </table1>\n" +             "                  </newdataset>\n" +             "               </diffgr:diffgram>";     serializer serializer = new persister();     try {         table1 table1 = serializer                 .read(table1.class, rawxmlresponse, false);         assert.assertnotnull(table1);     } catch (exception e) {         e.printstacktrace();         assert.fail(e.getmessage());     } } 

table1.java:

@root(name = "table1") @namespacelist({         @namespace(reference = "urn:schemas-microsoft-com:xml-msdata"),         @namespace(reference = "urn:schemas-microsoft-com:xml-diffgram-v1") })  public class table1 {  @attribute(required = false) private string id; @attribute(required = false) private string roworder;  @element private string rwrd_nmb; @element private string tran_id; @element private string tran_dt; @element private string str_nmb; @element private string sku_nmb; @element private string item_description; @element private string disc_prog_id; @element private string category_id; @element private string cpn_amt; @element private int total_qty; @element private float tot_price_amt; @element private float net_spend_amt; @element private float total_rewards; @element private string dsc_pgm_dscr;  public string getrewardsnumber() {     return rwrd_nmb; } //more getters } 

newdataset.java:

@root(name = "newdataset", strict = false) @namespace public class newdataset {     @elementlistunion({             @elementlist(entry = "table", type = table.class, inline = true),             @elementlist(entry = "table1", type = table1.class, inline = true)     })     private list<object> list;      public newdataset(){         list = new arraylist<>();     }      public list<object> getlist() {         return list;     }      public void setlist(list<object> list) {         this.list = list;     } } 

diffgram.java:

@root(name = "diffgram") @namespacelist({         @namespace(prefix = "msdata", reference = "urn:schemas-microsoft-com:xml-msdata"),         @namespace(prefix = "diffgr", reference = "urn:schemas-microsoft-com:xml-diffgram-v1") })  public class diffgram { @element(name = "newdataset") private newdataset newdataset;  public newdataset getnewdataset() {     return newdataset; } } 

i've written similar tests table (a class similar table1, members different), newdataset , diffgram, of giving me valuerequiredexceptions. feel i've been staring @ long , missing fundamental here! have strong feeling if figure 1 of these out, rest fall place.