XML steht für „Extensible Markup Language“, auf Deutsch übersetzt „Erweiterbare Auszeichnungssprache“. Es handelt sich nicht um eine Programmiersprache, sondern um eine Beschreibungssprache für Daten. Sie verfolgt als wichtigstes Ziel, die längst unüberschaubare Vielfalt an Datenformaten in der EDV zu vereinheitlichen. XML-Dateien sind Textdokumente, die mit gewöhnlichen Editoren bearbeitet werden können. Die im Dokument enthaltenen Daten werden mit Hilfe von Auszeichnungen, sogenannten XML-Tags, strukturiert und bezeichnet. XML-Tags stehen in spitzen Klammern, die den Namen des dadurch bezeichneten Elements beinhalten, z.B. „{ElementName}“. Das Ende des Elements wird durch einen End-Tag markiert, das wie das dazugehörige Start-Tag aussieht, jedoch nach der öffnenden Klammer zusätzlich einen Schrägstrich enthält. Für das eben genannte Beispiel also „{/ElementName}“. Darüber hinaus gibt es in sich geschlossene leere Elemente, die direkt nach dem Elementnamen einen Schrägstrich enthalten, etwa wie in „{ElementName /}“. Elemente können hierarchisch gruppiert werden, etwa indem man Elemente für Straße, Postleitzahl und Ort zu einem übergeordneten Element „Adresse“ zusammenfasst. Neben dem Elementnamen kann ein XML-Tag Attribute enthalten, die das bezeichnete Element näher beschreiben. Attribute werden nach dem Elementnamen in der Klammer notiert, der Attributwert steht dabei in Anführungszeichen. Ein Beispiel für ein Element mit Attributen ist „{Fahrzeug Farbe=“rot“ Typ=“PKW“}“. Das Programm, das die XML-Datei einliest und interpretiert (der XML-Parser), ist verantwortlich für die korrekte Zuordnung der Elemente und ihrer Attribute.
XML ist eine Anwendung der Standard Generalized Markup Language (SGML). Wichtigster Schwerpunkt dieser grundlegenden Definition ist die Verwendung von Auszeichnungen (Tags) in Textdokumenten und die Trennung von Daten und Layout. Die semantische Bedeutung der im Dokument enthaltenen Daten wird ebenfalls vom Dokument selbst getrennt. XML bildet seinerseits die Grundlage für zahlreiche spezialisierte Anwendungen. Einige Beispiele solcher XML-Anwendungen sind etwa XHTML, eine Neuformulierung von HTML (der Auszeichnungssprache zur Erstellung von Webseiten) in XML. Das SVG-Format beschreibt Grafiken mittels XML, es gibt mehrere Anwendungen zur Verarbeitung von Geodaten, MathML bildet technisch-wissenschaftliche und mathematische Daten ab. Auch moderne Office-Pakete verwenden zunehmend auf XML basierende Dateiformate zur Speicherung von Daten aus Textverarbeitungen, Tabellenkalkulationen, Datenbanken usw.
Wohlgeformtes und gültiges XML
In der Regel sollte man sich bemühen, „wohlgeformtes“ XML zu erstellen, indem alle geltenden XML-Regeln eingehalten werden. Die wichtigsten davon sind das Vorhandensein genau eines Wurzelelements, das die enthaltenen Elemente umschließt, und das Verwenden jeweils von Start- und Endtags für jedes Element in der richtigen Reihenfolge bei verschachtelten Elementen. Die übrigen Regeln drehen sich um die korrekte Einhaltung von Schreibweisen und die Zuordnung von Attributen. Gültig ist ein wohlgeformtes XML-Dokument, wenn es zudem einen Eintrag beinhaltet, der auf eine Grammatik in Form eines XML-Schemas (XSD, Abkürzung für XML Schema Definition) oder einer Dokumenttypdefinition (DTD) verweist und gemäß dieser Grammatik formuliert ist. In einer solchen Grammatik sind üblicherweise Regeln enthalten, die Beziehungen zwischen den Daten beschreiben. So könnte darin definiert sein, dass eine Adresse eines bestimmten Aufbaus bedarf, wie das Vorhandensein genau eines Ortes mit einer Postleitzahl, dass eine Person mindestens eine Adresse besitzen muss, dass solche Daten aus Buchstaben oder aus alphanumerischen Zeichen gebildet werden usw.
Neben den Elementen und ihren Attributen können XML-Dateien Kommentare enthalten in der Form „{!– Dies ist ein Kommentar –}“. Kommentare werden vom XML-Parser ignoriert und dienen z.B. dem Leser dieser Datei als Erläuterung. Ebenfalls zulässig sind Verarbeitungsanweisungen, die erkennbar sind an einem Fragezeichen jeweils nach der öffnenden und vor der schließenden spitzen Klammer. Verbreitet ist z.B. das Einbinden von PHP-Anweisungen für eine serverseitige Verarbeitung der XML-Datei in der Form „{?php echo „Eine PHP-Anweisung“; ?}“. Ferner sind Abschnitte mit konstanten Textdaten gestattet. Sie werden durch eine Spezialform eines Kommentars gekennzeichnet in der Form „{![CDATA[ hier steht irgendein Text]]}“. Der so gekennzeichnete Text wird nicht durch den XML-Parser ausgelesen und nicht interpretiert.
XML und XML-Schemata oder DTDs beziehen sich nur auf die Beschreibung des Inhalts und ihrer semantischen Bedeutung, nicht aber auf die Darstellung. Um XML-Dateien in einem Programm wie einem Webbrowser darstellen zu können, kann man entweder Cascading Style Sheets (CSS) verwenden oder XSL (Extensible Stylesheet Language) und die dazugehörige Transformationssprache XSLT. XSLT transformiert bereits auf dem Server XML-Daten in HTML, dabei ist in Grenzen auch eine logische Verarbeitung möglich wie etwa eine bedingte Formatierung mit einem „if“-Statement. Das ermöglicht eine vom Browser unabhängige Darstellung.
Gängige XML-Parser
Anwendungsprogrammierer können eigene XML-Parser implementieren, um auf den strukturierten Inhalt der XML-Datei zuzugreifen. Es stehen jedoch in allen gängigen Programmiersprachen Parser zur Verfügung, auf die man zurückgreifen kann und die grundlegende Funktionen wie die Validierung von Dokumenten, also z.B. die Prüfung auf Gültigkeit des Dokuments, enthalten. In den Java-APIs gibt es für verschiedene Zwecke unterschiedliche Implementierungen. Mit SAX (Abkürzung für „Simple API for XML“) lassen sich XML-Daten effizient sequenziell einlesen und in Dateien schreiben. JAXB bietet darüber hinaus ein Data Binding, das automatisch Java-Klassen aus XML-Schemata generieren kann. Ein anderes Konzept als SAX verfolgt DOM (Document Object Model), für das es mehrere Java-Implementationen gibt. Statt eine XML-Datei Zeile für Zeile zu lesen und zu interpretieren, wird bei DOM die gesamte XML-Datei gelesen und in Form eines Objektbaumes als Java-Objekt bereitgestellt. So ist eine komfortable Navigation innerhalb der Baumstruktur möglich, ebenso das einfache Erstellen, Ersetzen oder Entfernen von ganzen Knoten oder einzelnen Elementen. Die Java-Implementation JDOM bedient sich der SAX-API, um einen solchen DOM-Baum zu serialisieren und damit in einer Datei zu speichern. Ähnliche Bibliotheken und APIs stehen u.a. für Perl, Python, C++ und für das .net-Framework zur Verfügung.
Zusammenfassung
XML (Extensible Markup Language) ist eine Beschreibungssprache für Daten, die darauf abzielt, die heterogenen Datenformate in der Datenverarbeitung zu vereinheitlichen. Sie benutzt Tags zur Strukturierung und kann durch Attribute Elemente näher beschreiben. XML ist eine Anwendung der Standard Generalized Markup Language (SGML) und dient als Basis für viele spezialisierte Anwendungen wie XHTML und SVG.
Um wohlgeformtes XML zu erzeugen, müssen bestimmte Regeln eingehalten werden, darunter das Vorhandensein eines Wurzelelements und die korrekte Anwendung von Start- und Endtags. Ein XML-Dokument ist gültig, wenn es einem XML-Schema oder einer Dokumenttypdefinition (DTD) entspricht. Zusätzlich können Kommentare und Verarbeitungsanweisungen in der XML-Datei eingefügt werden.
Zur Darstellung von XML-Daten können Cascading Style Sheets (CSS) oder Extensible Stylesheet Language (XSL) und die Transformationssprache XSLT verwendet werden. Diese Technologien ermöglichen die browserunabhängige Darstellung und logische Verarbeitung von XML-Daten.
Für die Programmierung und Verarbeitung von XML-Daten stehen diverse XML-Parser zur Verfügung. In Java beispielsweise können SAX für das sequenzielle Einlesen und JAXB für Data Binding verwendet werden. Es gibt auch DOM-Implementationen, die eine Baumstruktur des XML-Dokuments ermöglichen, sowie Bibliotheken für andere Programmiersprachen wie Perl und Python.
Häufige Fragen und Antworten
Was bedeutet XML?
XML steht für „Extensible Markup Language“ und ist eine Beschreibungssprache für Daten. Sie dient dazu, die Vielfalt an Datenformaten in der EDV zu vereinheitlichen und strukturiert darzustellen. XML-Dateien enthalten Textdokumente, die mit Auszeichnungen (Tags) versehen sind, um die Daten zu strukturieren und zu bezeichnen.
Wie erstellt man wohlgeformtes XML?
Um wohlgeformtes XML zu erstellen, sollten die geltenden Regeln der XML-Struktur eingehalten werden. Dazu gehört unter anderem das Vorhandensein eines Wurzelelements, das die anderen Elemente umschließt, sowie die korrekte Verwendung von Start- und Endtags für jedes Element in der richtigen Reihenfolge.
Welche Rolle spielt XML in der Datenverarbeitung?
XML spielt eine zentrale Rolle in der Datenverarbeitung, da es dazu dient, verschiedene Datenformate zu vereinheitlichen und strukturiert zu speichern. Es ermöglicht eine einheitliche Beschreibung von Dateninhalten und bietet somit die Grundlage für den Austausch und die Verarbeitung von Daten in unterschiedlichen Anwendungen und Systemen.