| home | suche | kontakt/johner | institut | hinweise studierende | tech-docs | blog | mindmailer |
![]() |
Marshalling
Die Klasse wurde nun mit den notwendigen Annotationen versehen. Nun erzeugen wir mit Hilfe eines Marshallers das konkrete XML-Dokument.
Die Klasse JAXBContext erwartet in der Methode newInstance() die Auflistung aller Klassen die behandelt werden sollen. Es ist auch möglich ein Package zu definieren.
Anschliessend wird mit JAXBContext ein Marshaller erzeugt und der Fuhrpark in ein XML-Dokument geschrieben.
JAXBContext context = JAXBContext.newInstance("fuhrpark"); //Name des Packages
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
marshaller.marshal(fuhrpark, System.out);
Unmarshalling
Das Unmarshalling gestaltet sich ähnlich. Mit JAXBContext wird ein Unmarshaller erzeugt und die, im Marshalling-Prozess erzeugte, XML-Datei eingelesen. Anschliessend können die erzeugten Java-Objekte verwendet werden.
try {
JAXBContext context = JAXBContext.newInstance("fuhrpark"); //Name des Packages
Unmarshaller unmarshaller = context.createUnmarshaller();
Fuhrpark fuhrpark = (Fuhrpark)unmarshaller.unmarshal(
new FileInputStream("./src/fuhpark/input.xml"));
System.out.println("Der Fuhrpark heißt " + fuhrpark.getName());
Collection<Fahrzeug> fahrzeuge = fuhrpark.getFahrzeuge();
for(Fahrzeug fahrzeug: fahrzeuge){
System.out.println("Wir haben ein " + fahrzeug.getTyp());
}
} catch (JAXBException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
