Aus Tuxfutter, der freien Wissensdatenbank.

Extensible Markup Language

Aus Tuxfutter
Wechseln zu: Navigation, Suche

Die Extensible Markup Language (XML) ist eine Auszeichnungssprache für Textdateien, welche von der Sprache Standard Generalized Markup Language (ISO 8879:1986) abgeleitet wurde.

[Bearbeiten] Weitere Details

XML selbst wird oft eher als ein Meta-Format eingesetzt. Basierend auf XML lassen sich eigene Dateiformate, etwa für Datenbanken erstellen. Mit Java lässt sich das gut nutzen.

XML enthält dabei die Konventionen, wie das eigene Format aufgebaut werden muss, etwa wie die (Auszeichnungs-)Marken (englisch tags) auszusehen haben. Eine Basis-Forderung ist dabei, daß die XML-Datei wohlgeformte (englisch well formed) ist, d.h. für jede Start-Marke muß es eine passende Abschlußmarke geben und diese müssen richtig verschachtelt sein.

Welche Marken das eigene Format enthalten soll und welche Eigenschaften (Attribute), Inhalte usw. erlaubt sind, wird in einer DTD-Datei (kurz für Document Type Definition, also in einer Dokumententypbeschreibung) festgelegt. Da eine DTD aber einer 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 (Stand: 1.6.2004).

Vorteil dieser Dokumenten-Definition ist, daß jede XML-Datei gegen diese Beschreibung (Definition) überprüfbar (validierbar) ist, d.h. ein maschinelles Verfahren kann einfach überprüfen, ob notwendige Elemente vorhanden sind. So macht beispielsweise auch der im Netz bekannte HTML-Validator, bei Validome, nichts anderes als HTML-Seiten gegen eine DTD zu prüfen.

Eine Übersetzung in darstellbare Formate, wie (X)HTML oder SVG, kann man mit Hilfe der Extensible Stylesheet Language Transformation (kurz XSLT genannt) geleistet werden. 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, ist beispielsweise am Linux Documentation Project zu beobachten. 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 wohlgeformte und überprüfbare (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 zusätzlichen Verwaltungsaufwand (englisch overhead) durch die für Menschen leichter lesbaren Auszeichnungsmarken (englisch markup tags). Allerdings sollte das in einem Zeitalter in dem Festplattenkapazitäten in dreistelligen Gigabyte-Größen angegeben werden und 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] Netzverweise

[Bearbeiten] Weitere englischsprachige Seiten

'Persönliche Werkzeuge
Namensräume

Varianten
Aktionen
Navigation
Werkzeuge