Extensible Markup Language
Aus Tuxfutter
Die Extensible Markup Language (XML) ist ein einfaches Textformat abgeleitet von SGML (ISO 8879:1986).
XML ist eher ein Meta-Format. Basierend auf XML lassen sich eigene Dateiformate, etwa für Datenbanken kreieren. Mit Java lässt sich das gut nutzen.
XML enthält dabei die Konventionen, wie das eigene Format aufgebaut werden muss, etwa wie Tags auszusehen haben. Eine Basis-Forderung ist dabei, daß die XML-Datei "well formed" ist, d.h. für jeden Start-Tag muß es einen passenden End-Tag geben und diese müssen richtig verschachtelt sein.
Welche Tags das eigene Format enthalten soll und welche Attribute, Inhalte etc erlaubt sind, wird in einer Document Type Definition (DTD) Datei festgelegt. Da eine DTD aber einem von XML verschiedenen Syntax folgt (ein Überbleibsel aus der SGML-Vergangenheit) wurde mit XML-Schema eine neue Definitionssprache geschaffen deren Syntax selbst wiederum ein XML-Format darstellt. Allerdings sind Werkzeuge die mit Schemadefinitionsdateien umgehen können noch selten.
Vorteil dieser Dokument-Definition ist, daß jede XML-Datei gegen diese Definition "validierbar" ist, d.h. ein maschinelles Verfahren kann simpel überprüfen, ob notwendige Elemente vorhanden sind. Auch der im Web bekannte HTML-Validator macht nichts anderes als HTML-Seiten gegen eine DTD zu prüfen.
Eine Übersetzung in darstellbare Formate wie (X)HTML oder SVG kann man mit XSLT leisten. Generell kann man hier sagen, daß XML bei Dokumenten den Inhalt vom Layout trennt. Wie das Layout eines Dokuments aussieht hängt schließlich stark vom verwendeten "Ausgabegerät" ab, z.B. kann man mit XML den Inhalt einer Webseite beschreiben und je nachdem ob das ein textbasierter Browser oder ein GUI-Browser oder evtl. auch nur ein WAP-fähiges Mobiltelefon abruft kann man unterschiedliche Stylesheets anwenden um für jedes "Endgerät" die optimale Ausgabe zu erreichen. Wie das funktionieren kann sieht man z.B. beim Linux Documentation Project. Die dort publizierten HowTos werden in Docbook-XML verfasst, und je nach Stylesheet kann man dann HowTos als Text, "Ein-HTML-Dokument" oder "Multi-HTML-Dokument" oder PDF erzeugen.
Bekannte, auf XML basierende Formate sind etwa XHTML (nicht HTML) und SVG. Auch die OpenOffice Suite, AbiWord, Gnumeric, KOffice und Scribus speichern in einem von XML abgeleiteten Format. Hierbei sollte man aber bedenken, daß durch den XML-Hype in diversen "Fachmagazinen" oft der Eindruck erweckt wird, XML wäre ein standardisiertes Format und Daten wären somit zwischen diversen Applikationen die alle XML-sprechen können austauschbar. Das stimmt aber nur, solange auch die DTD offen liegt und Konvertierungs-Stylesheets existieren. Ein in XML gepacktes Binärformat würde zwar auch eine "well formed" und "validierbare" Datei ergeben, aber für den Datenaustausch wäre diese ohne Kenntnis der Struktur nicht besser geeignet als ein proprietäres binäres Format.
Kritiker von XML beklagen daher auch den "Overhead" durch die Markup-Tags. Allerdings sollte das in einem Zeitalter in dem Festplattenkapazitäten in dreistelligen Gigabyte-Größen angegeben werdenund Breitband-Netzwerke üblich sind nicht wirklich weh tun. Zudem ist bei einigen XML-basierten Formaten wie etwa SVG eine gzip-Kompression vorgesehen, die Dateigrößen auf ein erträgliches Maß schrumpfen sollte.
[Bearbeiten] Externe Verweise
- http://www.w3.org/XML/
- http://xml.apache.org/
- http://www.ucc.ie/xml/
- SelfHTML (Abschnitt XML/DTDs)
- http://www.docbook.org
- OASIS, globale e-business standards

