I have issue about convert XML to Java Object , in here i use JAXB.
in my case:
XML DATA :
<persons>
<person>
<name>Aris Tonar</name>
<age />
<nickname />
<saldo />
</person>
</persons>
JAVA CLASS OF XML DATA :
public class Person{
private String name;
private Integer age;
private String nickName;
private Integer id;
private Double saldo;
/**
*Setter and Getter
*/
}
and when i using standard JAXBContext Unmarshaller code for parse it to Java Object. with code :
JAXBContext context = JAXBContext.newInstance(Person.class.getPackage().getName());
Unmarshaller unmarshaller = context.createUnmarshaller();
JAXBElement element = (JAXBElement) unmarshaller.unmarshal(new StreamSource(new StringReader(stringOfXmlData.toString())));
Person obj = (Person) element.getValue();
it will give result :
Person name = “Aris Tonar”
Person age = null
Person nickname = “”
Person id = null
Person saldo = null
but not that result what i want, i want JAXB will give result :
Person name = “Aris Tonar”
Person age = 0
Person nickname = “”
Person id = null
Person saldo = 0
- i want every element which declared in XML DATA will : if it’s value specified jaxb will interpreting it as normal(like name element) but if it’s value not specified jaxb will interpreting it as default value(like age,nickname, saldo elements)
- and if element not declared in XML Data, so jaxb will interpreting it as null.(like id element)
whether possible i do it? may be with customizing JAXBContext Code ??
1 Answer