Extensible Markup Language
XML (Extensible Markup Language) ist ein Begriff aus der Computertechnik und bezeichnet einen Standard zur Definition von Auszeichnungssprachen, der als vereinfachte Teilmenge von SGML konzipiert wurde.
Gleichzeitig steht XML in einer losen Verwandtschaft zu HTML, welches ursprünglich (d. h. bis einschließlich zur Spezifikationsversion 4.01) selbst als Anwendung von SGML definiert wurde. Mit der "Extensible HyperText Markup Language" (XHTML) wurde der Übergang zu XML als Definitionsbasis vollzogen. Grund dafür war die einfachere Syntax und damit die Entwicklung einfacherer Parser (die Definition von SGML umfasst 500 Seiten, jene von XML bloß 26).
Die Namen der einzelnen Strukturelemente für eine bestimmte Auszeichnungssprache lassen sich frei wählen, diese Auszeichnungssprachen können dabei alle möglichen Daten beschreiben, als prominentestes Beispiel Text, aber auch Grafiken oder abstraktes Wissen. Ein Grundgedanke hinter XML ist es, Daten und ihre Repräsentation zu trennen. Also beispielsweise Wetterdaten einmal als Tabelle oder als Grafik auszugeben, aber für beide Anwendungen die gleiche Datenbasis im XML-Format zu nutzen.
Fachtermini
Ein XML-Dokument ist wohlgeformt, d.h. es hält sämtliche Regeln für XML ein (was z. B. Verschachtelungen von Elementen betrifft).
Programme, die XML-Daten verarbeiten, nennt man XML-Parser.
Soll XML für den Datenaustausch verwendet werden, ist es von Vorteil, wenn das Format mittels einer Dokumenttypdefinition oder einem XML Schema definiert ist. Ein XML-Dokument, welches das durch eine Dokumenttypdefinition oder ein XML Schema beschriebene Format einhält, heißt gültig.
Aufbau eines XML-Dokuments
Beispiel einer XML-Datei
<?xml version="1.0"?> <enzyklopaedie> <eintrag> <stichwort>Genf </stichwort> <eintragstext>Genf ist der Sitz von...</eintragstext> </eintrag> </enzyklopaedie>
XML-Dokumente besitzen einen physischen und einen logischen Aufbau.
Der physische Aufbau eines XML-Dokumentes besteht aus
- Entitäten. Die erste Entität ist die Hauptdatei des XML-Dokuments. Weitere mögliche Entitäten sind über
- Entitätenreferenzen (
&name;
für das Dokument bzw.%name;
für die Dokumenttypdefinition) eingebundene Zeichenketten, eventuell auch ganze Dateien, sowie - Referenzen auf Zeichenentitäten zur Einbindung einzelner Zeichen, die über ihre Nummer referenziert wurden (
&#Zahl;
, oder&#xHexadezimalzahl;
).
- Entitätenreferenzen (
- Eine XML-Deklaration wird optional verwendet, um XML-Version, Zeichenkodierung und Verarbeitbarkeit ohne Dokumenttypdefinition zu spezifizieren.
- Eine Dokumenttypdefinition wird optional verwendet, um Entitäten sowie den erlaubten logischen Aufbau zu spezifizieren.
Der logische Aufbau eines XML-Dokumentes ist ein hierarchisch strukturierter Baum. Als Baumknoten gibt es:
- Elemente, deren physische Auszeichnung mittels
- einem passenden Paar aus Start-Tag (
<Tag-Name>
) und End-Tag (</Tag-Name>
) oder - einem Empty-Element-Tag (
<Tag-Name />
) erfolgen kann,
- einem passenden Paar aus Start-Tag (
- Attribute als bei einem Start-Tag oder Empty-Element-Tag geschriebene Schlüsselwort-Werte-Paare (
Attribut-Name="Attribut-Wert"
) für Zusatz-Informationen über Elemente (eine Art Meta-Information), - Verarbeitungsanweisungen (
<?Ziel-Name Parameter ?>
, Engl. Processing Instruction) - Kommentare (
<!-- Kommentar-Text -->
) - Text, welcher als normaler Text oder in Form eines CDATA-Abschnittes (
<![CDATA[ beliebiger Text ]]>
) auftreten kann.
Ein XML-Dokument muss genau ein Element in der obersten Ebene enthalten. Unterhalb von diesem Dokumentelement können weitere Elemente verschachtelt werden.
Zur Spezifikation des logischen Aufbaus werden die Dokumenttypdefinitionen durch das umfangreichere XML Schema abgelöst, welches keine Möglichkeit zur Definition von Entitäten, jedoch einen adäquaten Ersatz für Entitäten besitzt. Processing Instructions werden in der Praxis meist eingesetzt, um in XML-Dokumenten Verarbeitungsanweisungen in anderen Sprachen einzubauen. Ein Beispiel dafür ist PHP, dessen Verarbeitungsanweisungen in XML-Dokumenten mit einer PHP-Verarbeitungsanweisung, z.B. <?php print "Hello, World";?>
eingebaut werden können.
Einige Web-Browser können XML-Dokumente mit Hilfe eines eingebauten XML-Parsers direkt darstellen. Dies geschieht in Verbindung mit einem Stylesheet. Diese Transformation kann die Daten in ein komplett anderes Format umwandeln, das Zielformat muss nicht einmal XML sein.
Vorgänger von XML
Obwohl der Vorgänger SGML bereits weitaus umfangreicher war, kam es nie zu einer breiten Akzeptanz in der Öffentlichkeit. Der Grund dafür liegt in der Komplexität SGMLs, die die Softwareentwicklung stark erschwert. Der Bedarf nach einem unbeschränkten weltweiten Informationssaustausch und die Popularität von HTML, brachten das deutlich einfachere XML hervor, das in den letzten Jahren einen starken Boom erfuhr.
Kerntechnologien
Die Kerntechnologien im XML Umfeld kann man grob aufteilen in: APIs zur Verarbeitung von XML und Sprachen um XML Dateien zu beschreiben.
APIs zur Verarbeitung von XML
SAX (Simple API for XML) ist eine standardisierte Möglichkeit, wie eine XML Datei durch einen Parser bearbeitet wird. Hierbei wird ein Datei-Strom in einen Strom von Ereignissen umgewandelt. Programme können sich für einzelne Ereignisse registrieren, um bei Bedarf ihre Arbeit zu verrichten. Die Eingabedaten werden rein sequentiell verarbeitet. Ein Vorteil von SAX ist, dass nicht die gesamte XML Datei im Speicher sein muss. Das ist aber dann ein Nachteil, wenn man viele Informationen, die über die ganze Datei verstreut sind, zur Verarbeitung benötigt.
DOM (Document Object Model) ist der zweite Weg, um XML Dateien auszuwerten und wurde vom W3C standardisiert. Er stellt, wie der Name schon sagt, ein standardisiertes Objektmodell zur Verfügung, mit dessen Hilfe der Inhalt der XML-Datei ausgewertet oder manipuliert werden kann. Zum Aufbauen des Objektbaumes muss jedoch zunächst die gesamte Datei eingelesen werden, wofür viel Speicher benötigt wird. Vorteilhaft ist, dass alle Elemente in einer hierarchischen Struktur vorliegen und auf alle gleichermaßen zugegriffen werden kann, da die Elemente zueinander in Beziehung stehen (Eltern, Geschwister, Kinder). Größter Nachteil von DOM ist der hohe Speicherbedarf, der sich proportional zur Größe der Eingabedatei verhält. Beide Modelle haben aufgrund ihrer Vor- und Nachteile unterschiedliche Anwendungsgebiete.
Metasprachen
Um die Struktur von XML Dokumenten zu beschreiben bedient man sich so genannter Schemasprachen. Die zwei bekanntesten sind DTD und XML Schema.
DTD
Eine DTD (Dokumenttypdefinition) ist eine Beschreibung eines XML Dokuments. Sie wurde zusammen mit XML standardisiert. Mit einer DTD kann allerdings nicht sehr strikt beschrieben werden, wie eine XML Datei aussehen darf. Ein weiterer Nachteil ist die Tatsache, dass die DTD in einer eigenen Sprache abgefasst werden muss.
XML Schema
XML Schema ist die moderne Möglichkeit, die Struktur von XML Dokumenten zu beschreiben. XML Schema bietet auch die Möglichkeit, den Inhalt von Elementen und Attributen zu beschränken, z. B. auf Zahlen, Datumsangaben oder Texte, z. B. mittels regulären Ausdrücken. Ein Schema ist selbst ein XML Dokument, welches erlaubt, komplexere Zusammenhänge als mit einer DTD zu beschreiben.
Weitere Schemasprachen
Weitere Schemasprachen sind RELAX NG, Schematron und Examplotron.
Überblick über XML Sprachen
XML Sprachen kommen in allen erdenklichen Aufgabengebieten zum Einsatz.
Text
Grafik
Multimedia
XML Infrastruktur
Weitere
- RDF
- XMPP (Jabber)
- XUL
- CML - Chemical Markup Language
- MathML - Mathematic Markup Language
- XBRL - eXtensible Business Reporting Language
- ebXML - E-Business XML
- XForms - XML für Web-Formulare
- XAML
- ONIX
- X3D - Extensible 3D, 3D-Modellierungssprache
Hier noch nicht behandelt:
Siehe auch: RDF, XTM, XML-Datenbank, Spezial:Export
XML-Anwendungen
- Editoren
- Open source
- Nicht open source
- Office
- OpenOffice.org
- Microsoft Office (Seit der Version "Office 2003" ist das Editieren von speziellen XML Dateien möglich, zuvor war nur eine unzulängliche XML-Unterstützung vorhanden)
- AbiWord
- Anzeigeprogramme
- Mozilla
- Netscape (ab Version 6)
- Internet Explorer
- Opera
Literatur
- Stefan Mintert (Hrsg.): XML & Co - Die W3C-Spezifikationen für Dokumenten- und Datenarchitektur, Addison-Wesley, München, ISBN 3827318440; Unter Mitwirkung des deutschen W3C-Büros.
Weblinks
- Word Wide Web Consortium über XML (englisch)
- XML in 10 Punkten
- XML in der Praxis - Online-Buch
- Vorlesung über XML
- Publizieren mit XML (Universität Hannover)
- SELFHTML XML-Einführung
- Deutsche Übersetzung der XML-Spezifikation
- Datenbanken und XML (Buch und Literaturübersicht)
- XML-Infos der Uni Bielefeld
- xml.apache.org (englisch)
- XML-Tutorial für Einsteiger
- XML-, DTD- und XSL-Tutorium