I'm trying to read the xml file to java objects but its returning null
below is my code:
<?xml version="1.0" encoding="UTF-8"?>
<Cricket>
<Batting>
<BattingData>
<Name>playerBat1</Name>
<Score>50</Score>
<Balls>30</Balls>
</BattingData>
<BattingData>
<Name>playerBat2</Name>
<Score>50</Score>
<Balls>30</Balls>
</BattingData>
</Batting>
<Bowling>
<BowlingData>
<Name>playerBowl1</Name>
<Wickets>2</Wickets>
<Balls>24</Balls>
<Overs>4</Overs>
</BowlingData>
<BowlingData>
<Name>playerBowl2</Name>
<Wickets>2</Wickets>
<Balls>24</Balls>
<Overs>4</Overs>
</BowlingData>
</Bowling>
<Overs>20</Overs>
<BattingTeam>Team A</BattingTeam>
<BowlingTeam>Team B</BowlingTeam>
</Cricket>
package cricket.domain;
public class Cricket {
private Batting Batting;
private Bowling Bowling;
private Integer Overs;
private String BattingTeam;
private String BowlingTeam;
public Batting getBatting() {
return Batting;
}
public void setBatting(Batting batting) {
Batting = batting;
}
public Bowling getBowling() {
return Bowling;
}
public void setBowling(Bowling bowling) {
Bowling = bowling;
}
public Integer getOvers() {
return Overs;
}
public void setOvers(Integer overs) {
Overs = overs;
}
public String getBattingTeam() {
return BattingTeam;
}
public void setBattingTeam(String battingTeam) {
BattingTeam = battingTeam;
}
public String getBowlingTeam() {
return BowlingTeam;
}
public void setBowlingTeam(String bowlingTeam) {
BowlingTeam = bowlingTeam;
}
}
try {
JAXBContext context = JAXBContext.newInstance(Cricket.class);
Unmarshaller m = context.createUnmarshaller();
InputStream inputStream = null;
try {
inputStream = new FileInputStream(
"D://Documents//testXml//cricket.xml");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Source source = new StreamSource(inputStream);
JAXBElement<Cricket> cri = m.unmarshal(source, Cricket.class);
Cricket cricket = cri.getValue();
System.out.println("object : " + cricket.getBattingTeam().toString());
} catch (JAXBException e) {
e.printStackTrace();
}
its returning me null object when i'm reading this without annotations. I want to know that whether my xml format is correct or my code has some issue.
The problem is the Java naming conventions: variables need to start with lowercase letter. If i use lowercase variable and element names, its working fine. So the above is working fine with changing xml as well as java objects to lower case.As of now its resolved. But the thing is what if my xml is static and is in fixed format which starts with capital letters. How can it be parsed without annotation.?