info@comelio.com

  • Berlin, Germany
    Comelio GmbH
    Fon: +49.30.8145622.00
    Fax: +49.30.8145622.10

  • Miami, USA
    Comelio, Inc. (Regus)
    Fon: +1.305.395.7962
    Fax: +1.305.395.7964

  • Chennai, India
    Comelio Business Solutions Pvt. Ltd.
    Fon: +9144.420.13545
    Fax: +91.44.420.13551

XML-Technologien

  • Projekte mit XML

    • Umfangreiche Konfigurations­möglichkeiten mit XML zur Berichtserstellung für Befragungs­auswertung
    • Viele Beratungsprojekte zum XML-Einsatz
    • Projekte mit Einsatz von semantischen Technologien auf XML-Basis
    • Projekte zur Daten-Integration mit Validierung und Transformation über XML

XML (eXtensible Markup Language)

Das Akronym XML steht für „eXtensible Markup Language“, auf Deutsch: erweiterbare Auszeichnungssprache, die vom Standardisierungsgremium W3C unter Beteiligung einer Reihe von Firmen und Fachleuten entwickelt und als Technologie betreut wird. Im Wesentlichen handelt es sich um ein Textformat, das lediglich die Strukturregeln für den Aufbau von Beschreibungs- und Nutzdaten festlegt und das für beliebige Anforderungen im Bereich der Datenspeicherung/-abbildung geeignet ist. Dabei gibt es eine Reihe von Grammatiken, die den allgemeinen Sprachregeln folgen und die bei Verwendung einer geeigneten Software für eine Reihe von Anwendungsfällen geeignet sind. Es besteht aber insbesondere auch die Möglichkeit, eigene XML-Grammatiken zu entwickeln, die entweder für reine Datenspeicherung/-abbildung verwendbar sind, oder die zusammen mit einer entsprechend entwickelten Software nahezu beliebige Aufgaben lösen können.

XML-Einsatz bei der Software-Entwicklung
XML-Einsatz bei der Software-Entwicklung

Prüfungsschema von XML-Dokumenten

XML nun erlaubt die Definition eigener Auszeichnungsbefehle, die ausschließlich für die Textstruktur (und gerade nicht für Layout oder Darstellung) eingesetzt werden sollten. Zwar gibt es einige Praxisfälle, in denen auch Layoutregeln in XML umgesetzt werden. Man sollte diesem Beispiel unter keinen Umständen folgen, sondern diese Regelungen ausschließlich in die verwendeten XSL-Dokumente auslagern. Es ist nicht immer leicht, Kunden, die Layout in XML unterbringen, vom Gegenteil zu überzeugen, können sie doch wunderbar mit XSL auf die Layoutregeln zugreifen, wodurch am Ende weiterhin wunderschöne PDF- und HTML-Dokumente entstehen. Aber für die Zukunftstauglichkeit und die langfristige Datenstrukturierung und -speicherung lohnt eine vollständige Trennung von Layout und Inhalt bzw. der Semantik mit Hilfe der XML-Dokumente und der XSL-Dokumente.

Hier muss sprachlich noch einmal deutlich gesagt werden, dass es sich bei den XML-Dokumenten stets um Instanzdokumente handelt, die korrekt auf bereits existierenden Regeldokumenten beruhen. In Wirklichkeit gibt es ja nicht „das“ XML-Dokument, weil XML ja ausschließlich ein Konzept oder eine Technologie für die Verwendung und Entwicklung von eigenen Auszeichnungssprachen ist. Tatsächlich bezeichnet man ein XML-Dokument als ein solches, weil Textstücke mit Hilfe von Elementbezeichnungen in spitzen Klammern ausgezeichnet worden sind. Diese Syntax, also die Definition der verschiedenen Elementnamen etc., wiederum ist letztendlich immer in einem Regeldokument abgelegt, sodass vor der Verwendung eines Instanzdokumentes oder dem, was bis jetzt immer als XML-Dokument bezeichnet wurde, regelmäßig die Entwicklung eines Regeldokuments liegt.

Die Abbildung soll die verschiedenen Dokumenttypen und deren jeweilige Aufgaben bei der Verwendung von XML kennzeichnen. Wie man sich leicht vorstellen kann, benötigt man in einer kompletten Anwendung noch mindestens ein Dokument mit entsprechendem Quelltext, das die Transformation startet oder mit den benötigten Parametern versorgt. Zusätzlich lassen sich weitere Dokumente und Strukturen aus dem XML-Umfeld denken wie z.B. solche mit semantischen Informationen oder solche, die zur semantischen Untersuchung und Abfrage von existierenden Instanzdokumenten dienen. Daher handelt es sich bei der Schemadarstellung um das Grundprinzip oder auch um die Minimalanforderungen einer XML-Anwendung mit den folgenden Dokumenttypen:

