I am doing marshalling and unmarshalling of XML.
XML i want to unmarshall and then marshall is xml:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<resources>
<string name="app_name">Google<string>
<string name="app_name">Facebook<string>
<string-array name="ranking">
<item>one</item>
<item>two</item>
</string-array>
<string-array name="non-ranking">
<item>one</item>
<item>two</item>
</string-array>
</resources>
but xml is showing like this after marshalling :
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<resources>
<string name="app_name"/> ---- Value not showing
<string name="app_name"/> ---- Value not showing
<string-array name="ranking">
<item>one</item>
<item>two</item>
</string-array>
<string-array name="non-ranking">
<item>one</item>
<item>two</item>
</string-array>
</resources>
Here are the jaxb objects I have created :
1.ResourcesTag.java
2.StringArrayTag.java
3.StringTag.java
ResourcesTag.java :
package JX;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "resources")
@XmlAccessorType(XmlAccessType.FIELD)
public class ResourcesTag {
private List<StringTag> string = null;
private List<StringArrayTag> stringarray = null;
@XmlElement(name = "string")
public List<StringTag> getString() {
return string;
}
public void setString(List<StringTag> string) {
this.string = string;
}
@XmlElement(name = "string-array")
public List<StringArrayTag> getStringarray() {
return stringarray;
}
public void setStringarray(List<StringArrayTag> stringarray) {
this.stringarray = stringarray;
}
}
StringArrayTag.java
package JX;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "string-array")
@XmlAccessorType(XmlAccessType.FIELD)
public class StringArrayTag {
@XmlAttribute(name = "name")
private String id2;
@XmlElement(name = "item")
private List<String> item = null;
public String getId2() {
return id2;
}
public void setId2(String id2) {
this.id2 = id2;
}
public List<String> getItem() {
return item;
}
public void setItem(List<String> item) {
this.item = item;
}
}
StringTag.java :
package JX;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "string-array")
@XmlAccessorType(XmlAccessType.FIELD)
public class StringArrayTag {
@XmlAttribute(name = "name")
private String id2;
@XmlElement(name = "item")
private List<String> item = null;
public String getId2() {
return id2;
}
public void setId2(String id2) {
this.id2 = id2;
}
public List<String> getItem() {
return item;
}
public void setItem(List<String> item) {
this.item = item;
}
}
I believe my code for marshaling and marshaling is correct. so i am not posting that here.
Kindly please suggest me correct way of writing JAXB object so that this error can be eliminated.
No comments:
Post a Comment