Newsletter abonnieren   Newsletter abonnieren
Marcel WinatschekPhilosophische Texte über Gestaltung, Informatik und digitale Populärkultur
Extensible Markup Language: Die Metasprache des Internets
© Dall-E

Extensible Markup LanguageDie Metasprache des Internets

Wir gehen im Studium gerade die aufregenden Grundlagen der Webtechnologien an und haben dort mit der strikten, logischen und deswegen auch irgendwie ganz netten Welt von XML begonnen. Das Tolle an XML ist, dass man es verwenden kann, um eigene Auszeichnungssprachen zu erstellen und so Daten strukturiert und einfach für interne sowie externe Systeme verarbeitbar zu machen.

Man kann mit XML diverse Informationen taggen, die man anschließend auf verschiedene Weise nutzen kann. Auf einem Adressetikett, einer Visitenkarte oder einem Briefpapier, auf einer Webseite oder in einer Liste von Daten mit ähnlichen Attributen. Die Möglichkeiten sind quasi grenzenlos.

Möchte man zum Beispiel einen effizienten Weg finden, um Daten, wie Bestellungen, Versandbestätigungen, Auftragsstatus oder Lagerbestand, mit Partnern und Lieferanten auszutauschen, dann ist XML genau richtig. Denn dadurch legt man einen bewährten sowie offenen Standard für den elektronischen Austausch fest.

XML steht für Extensible Markup Language und ist eine, wenn nicht gar die Metasprache, das heißt sie bietet grundlegende Konzepte für die Definition einer konkreten Sprache, wie eben HTML. XML ist keine Programmiersprache, sondern dient lediglich dazu, Daten darzustellen, damit man sie in Textform speichern kann.

Der Hauptzweck von XML ist die Serialisierung, das heißt das Speichern, Übertragen und Rekonstruieren beliebiger Daten. Damit zwei ungleiche Systeme Informationen austauschen können, müssen sie sich auf ein Dateiformat einigen. XML standardisiert diesen Prozess. XML ist so etwas wie eine Lingua franca für die Darstellung von Informationen.

XML hat sich für den Austausch von Daten über das Internet durchgesetzt. Es wurden Hunderte von Dokumentenformaten mit XML-Syntax entwickelt, darunter zum Beispiel RSS, Atom, Office Open XML, OpenDocument, SVG und XHTML. XML ist auch die Basissprache für Kommunikationsprotokolle wie SOAP und XMPP.

Viele industrielle Datenstandards wie Health Level 7, OpenTravel Alliance, FpML, MISMO und National Information Exchange Model basieren auf XML und den umfangreichen Funktionen der XML-Schema-Spezifikation. Im Verlagswesen ist die Darwin Information Typing Architecture ein XML-Industriedatenstandard. XML wird in großem Umfang zur Untermauerung verschiedener Veröffentlichungsformate verwendet.

Doch wie sieht ein XML-Dokument jetzt genau aus? Nehmen wir an, dass Thomas eine Nachricht an Lisa senden möchte. Der Betreff ist dabei Erinnerung und der dazugehörige Text ist Wir fahren am Samstag nach Disneyland!. In XML sieht das dann so aus: <nachricht><an>Lisa</an><von>Thomas</von><betreff>Erinnerung</betreff><text>Wir fahren am Samstag nach Disneyland!</text></nachricht>.

Ein XML-Dokument heißt wohlgeformt, wenn es alle XML-Regeln einhält. Das gilt zum Beispiel, wenn das Dokument genau ein Wurzelelement besitzt. Als Wurzelelement wird dabei das jeweils äußerste Element bezeichnet, zum Beispiel <html> in XHTML. Alle Elemente mit Inhalt besitzen einen Start- und einen Endtag, zum Beispiel <eintrag>Eintrag 1</eintrag>. Elemente ohne Inhalt können mit einem Leertag gekennzeichnet werden, zum Beispiel <eintrag />.

Die Start- und Endtags sind stufentreu paarweise verschachtelt. Das bedeutet, dass alle Elemente geschlossen sein müssen, bevor die Endtags des entsprechenden übergeordneten Elements oder die Starttags eines geschwisterlichen Elements erscheinen. Ein Element darf nicht mehrere Attribute mit demselben Namen haben. Attributwerte müssen in Anführungszeichen gesetzt werden, das heißt "..." oder '...'. Bei den Start- und Endtags wird zwischen Groß- und Kleinschreibung unterschieden. Zum Beispiel ist <entry></Entry> nicht gültig.

Wenn XML für den Datenaustausch verwendet werden soll, ist es von Vorteil, wenn das Format durch eine Grammatik, zum Beispiel eine Dokumenttypdefinition oder ein XML-Schema, definiert ist. Die Norm definiert ein XML-Dokument als gültig, wenn es wohlgeformt ist, den Verweis auf eine Grammatik enthält und sich an das durch die Grammatik beschriebene Format hält.

Programme oder Programmteile, die XML-Daten lesen, interpretieren und gegebenenfalls auf ihre Gültigkeit prüfen, werden XML-Parser genannt. Wenn der Parser die Gültigkeit prüft, ist er ein validierender Parser. XML-Dokumente können je nach Verwendungszweck und Strukturierungsgrad in dokumentenzentrierte und datenzentrierte Dokumente unterteilt werden. Die Grenze zwischen diesen Dokumenttypen ist jedoch fließend. Mischformen können als semistrukturiert bezeichnet werden.

