我有信息作为XML
文件。要使用它们,我想通过将 XML 解析为对象JAXB
。
我唯一的问题是所有子笔记都在 parsing 之后null
。只有属性被解析。
根类:
package xml;
import java.util.Date;
import java.util.List;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import xml.messstrecke.ZEBMessstrecke;
@XmlRootElement(name = "RohdatenTP2Netz", namespace = "http://www.BASt.de/ZEB/Rohdaten/Version_3_0")
public class RohdatenTP2Netz
{
//Attributes
private String merkmal;
private String typ;
private Date erstelldatum;
private String bemerkung;
//List of Childs
private List<ZEBMessstrecke> zebMessstrecken;
public @XmlAttribute(name = "Merkmal", required = true) String getMerkmal()
{
return merkmal;
}
public void setMerkmal(String merkmal)
{
this.merkmal = merkmal;
}
public @XmlAttribute(name = "Typ", required = true) String getTyp()
{
return typ;
}
public void setTyp(String typ)
{
this.typ = typ;
}
public @XmlAttribute(name = "Erstelldatum", required = true) Date getErstelldatum()
{
return erstelldatum;
}
public void setErstelldatum(Date erstelldatum)
{
this.erstelldatum = erstelldatum;
}
public @XmlAttribute(name = "Bemerkung", required = true) String getBemerkung()
{
return bemerkung;
}
public void setBemerkung(String bemerkung)
{
this.bemerkung = bemerkung;
}
public @XmlElement(required = true, type = ZEBMessstrecke.class) List<ZEBMessstrecke> getZebMessstrecken()
{
return zebMessstrecken;
}
public void setZebMessstrecken(List<ZEBMessstrecke> zebMessstrecken)
{
this.zebMessstrecken = zebMessstrecken;
}
}
ZEBMessstrecke 的子类:
package xml.messstrecke;
import java.util.List;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import xml.messstrecke.datenstrom.Datenstrom;
@XmlRootElement(namespace="http://www.BASt.de/ZEB/Rohdaten/Version_3_0")
public class ZEBMessstrecke
{
//Attribute
private String mnr;
private String mra;
//KindElemente
private ZEBHeader header;
private List<Datenstrom> datenstroeme;
public @XmlAttribute(name = "mnr", required = true) String getMnr()
{
return mnr;
}
public void setMnr(String mnr)
{
this.mnr = mnr;
}
public @XmlAttribute(name = "mra", required = true) String getMra()
{
return mra;
}
public void setMra(String mra)
{
this.mra = mra;
}
public @XmlElement(name = "ZEBHeader", required = true) ZEBHeader getHeader()
{
return header;
}
public void setHeader(ZEBHeader header)
{
this.header = header;
}
public @XmlElement(name = "Datenstrom", required = true) List<Datenstrom> getDatenstroeme()
{
return datenstroeme;
}
public void setDatenstroeme(List<Datenstrom> datenstroeme)
{
this.datenstroeme = datenstroeme;
}
}
xml文件:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<RohdatenTP2Netz Merkmal="Griffigkeit" Typ="Netzorientiert" Erstelldatum="2012-09-28" xmlns="http://www.BASt.de/ZEB/Rohdaten/Version_3_0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Bemerkung="">
<ZEBMessstrecke mnr="357/11" mra="0.4">
<ZEBHeader>
<Bildparameter Datentraeger="LISt__BSt_12_001">
<Messpunktabstand_Bilder>1 Wert pro 10 Meter</Messpunktabstand_Bilder>
<Kamera Nr="1" Name="Frontkamera" PixelH="720" PixelV="576" Bildformat="jpg" RootVerzeichnis="Kamera_01\B 096_"/>
</Bildparameter>
<Zusatzparameter/>
<MapInfoStrassennetz Pfad_und_Basisname="ZEB2012B_1400_GRUNDDATEN_V_1_0_0">
<DAT>X</DAT>
<ID>X</ID>
<MAP>X</MAP>
<TAB>X</TAB>
</MapInfoStrassennetz>
<ZEBAdministration Jahr="2012" Strassenklasse="B" ZENDI="140000" Anlass="Zwischentermin2" Dateiversion="1"/>
<Messparameter Messsystem="SKM" KfzKennz="MW-LI 21" Messgeraetebauer="BfW Traunstein" Messsystembetreiber="LISt GmbH Rochlitz" Messprinzip="schraeggestelltes Rad" Fahrer="Schmidt" Operator="Pusch" Positionsbestimmungsverfahren="DGPS">
<Messpunktabstand_Messgeschwindigkeit>1 Wert pro 1 Meter</Messpunktabstand_Messgeschwindigkeit>
<Messpunktabstand_Fahrbahntemperatur>1 Wert pro 1 Meter</Messpunktabstand_Fahrbahntemperatur>
<Messpunktabstand_Reifentemperatur>1 Wert pro 1 Meter</Messpunktabstand_Reifentemperatur>
<Messpunktabstand_Lufttemperatur>1 Wert pro 1 Meter</Messpunktabstand_Lufttemperatur>
<Messpunktabstand_Wassertemperatur>1 Wert pro 1 Meter</Messpunktabstand_Wassertemperatur>
<Messpunktabstand_Seitenkraftbeiwert>1 Wert pro 1 Meter</Messpunktabstand_Seitenkraftbeiwert>
<Messpunktabstand_Seitenabstand>1 Wert pro 1 Meter</Messpunktabstand_Seitenabstand>
<Messlinie>rechte Rollspur</Messlinie>
</Messparameter>
</ZEBHeader>
<Datenstrom LfdM="511" Datum="2012-05-31" Uhr="11:19:57" G="0" Bemerkung="" mrl="0" />
<Datenstrom LfdM="525" Datum="2012-05-31" Uhr="11:19:58" G="0" Bemerkung="" mrl="0" />
</ZEBMessstrecke>
</RohdatenTP2Netz>