XML-Instanzdokument

Es basiert auf einem Regeldokument und befolgt die dort genannten Strukturregeln in Hinblick auf das Vorkommen, die Häufigkeit und die Reihenfolge sowie die Benennung von Elementen sowie entsprechende Datentypen.

XSD-Regeldokument

Es definiert die Strukturregeln im Hinblick auf das Vorkommen, die Häufigkeit und die Reihenfolge sowie die Benennung von Elementen sowie von entsprechenden Datentypen. Seine Inhalte sind bei der Prüfung wichtig, ob die Instanzdokumente sich an die getroffenen Regelungen halten, wobei die Prüfung für das XSL-Transformationsdokument sicherstellt, dass die Transformation durch den Zugriff auf die vorhandenen Elemente mit ihren sonstigen Eigenschaften erfolgreich verläuft.

XSL-Transformationsdokument

In ihm sind die Transformationsregeln für die Umwandlung der XML-Datenströme in andere Formate enthalten. Es ist darauf angewiesen, dass die Regelungen im XSD-Regeldokument exakt eingehalten werden, da es selbst auf diese Regelungen zurückgreift, um Elemente zunächst zu identifizieren und dann auch zu verarbeiten.

 

Dokumenttypen und ihre Funktion bei XML-Verwendung

Für die Überprüfung gibt es zwei Dimensionen, in denen unterschiedliche Ergebnisse erreicht werden können:

  • Wohlgeformt: Ein XML-Dokument ist wohlgeformt, wenn die Syntax korrekt eingesetzt wird, d.h., Attribute in Anführungszeichen gesetzt, leere Elemente extra ausgezeichnet und die allgemeinen Regeln der Namenskonvention beachtet werden:
    • Das erste Zeichen eines Namens muss ein Buchstabe, ein Unterstrich oder ein Doppelpunkt sein.
    • Gültige Zeichen sind Buchstaben, Unterstriche, Ziffern, Bindestriche sowie Punkte und Doppelpunkte.
    • Streng verboten ist die Verwendung des Wortes XML in all seinen Varianten als Namensbeginn, da geschützt ist.
  • Gültig : Ein XML-Dokument ist gültig, wenn die benutzte Tag-Struktur der Anwendungslogik oder dem inhärenten Sinn des Dokuments genügt, d.h. soweit die Regelungen des Entwicklers erfüllt sind. Diese Regeln befinden sich in einem XML Schema-Dokument.

Grundprinzip der Prüfung

Ziel sollte also stets ein wohlgeformtes – da sonst ein allgemeiner Fehler auftritt – und gleichzeitig gültiges Dokument sein – da sonst ein spezieller Fehler in der Anwendungslogik auftritt.

Im Ergebnis hat man also zwei Prüfungsschritte: zum einen die Prüfung auf Wohlgeformtheit (Syntaxprüfung) und zum anderen die Gültigkeitsprüfung (Verwendungsprüfung). Letztere muss nicht unbedingt erfolgen, da sie von der Existenz eines entsprechenden Schema-Dokuments mit Verwendungsangaben abhängt. Der Einsatz eines solchen Schema-Dokuments führt entweder zur Erkenntnis, dass das Instanzdokument gültig im Sinne des Schema-Dokuments ist oder nicht. Gültig und wohlgeformt ist also zur gleichen Zeit erstrebte Ziele, da sie zum einen nachweisen, dass die Regelungen des XML-Standards erfüllt sind und zum anderen die Regelungen des Schema-Dokuments befolgt wurden.

Auswahl an XML-Standards

Für die Verarbeitung, Validierung und sonstige Nutzung von XML sowie die Speicherung von Daten, die in vielen Anwendungen und Situationen in ähnlicher Form genutzt werden, gibt es eine Reihe von Standards. Einige davon sind vom W3C, viele andere dagegen von anderen Gremien wie ISO oder OASIS sowie Industrievereinigungen, Vereinen oder beliebigen Zusammenschlüssen erstellt worden.

