Das Kefk Network Wiki befindet sich im Testbetrieb.


JAXB

Aus Kefk.

Wechseln zu: Navigation, Suche

JAXB steht für Java Architecture for XML Binding.

Es bezeichnet eine Programmschnittstelle in Java, die es ermöglicht, Daten aus einem XML-Schema automatisch an Java-Klassen zu binden; diese sogar aus einer XML-Schema-Instanz heraus zu generieren.

Somit soll ein Arbeiten mit XML-Daten möglich werden, bei welchem der Programmierer nicht mehr auf die XML-Parsing-Technologien SAX und DOM angewiesen ist.

Inhaltsverzeichnis

Daten-Rangierbahnhof

Man bezeichnet dabei als Unmarshalling den Prozess, Daten aus einer XML-Schema-Instanz heraus automatisch in einen Java-Objekte-Baum zu übertragen. (Daten in ihre ursprüngliche Form bringen: XML zu Datenobjekten)

Marshalling bezeichnet den umgekehrten Weg, wenn aus einem Java-Objekte-Baum wieder XML-Daten geschrieben werden. (Daten wieder in XML für die Aufbewahrung bzw. den Transport speichern.)

Daten-Bindung

Der Begriff der Bindung innerhalb dieses Konzeptes beschreibt einen Satz von Regeln, die die Abbildung/Repräsentation des XML-Schemas gegenüber den zu generierenden Java-Objekten bestimmt. Auf diese vorgegebenen Regeln kann durch Binding Customizations Einfluss genommen werden. Dies kann durch Inline-Notizen im XML-Schema oder durch eine gesonderte Datei geschehen, die dann dem Binding Compiler mit übergeben wird. Dieser hat dann die Aufgabe, das XML-Schema auf eine entsprechende Java-Objekt-Struktur abzubilden.

JAXB Binding Framework

Das JAXB Binding Framework besteht im Kern aus drei Java-Paketen:

  • javax.xml.bind
  • javax.xml.bind.util
  • javax.xml.bind.helper

Wobei die letzten beiden Pakete unterstützende Funktion für das Haupt-Paket „javax.xml.bind“ liefern.

Die Klasse „JAXBContext“ aus „javax.xml.bind“ stellt den Eingangspunkt zur Nutzung des Frameworks innerhalb einer eigenen Java-Anwendung dar.

JAXBContext jc = JAXBContext.newInstance("com.acme.foo:com.acme.bar");
Unmarshaller u = jc.createUnmarshaller();
FooObject fooObj = (FooObject)u.unmarshal(new File("foo.xml"));
BarObject barObj = (BarObject)u.unmarshal(new File("bar.xml"));

Aus dem erstellten Kontext-Objekt, wird nun ein „Unmarshaller“ generiert. Mit diesem können dann die XML-Daten auf Java-Objekte abgebildet werden.

Um die Datenobjekte wieder zurück in die XML-Form zu bringen, wird ein „Marshaller“ aus dem Kontext-Objekt erzeugt. Ihm wird das Datenobjekt und ein Streamobjekt („java.io.OutputStream“ oder „java.io.Writer“) übergeben.

 Marshaller m = jc.createMarshaller();
 m.marshal(fooObj, System.out);

Weblinks

Persönliche Werkzeuge
Andere Sprachen