私はこのようなxmlドキュメントを持っています
<root>
<subElement>
<a>an instance</a>
<b>another instance</b>
<problemElement>
<option>1st instance</option>
<option>2nd instance</option>
<option>3rd instance</option>
</problemElement>
</subElement>
<subElement>
<a></a>
<b></b>
<problemElement>
<option>instance</option>
</problemElement>
</subElement>
</root>
私のjaxbクラスは次のようになります。
@XmlRootElement(name = "root")
@XmlType(name = "Root")
public class Root{
@XmlElement(name = "subElement", required = true)
private final List<SubElement> subElementList = new ArrayList<SubElement>();
public List<SubElement> getSubElementList() {
return subElementList;
}
}
@XmlType(name = "SubElement", propOrder = {"a", "b", "problemElement"})
public abstract class SubElement{
@XmlElement(required = true)
private String a;
@XmlElement(required = true)
private String b;
@XmlElement(name = "problemElement", required = true)
private List<ProblemElement> problemElement= new ArrayList<ProblemElement>();
public String getA() {
return a;
}
public String getB() {
return b;
}
public List<ProblemElement> getProblemElement() {
return problemElement;
}
}
@XmlType(name = "ProblemElement" )
public class ProblemElement {
@XmlElement(required = true)
private String option;
public String getOption() {
return option;
}
}
problemElementを除いて、すべて正常に動作します。リストは、xmlの最後のオプションノード値(この場合は「3番目のインスタンス」)のみを返します。私は何が間違っているのですか?