Sie lassen sich in unterschiedlichen Gruppen einordnen, die in der Abbildung angegeben sind. Die Liste an möglichen Standards ist keinesfalls abschließend. Es gibt sicherlich 30 bis 50 Standards, die diesen Namen verdienen und eine hinreichend große Reichweite aufweisen. Einige der Standards, die insbesondere für die Abbildung von Datenmodellen existieren, welche von vielen Unternehmen/Organisationen ansonsten immer wieder neu erschaffen werden würden, sind noch sehr neu und haben sich noch nicht im notwendigen Maße ausgebreitet, können aber vielleicht auf eine große Zukunft hoffen. Für diese Standards existieren DTDs oder XML Schemata, in denen das entsprechende Modell hinterlegt ist.

Andere Standards sind ebenfalls in XML verfügbar wie bspw. XML Schema für die Modellierung oder XSLT/XSL-FO für die Transformation. Dies ist aus theoretischen Gesichtspunkten besonders interessant, weil man hier sehen kann, welch herausragendes Werkzeug XML ist. XML Schema ist eine XML-Grammatik, welche XML-Dokumente modelliert und mit der man XML-Daten validieren kann und welche darüber hinaus auch noch selbst in XML formuliert wird. XSLT dagegen ist eine deklarative Programmiersprache, die selbst wieder in XML programmiert wird und mit der man in Kombination mit einem geeigneten Prozessor XML-Dokumente in andere Formate umwandeln kann.

Darüber hinaus gibt es eine Reihe von Werkzeugen, die nicht als Standards verstanden werden können, die aber dennoch für die Nutzung von XML in den einzelnen Programmiersprachen intensiv genutzt werden. Dabei handelt es sich um spezielle Bibliotheken für die Verarbeitung oder Erstellung von XML-Daten. Als Beispiel ist in der Abbildung XMLReader und XMLWriter enthalten, zwei sprechende Namen, die tatsächlich so in verschiedenen Programmiersprachen als Klassen/Namensräume/Pakete im jeweiligen Framework der Sprache enthalten sind.

Vorteile von XML

XML bietet eine Reihe von Vorteilen, welche die schnelle und umfassende Verbreitung sehr gefördert haben. Teilweise befürchten insbesondere Datenbankprogrammierer und Administratoren, XML könnte in irgendeiner Weise eine Datenbank ersetzen. Ab und an trifft man auch auf Verantwortliche, die eine solche Überlegung pflegen oder wenigstens grundsätzlich erwogen haben. Dazu wird es nicht kommen. Vielmehr haben sich, wie man in den letzten Jahren gut gesehen hat, die großen DB-Hersteller wie Oracle, Microsoft und IBM in ihren Datenbanksystemen einen neuen XML-Datentyp eingeführt, der es den DB-Produkten ermöglicht, sich diese neue Technologie der Datenspeicherung und –abbildung gleichfalls einzuverleiben.

Zu den gerade genannten Vorteilen von XML im Gegensatz zu CSV und insbesondere sonstigen Protokollformaten zählen u.a. die folgenden:

Einfachheit

XML ist, wenn man sich grundlegend damit beschäftigt, ein sehr einfacher Standard, der durch die starke Verbreitung von HTML nur wenig Neues für HTML-versierte Entwickler bietet. Damit ist allerdings auch schon die erste Problemstelle aufgedeckt, denn mehr als die spitzen Klammern, die Verwendung von Attributen und der korrekten Verschachtelung haben HTML und XML nichts gemeinsam. Stattdessen dient XML dem allgemeinen Datenaustausch und der ebenso allgemeinen Datenmodellierung. Doch die Ähnlichkeit mit einer noch einfacheren Syntax und die gute Lesbarkeit von XML-Strukturen im Gegensatz zu Protokollen begünstigen eine starke und vor allen Dingen schnelle Verbreitung. HTML bzw. seine wohlgeformte Variante XHTML dagegen entspricht einer gegebenen Modellierung von Strukturen in XML, die für die Inhaltspräsenation in so genannten Browser-Programmen eingesetzt werden kann.

Vielseitiger Einsatz

