XML-Datenbindung

XML-Datenbindung

XML-Datenbindung (englisch XML data binding) ist in der Objektorientierung der Prozess der Abbildung von XML-Dokumenten auf Objekte bzw. die Repräsentation von XML-Dokumenten durch Objekte und vice versa. Dieser Prozess erlaubt es Programmierern, auf XML-Daten über Objekte zuzugreifen ohne komplexe Mechanismen wie XPath, DOM oder SAX zu beherrschen.

Die zur Laufzeit einer Anwendung stattfindende Abbildung eines Objektes in XML-Daten nennt man dabei Marshalling oder Serialisierung. Der umgekehrte Weg, die Abbildung von XML-Daten in Objekte nennt man Unmarshalling oder Deserialisierung.

Inhaltsverzeichnis

Funktionsweise

XML-Datenbindung muss zur Abbildung von Objekten auf XML-Daten und umgekehrt Attribute der Objekte auf XML-Elemente abbilden. Dies kann je nach Aufgabenstellung beziehungsweise Unterstützung durch das verwendete XML-Bindungs-Framework auf unterschiedliche Art und Weise erfolgen:

auf XML-Schema basierend
Basierend auf einem gegebenen XML-Schema werden Klassen generiert, die dem XML-Schema entsprechen. Die zu dem XML-Schema passenden XML-Dokumente werden zur Laufzeit dann von Instanzen dieser Klassen repräsentiert.
auf Klassen basierend
Basierend auf gegebenen zu serialisierenden Klassen wird ein dazu passendes XML-Schema generiert. Zur Laufzeit werden die Instanzen dieser Klassen in zu dem XML-Schema passende XML-Dokumente gespeichert.
auf Mapping basierend
Ein üblicherweise in XML definiertes Mapping beschreibt die Abbildung von XML-Elementen auf Attribute. Basierend auf diesem Mapping werden dann zur Laufzeit Objekte in XML-Dokumente serialisiert oder XML-Dokumente in Objekte deserialisiert.

Alle drei Methoden können auf unterschiedliche Art und Weise implementiert werden. So ist es beispielsweise bei einigen Frameworks möglich die benötigten Klassen erst zur Laufzeit zu generieren bzw. durch Bytecode Manipulation sogar ganz ohne eigene Klassen auszukommen.

Probleme

XML-Schemas und Klassen lassen sich nicht immer vollständig aufeinander abbilden. Beispielsweise ist es oft schwierig, die bei beiden möglichen Kommentare aufeinander abzubilden. Darüber hinaus ist es oft problematisch, die Reihenfolge der XML-Elemente in Klassen abzubilden, während Selbst-Referenzen von Objekten in XML schwer abzubilden sind. Somit kann es der Fall sein, dass XML-Daten-Bindung nicht die gesamte Information der zu bindenden Elemente berücksichtigt. Moderne XML-Daten-Bindungs-Frameworks sind allerdings in der Lage, die vollständigen Informationen zu bewahren.

Alternative

Die Alternative zu XML-Datenbindung ist die manuelle Serialisierung und Deserialisierung von Objekten in XML-Dokumente mittels bekannter XML-Techniken wie XPath, DOM oder SAX. Der wichtigste Nachteil dieser Alternative ist der Mehraufwand für die dazu notwendige eigene Implementierung und die damit verbundenen Folgekosten.

XML Datenbindungs-Frameworks

C / C++

  • gSOAP - Open Source XML Datenbindungs Compiler für C & C++, unterstützt SOAP, WSDL and XSD.
  • CodeSynthesis XSD - Open Source XML Datenbindungs Compiler für C++, SAX- oder Baum-ähnliches Mapping zu C++ Klassen.
  • xmlbeansxx - C++ Bibliothek für XML Datenbindung. Ähnlich zu XMLBeans.

Java

  • Java Architecture for XML Binding (JAXB), Java Programmierschnittstelle für XML Datenbindung, Teil der JSE und JEE.
  • Castor - Open Source XML Datenbindungs Framework
  • Apache XMLBeans - Open Source XML Datenbindungs Framework, Zugriff auf XML Dokumente via aus XML Schema generierter Klassen
  • JiBX - Schnelles Open Source XML Datenbindungs Framework, Mapping von Klassen auf XML Schemas über Bytecodemanipulation
  • XStream - Open Source XML Datenbindungs Framework, Serialisiert auch nach JSON
  • Apache Commons Betwixt - Simples Open Source XML Datenbindungs Framework, Serialisiert Objekte in XML ohne vorherige XML Schema Definition

.Net

  • System.Xml.Serialization - Teil des .NET Frameworks, enthält auch XML Datenbindungs Klassen

Weblinks

Weitere Infos


Wikimedia Foundation.

Игры ⚽ Нужен реферат?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Java Architecture for XML Binding — (JAXB) Maintainer Metro Projekt Entwickler Sun Microsystems Aktuelle Version 2.2.4 update 1 (8. Juni 2011) Betriebssystem Plattformunabhängig …   Deutsch Wikipedia

  • Apache XMLBeans — Maintainer David Bau, Cesar Andrei, Patrick Calahan et.al.[1] Aktuelle Version 2.5.0 (14. Dezember 2009) …   Deutsch Wikipedia

  • JiBX — Maintainer Dennis Sosnoski Aktuelle Version 1.2.2 (15. Februar 2010) Betriebssystem plattformunabhängig Programmier­sprache Java Ka …   Deutsch Wikipedia

  • Binding — bezeichnet: Binding Preis für Natur und Umweltschutz, liechtensteinischer Preis für Natur und Umweltschutz Sophie und Karl Binding Stiftung, gemeinnützige Stiftung in Basel/Schweiz Binding Waldpreis, Preis für nachhaltige Waldwirtschaft in der… …   Deutsch Wikipedia

  • Ado.net — ist ein Teil der von Microsoft entwickelten .NET Plattform. Es handelt sich um eine Sammlung von Klassen, die den Zugriff auf relationale Datenbanken gewährleisten. ADO.NET gilt als Nachfolger der ActiveX Data Objects (ADO), ist aber um… …   Deutsch Wikipedia

  • Avalon (Microsoft) — Windows Presentation Foundation Entwickler: Microsoft Aktuelle Version: .NET Framework 3.5 (16. November 2007) …   Deutsch Wikipedia

  • Apache CXF — Entwickler Apache Software Foundation Aktuelle Version 2.4.0 (18. April 2011) Betriebssystem plattformübergreifend Programmier­sprache Java …   Deutsch Wikipedia

  • ADO.NET — ist ein Teil der von Microsoft entwickelten .NET Plattform. Es handelt sich um eine Sammlung von Klassen, die den Zugriff auf relationale Datenbanken gewährleisten. ADO.NET gilt als Nachfolger der ActiveX Data Objects (ADO), hat aber nichts mit… …   Deutsch Wikipedia

  • Windows Presentation Foundation — Entwickler Microsoft Aktuelle Version WPF 4 (12. April 2010) Betriebssystem ab Windows XP Service Pack 2 Kategorie GUI Framework …   Deutsch Wikipedia

  • .NET — Dieser Artikel wurde aufgrund von inhaltlichen Mängeln auf der Qualitätssicherungsseite der Redaktion Informatik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen. Hilf… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”