Blog Archiv - November 2010

Java und XML: Direkte Bindung mit JAXB

Veröffentlicht am 18. November 2010

Im Java-Umfeld hat sich die Datenspeicherung mit XML schon weitestgehend zum Standard durchgesetzt. Vor allem viele Konfigurationsdateien (z.B. fast alle Config-Dateien in der Java Servlet Engine „Apache Tomcat“ sind in XML gehalten) sind regelmäßig in XML notiert; aber auch viele andere Datendateien für Java-Programme werden in XML definiert, da sich für dieses Format die Validierung und das Parsing sehr einfach und generisch in Java (und anderen Tools) durchführen lässt.

Eine sehr gängige Methode für das Einlesen (und interne Verwalten) von XML-Daten liegt darin, das XML-Dokument in einen Baum zu transformieren.

Hierbei sind alle Knoten des Dokuments (Elemente, Attribute, Entitäten und CDATA) als Node-Objekt im Speicher repräsentiert, deren Eigenschaften als Membervariablen dieses Node-Objekts gelesen werden können (z.B. Tagname, Typ des Elements, Wert eines Attrubuts, …). Die einzelnen Node-Objekte sind über eine Vater-Söhne-Relation miteinander verbunden.

Das Einlesen eines XML-Dokuments in einen Baum kann mit vielen Java-Toolkits gemacht werden (z.B. mit DOM = Document Object Model)

Eine großer Nachteil bei dieser Methode ist es, dass man in seinem Java-Programm meist selbstständig den Baum durchlaufen und interpretieren muss.
Natürlich kann man mit Hilfsmitteln, wie XPath sehr gut und effektiv Anfragen auf den XML-Baum ausführen, aber den XML-Baum in seine Java-Datenstrukturen umwandeln muss man noch selbst.

Eine andere Möglichkeit, Java mit XML zu vereinen bringt JAXB (Java Architecture for XML Binding).

Kategorie: Java