Da – wie gerade schon erwähnt – XML für die Datenmodellierung und den Datenaustausch eingesetzt werden kann, ist es ebenso vielseitig verwendbar wie eine Datenbank. Praktisch überall dort, wo Daten anfallen, ausgetauscht und verarbeitet werden, lässt sich eine Lösung grundsätzlich auch in XML denken. Aus technischen Einschränkungen heraus oder aufgrund von zusätzlichen Anforderungen ist dies nicht immer die endgültige Wahl, doch ließe sich wenigstens eine Alternativ-Lösung in XML denken. Dies liegt nicht daran, dass XML besondere Fähigkeiten hat, sondern schlichtweg daran, dass es eine gute Möglichkeit ist, Daten zu verarbeiten. Nichtsdestotrotz wird man für allereinfachste Datenaustauschziele weiterhin auch kommagetrennte Werte verwenden oder aus XML heraus solche CSV-Werte erstellen oder den umgekehrten Weg beschreiten, und aus CSV-Daten XML-Strukturen generieren müssen. Vielseitige Verwendung für Daten in Textform oder mit notwendigen Verschachtelungen und komplexen Strukturen, die in relationalen Datenbanken nicht akzeptabel abgebildet werden können, zeichnen XML aus. Gerade hinsichtlich des Datenaustauschs zwischen verschiedenen Datenbanken gibt es viele gemischte Lösungen, die gleichzeitig XML und Text in Form von CSV oder auch SQL verwenden. Dabei werden oft die verschiedenen Textformate aus XML-Srukturen heraus generiert.

Gute Lesbarkeit

Im Gegensatz zu kommagetrennten Werten oder gar Protokollen, welche Daten durch XML-ähnliche Steuerzeichen trennen, bietet XML im Normalfall eine schnell zu verstehende Lesbarkeit. Lange Dokumente oder tief verschachtelte Strukturen eignen sich zwar nicht notwendigerweise für eine direkte Lektüre ohne Transformation in ein tabellen- oder listenorientiertes Format, aber bei gut gewählten Bezeichnern und einem grundlegenden Verständnis des Themas oder der modellierten Datenstrukturen wird eine XML-Datei durch die Auszeichnung mit Hilfe der XML-Tags immer einfacher und besser zu lesen sein als kommagetrennte Werte ohne Auszeichnung oder Protokolldaten mit kryptischen Steuerzeichen. Ein frühes Gegenargument, das bei der Verwendung von XML auftauchte, beruhte darauf, dass durch die Auszeichnung der Daten sehr viel Speicherplatz einer Datei allein für die Datendarstellung und –aufbereitung verwendet wird. Dies ist unter den beiden Stichwörtern Nutzdaten und Beschreibungsdaten bekannt. Sind dazu diese Daten auch noch sehr kurz, kann der Fall eintreten, dass sogar mehr Dateispeicherplatz für die XML-Strukturen verwendet wird als für die eigentlichen Daten. Dies sollte allerdings bei heutiger Festplattengröße sowie Netzwerkübertragungsgeschwindigkeit einen zu vernachlässigenden Aspekt darstellen. XML-Daten sind natürlich nur dann gut lesbar, wenn die XML-Tags, welche die Daten auszeichnen, für den Leser verständlch sind. Gerade in speziellen Anwendungen im Finanz-, Wissenschafts- oder Technikbereich benötigt ein dem Gebiet grundsätzlich fern stehender Leser dann eine entsprechende Übersetzungshilfe. Es entfällt allerdings das bei CSV-Daten übliche Zählen (und vor allen Dingen Verzählen) von Positionen, was gerade bei breiten Strukturen mit vielen einzelnen Feldern Hürden für die Datenzugänglichkeit aufbaut.

Standardisierung

