I have information as an XML file. To use them, I want to parse XML in objects through JAXB .
My only problem is that all child notes after parsing are null . Only processed attributes.
root class:
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; } }
child class for 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 file:
<?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>
source share