XML-Datenaustausch / XML als Datenaustauschformat

XML als Datenaustauschformat

XML als Datenaustauschformat

➪ XML-Technologien kommen dort ins Spiel, wo es um Flexibilität und Präzision geht. Das Datenformat XML hat den Vorteil, dass höchst leistungsfähige Technologien wie XML-Schema, XPath, XSLT, XQuery u.a.m. zur Strukturdefinition, Vermeidung von Bedeutungskonflikten bei Versionsunterschieden oder zur Auswertung der XML-Dokumente breite Unterstützung finden.

Auf dieser Seite:

Ginge es primär um Objektserialisierung, also um das Abspeichern und Einlesen bzw. die Übermittlung von Informationen auf Objektebene derselben Klassen (Objekt A schreibt, Objekt B liest), dann wäre XML kaum die erste Wahl. Zahlreiche Klassen (z.B. ObjectOutputStream) stehen hier zur Verfügung, mit denen diese Übertragung Ressourcen schonender erfolgen kann.

Ginge es um den betont ressourcenschonenden Datenaustausch in einer Client-Server-Lösung (z.B. serverseitiges Java, C#.NET, PHP; client-/browserseitiges JavaScript; AJAX), dann wäre XML vermutlich immer noch nicht die erste Wahl. Hier steht als Alternative vor allem JSON zur Verfügung. JSON-Strings repräsentieren per Definition JavaScript-Objekte, die unmittelbar objektorientiert (browserseitige DOM-Programmierung) verarbeitet werden können.

XML kann einen beträchtlichen Overhead aufweisen, der nicht zuletzt durch exzessive Verwendung von Namespaces entsteht. Diese wiederum können z.B. auf Versionierungs-Annotations in JAXB zurückzuführen sein. Die Verwendung von Namespaces (und damit das scheinbar sinnlose "Aufblähen" der XML-Dokumente) ist also keine fahrlässige Ressourcenverschwendung, sondern hat einen triftigen Grund. Würden Sie andere Datenformate ebenfalls mit Namespaces fluten, wäre deren Vorteil des geringen Speicherverbrauchs wohl schnell dahin.

Einen zwingenden Grund, XML verwenden zu müssen, gibt es also nicht. Zahlreiche elektronische Datenaustauschprozesse arbeiten erfolgreich auch mit anderen Formaten, z.B. EDIFACT, IDoc, CSV, JSON, YAML, Flatfiles und andere mehr.

Das XML-Format allein garantiert noch keinen reibungslosen Datenaustausch zwischen Applikationen oder Systemen, die völlig autonom und streng voneinander getrennt agieren. Wichtig ist hier die funktionierende Datenübertragung.

Warum XML?

XML bietet den Vorteil ausgereifter, leistungsfähiger, bewährter Standards, die weite Unterstützung finden. Sehr hohe Flexibilität bei ebenso hoher Präzision, kurze Entwicklungszeiten, geringer Maintenance-Aufwand bei häufig wechselnden fachlichen Anforderungen unterstützen den Datenaustausch in effizienter Weise.

XML wird interessant, wenn der Datentransfer nicht nur auf Objektebene (also von Objekt A an Objekt B derselben Klasse), sondern auch applikations- (A2A) bzw. systemübergreifend (B2B), funktionieren soll. Dabei sind viele Szenarien vorstellbar:

Auch für die hocheffiziente Aufbereitung von Datenbankabfragen in PDF-Dokumente, für die Datenkonvertierung unterschiedlichster Eingangs- in diverse Zielformate (jawohl, etwa von CSV nach EDIFACT, JSON oder andere!) bieten XML-Technologien effiziente und völlig ausreichende Unterstützung.

XML punktet mit universalen Zeichensätzen, ausgereiften Technologien zur Strukturdefinition, Datenvalidierung und -konvertierung (auch für andere Datenformate!), die breite Unterstützung durch verschiedene Programmiersprachen, Tools und Standards.

XML und objektorientierte Programmierung

Auch bei Verwendung objektorientierter Programmierstandards zeigen sich die Vorteile, die XML-Technologien zu bieten haben.

Beispielsweise ist es möglich, Java-Objekte in XML zu serialisieren. Das heißt, der Zustand eines Objekts der Klasse A kann in XML abgebildet werden. Umgekehrt ist es möglich, dieses XML-Dokument durch andere Java-Objekte der Klasse A wieder einzulesen, wodurch die anderen Java-Objekte dieselben Informationen annehmen wie das Ursprungsobjekt.

Ein Java-Objekt der Klasse B, das eine völlig andere Struktur hat als Objekte der Klasse A, kann das (aus A stammende) XML-Dokument in der Regel jedoch nicht ohne Zusatzaufwand einlesen. Daher ist eine Konvertierung erforderlich, die die A-Eingangsdaten in eine Struktur bringt, die durch B-Objekte de-serialisiert werden kann. Dasselbe gilt, wenn sich die Klasse A in ihrer Struktur ändert (Refactoring), sodass ihr "Serialisierungs-"Output sich ebenfalls ändert.

XSLT, auch XQuery bieten alle Möglichkeiten, diese Konvertierung effizient durchzuführen. XML-Schema definiert die genauen Datenstrukturen der Quell- und Zieldokumente.

Hinzu kommt, dass die Strukturen der Klassen A und B sich durch Refactoring, Maintenance etc. laufend ändern. Damit ändern sich auch die fachlichen Anforderungen der Konvertierungslogik. XML-Technologien bieten effiziente Möglichkeiten, diese Anpassungen schnell und mit geringem Aufwand durchzuführen.

wg / 3. April 2018



Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf.






Vielen Dank für Ihr Interesse an meiner Arbeit.


V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de

www.wilfried-grupe.de/Datenaustauschformat_XML.html