Es gibt dabei drei Arten von Strukturen. Dokumentenzentriert, bedeutet, dass das Dokument einem Textdokument nachempfunden ist, das für den menschlichen Leser größtenteils auch ohne die zusätzlichen Metainformationen verständlich ist. XML-Elemente werden hauptsächlich verwendet, um Passagen des Dokuments semantisch zu kennzeichnen, und das Dokument ist nur schwach strukturiert. Aufgrund der schwachen Strukturierung ist eine maschinelle Verarbeitung schwierig.

Datenzentriert ist das Dokument, wenn es hauptsächlich für die maschinelle Verarbeitung bestimmt ist. Es folgt einem Schema, das die Entitäten eines Datenmodells beschreibt und festlegt, wie sich die Entitäten zueinander verhalten und welche Attribute die Entitäten haben. Das Dokument ist also stark strukturiert und weniger für die unmittelbare menschliche Nutzung geeignet.

Und semistrukturierte Dokumente stellen eine Art Mischform dar, die stärker strukturiert ist als dokumentenzentrierte Dokumente, aber schwächer als datenzentrierte Dokumente. Für datenzentrierte XML-Dokumente ist es typisch, dass Elemente entweder Elementinhalt oder Textinhalt haben. Der so genannte gemischte Inhalt, bei dem Elemente sowohl Text als auch untergeordnete Elemente enthalten, ist typisch für die anderen XML-Dokumente.

XML-Dokumente werden auf der untersten Ebene über eine spezielle Programmkomponente, einen XML-Prozessor, auch XML-Parser genannt, eingelesen. Er bietet eine Programmierschnittstelle, auch API genannt, über die die Anwendung auf das XML-Dokument zugreift.

Die XML-Prozessoren unterstützen dabei drei grundlegende Verarbeitungsmodelle. Eine DOM-API stellt ein XML-Dokument als Baumstruktur dar und gewährt beliebigen Zugriff auf die einzelnen Komponenten der Baumstruktur. DOM erlaubt nicht nur das Lesen von XML-Dokumenten, sondern auch die Manipulation der Baumstruktur und das Zurückschreiben der Baumstruktur in ein XML-Dokument. Aus diesem Grund ist DOM sehr speicherintensiv.

Eine SAX-API stellt ein XML-Dokument als sequentiellen Datenstrom dar und ruft für im Standard definierte Ereignisse vorgegebene Callback-Funktionen auf. Eine Anwendung, die SAX verwendet, kann ihre eigenen Unterprogramme als Callback-Funktionen registrieren und die XML-Daten auf diese Weise auswerten.

Eine XML-Pull-API verarbeitet Daten sequentiell und bietet sowohl eine ereignisbasierte Verarbeitung als auch einen Iterator. Sie ist sehr speichereffizient und kann einfacher zu programmieren sein als die SAX-API, da die Flusskontrolle beim Programm und nicht beim Parser liegt.

Häufig greift der Anwendungscode nicht direkt auf die Parser-API zu. Stattdessen wird XML weiter gekapselt, so dass der Anwendungscode mit nativen Objekten und Datenstrukturen arbeitet, die auf XML basieren. Beispiele für solche Zugriffsschichten sind JAXB in Java, der Data Binding Wizard in Delphi oder das XML Schema Definition Toolkit in .Net. Die Umwandlung von Objekten in XML erfolgt in der Regel bidirektional. Diese Umwandlung wird als Serialisierung oder Marshalling bezeichnet.

Ein XML-Dokument kann mit geeigneten Transformationssprachen wie XSLT oder DSSSL in ein anderes Dokument umgewandelt werden. Häufig wird die Transformation verwendet, um ein Dokument von einer XML-Sprache in eine andere XML-Sprache zu übertragen, zum Beispiel um es in XHTML umzuwandeln, damit das Dokument in einem Webbrowser angezeigt werden kann.

XML Schema ist die moderne Art, die Struktur von XML-Dokumenten zu beschreiben. XML Schema bietet auch die Möglichkeit, den Inhalt von Elementen und Attributen einzuschränken, wie auf Zahlen, Datumsangaben oder Texte, zum Beispiel mit Hilfe von regulären Ausdrücken. Ein Schema ist selbst ein XML-Dokument, das es erlaubt, komplexere, auch inhaltliche, Beziehungen zu beschreiben, als dies mit einer formalen DTD möglich ist.

Heute verwenden viele formale Sprachen die Syntax von XML. Damit ist XML ein wesentliches Werkzeug, um, wie vom W3C angestrebt, eine offene, für Menschen und Maschinen verständliche Informationslandschaft zu schaffen, auch Semantic Web genannt.

Auch die bekannte Dokumentensprache HTML wurde ab Version 4.01 als Extensible HyperText Markup Language in dieses Konzept integriert, so dass sie nun auf XML als Definitionsgrundlage basiert. Viele Gründe für die Verwendung von XML sind das zahlreiche Vorhandensein von Parsern und die einfache Syntax. Und jetzt, wo wir alles über XML gelernt haben, was es zu lernen gibt, wagen wir uns an das große, das basierte und das einzig wahre HTML heran. Aber das ist ein Thema für einen anderen Tag...

Freitag, der 17. März 2023

Kommentar schreiben