Protokolldaten in unterschiedlichen Systemen bzw. Industriezweigen beruhten und beruhen natürlich auch heute noch auf Standardisierungsabkommen zwischen Unternehmen und Organisationen. XML oder das W3C bieten auch keine Möglichkeiten, Datenstrukturen für jedweden Einsatzbereich einfach von der W3C-Webseite herunterzuladen und direkt weiterzuverwenden, aber der Grundansatz und das theoretische Fundament von XML sowie angrenzende Technologien wie XML Schema, XSLT, RDF oder XML Topic Maps liegen jeweils als Standards vor. Viele Industriezweige besitzen Schemata für ihre Datenstrukturen, welche weit verbreitet sind und sich auch gut verwenden lassen. Im Gegensatz zu Protokollen, in denen zumindest dieser Zustand auch vorherrscht(e), bietet die Verwendung von XML mit XSLT eine wirklich sehr einfache Möglichkeit, Daten auszutauschen und in andere Formate zu transformieren bzw. über das gesamte Namensraumkonzept auch Daten mit gleicher Auszeichnung oder fremden Strukturen zu mischen und weiterhin getrennt zu adressieren und zu verarbeiten. Die Vorteile der Standardisierung bei XML liegen also im Wesentlichen nicht darin, dass es eine große Auswahl an Standard-Schemata gibt, sondern vielmehr, dass die Grundkonzeption (XML selbst), die einfache Datenmodellierung (XML Schema), die semantische Datenmodellierung (RDF, XTM, OWL), die Adressierung (XPath, XQL) sowie die Transformation (XSLT, XSL-FO) herstellerungebunden vom W3C durchgeführt werden. Die Herstellerungebundenheit darf natürlich nicht überschätzt werden, weil die bedeutenden IT-Unternehmen mit entsprechender Marktmacht selbstverständlich alle auch im W3C Mitglied sind und dort auch Einfluss ausüben. Doch zumindest handelt es sich um ein Gremium, das nicht durch schiere Marktmacht dominiert wird, sondern seine Entscheidungen in einem Prozess trifft, in dem viele Parteien eingebunden sind. Neben dieser Standardisierung, welche die Basisarchitektur und damit die allgemeinen Bereiche Modellierung, Validierung, Abfrage und Umwandlung betrifft, gibt es eine Reihe von Versuchen, für bestimmte Sinnzusammenhänge Referenzmodelle und sogar feste Standards zu etablieren, welche den Datenaustausch noch weiter vereinfachen, da eine Umwandlung komplett entfällt. Man kann nicht erwarten, dass jeder Datenbereich überhaupt beschrieben wurde oder gar so gut modelliert wurde, dass die Modellierung exakt für das eigene Problem genutzt werden kann. Doch lohnt sich immer die Überlegung, ob möglicherweise ein solcher Standard existiert, um wenigstens Anregungen und Denkanstöße zu erhalten. Teilweise droht man allerdings auch, das Rad neu zu erfinden, sodass eine Kontrolle, ob ein Modellierungsversuch vorliegt, teilweise auch zu der Erkenntnis führt, dass andere Organisationen (Unternehmen, Regierungen und sonstige Körperschaften) bereits umfangreiche Modellierungsarbeiten geleistet haben und daher die Entscheidung, einen eigenen Weg zu gehen, bereits erfordert, für dieses Verhalten eine gute Begründung zu finden.

XML-Standards wie XML Schema, DTD, OWL, RDF, XSLT, XPath, XQuery in einer Übersicht
XML-Standards wie XML Schema, DTD, OWL, RDF, XSLT, XPath, XQuery in einer Übersicht

Aufgabenstellungen mit XML-Einsatz

Schnittstellen

Erstellung einer Import-/Export-Schnittstelle auf Basis von XML, wobei aus relationalen Daten XML-Daten in einem bestimmten Format aus der Datenbank exportiert und XML-Daten in einem bestimmten Format in die Datenbank exportiert werden sollen. Dabei müssen Sie für den Export-Vorgang mit Hilfe von Abfragen oder geeigneten Programmen relationale Daten mit sich wiederholenden Datensätzen, Verknüpfungen und Hierarchien in Form von XML zusammensetzen, während beim Import-Vorgang dagegen eine Zerlegung von XML stattfinden muss, um die vorhandenen relationalen Strukturen direkt aus dem XML zu befüllen.

Datenbank-Einsatz

Integration von XML in der Datenbank, wobei nun einzelne Felder oder der gesamte Datensatz einer Tabelle in Form von XML aus einer Anwendung oder einen Import-Vorgang übernommen wird. Hierbei liegt die Aufgabenstellung so, dass man für ausgewählte Datenelemente keine relationale Zerlegung wünscht oder aufgrund von eher dokumentenorientierten Strukturen auch nicht erreichen kann und XML hier anstelle von binären großen Objekten oder langen Zeichenketten zum Einsatz kommt, da die XML-Verwendung für die Anwendungsentwicklung eine Reihe von Vorteilen bringt.

Serviceorientierte Architekturen (SOA)

Erstellung und Bereitstellung von Webservices für die Integration von mehreren Anwendungen auf unterschiedlichen Plattformen oder in verschiedenen Programmiersprachen.

Verarbeitung und Transformation

Allgemeine Verarbeitung von XML, wobei in diesem Aufgabengebiet eine Reihe von allgemeinen Arbeiten durchgeführt werden, die sich typischerweise bei XML-Anwendungen stellen und in diesem Fall mit Hilfe der jeweiligen Programmiersprache und sogar innerhalb einer Datenbank umgesetzt werden können. Zu diesen Standardaufgaben gehören: Validierung von XML-Daten auf Basis von XML Schema-Datenstrukturen und –regeln, Transformation und Verarbeitung von gespeicherten oder übernommenen XML-Inhalten mit den Werkzeugen DOM (Document Object Model) oder XSLT (eXtensible Stylesheet Language for Transformations) sowie die Durchführung von Abfragen auf XML-Daten unter Verwendung von XPath oder XQuery.