0
私はJAXBと、次のXMLをパースでstuckedだ:JAXB:異なる種類のオブジェクトのリストをラッパー内でアンマーシャリングする方法はありますか
<?xml version="1.0" encoding="utf-8"?>
<dashboardreport name="exampleDashboard" version="6.5.6.1013" reportdate="2016-12-16T11:05:19.329+01:00" description="">
<data>
<incidentchartdashlet name="Incident Chart" description="" />
<chartdashlet name="WebRequestTime" showabsolutevalues="false" />
<chartdashlet name="WebServiceTime" showabsolutevalues="false" />
</data>
</dashboardreport>
私は、XMLを非整列化するために、次のJavaクラスを使用: Dashboardreport.java
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "dashboardreport")
public class Dashboardreport {
@XmlElementWrapper(name = "data")
@XmlElement(name = "chartdashlet")
protected List<Chartdashlet> chartdashlets;
@XmlElementWrapper(name = "data")
@XmlElement(name = "incidentchartdashlet")
protected List<Incidentchartdashlet> incidentchartdashlets;
@XmlAttribute(name = "name")
protected String name;
}
は、私はちょうど、XMLを非整列化したいですインシデントチャートのダッシュおよびチャートダッシュレットの周りのラッパークラスを使用せずに、両方のタイプが異なることが原因です。 XmlElementWrapperアノテーションは一度しか使用できないため、チャートダッシュが埋められ、インシデントチャートのダッシュがnullになります。 別のラッパークラスを使用せずにJAXBのソリューションはありますか?
ありがとう:
その後、ダッシュレットのあなたの混合リストを処理するための優先JAXBの方法は、
@XmlElements
注釈を使用して だろう!あなたは私に正しいヒントをくれました;) –