XML

XML ist eine Meta-Sprache, mit der es möglich ist, Auszeichnungssprachen für Dokumente zu erzeugen. Eine bekannte Auszeichnungssprache für das WWW ist HTML. HTML kann in XML formuliert werden. Im Unterschied zu HTML sind bei XML die Auszeichnungselemente (tags) jedoch nocht festgelegt. Weiterhin enthält XML keinerlei Möglichkeiten auszudrücken, wie XML-Daten am Bildschirm angezeigt, oder auf Papier ausgedruckt werden sollen. Dies macht XML einerseits einfacher als HTML, die Visualisierung ist jedoch dafür um einiges schwieriger.

Zentrales Anliegen für den Einsatz von XML ist es, Inhalte maschinell zugänglich, auffindbar und manipulierbar zu machen. Um das zu erreichen, wird mit XML eine Möglichkeit gegeben, Inhalte über kennzeichnende Markierungen in funktionale Blöcke zu untergliedern. Diese Auszeichnungen werden tags genannt. tags werden durch spitze Klammern gekennzeichnet, z.B.: <kapitel>. Wird von der Gesamtheit der tags gesprochen, spricht man von Markup.

XML ist keine Markup-Sprache in dem Sinn, dass die Menge der Auszeichnungselemente (tags) festgelegt ist, wie z.B. bei HTML. Die Namen der Tags können von XML-AnwenderInnen frei erfunden werden. Die tag-Namen können so gewählt werden, daß sie die Bedeutung des Inhalts ausdrücken. Ein tag <buchtitel> erklärt sich selbst. Bei bedeutungstragenden tags spricht man von semantischem Markup.

In diesem Sinn ist XML eine erweiterbare Auszeichnungssprache, woraus das Kürzel XML - eXtensible Markup Language - seine Begründung erhält. Wer XML benutzt muß lediglich einige Regeln befolgen, die das WWW-Konsortium festgelegt hat.

Wohlgeformtheit

Wohlgeformtheit beschreibt eine Reihe von Bedingungen und Regeln, die als Mindestanforderungen erfüllt sein müssen, um ein XML-Dokument mit XML-Werkzeugen verarbeiten zu können.

Zur Wohlgeformtheit gehört, daß es zu jedem öffnenden auch ein schliessendes tag geben muß:

<kapitel>Hier beginnt ein Kapitel</kapitel>

Durch tags ausgezeichnete Abschnitte dürfen durchaus ineinander geschachtelt sein. Allerdings muß darauf geachtet werden, daß die Auszeichnungen abgeschlossen werden, bevor eine übergeordnete Auszeichnung geschlossen wird.

Das ist erlaubt und wohlgeformt:

<kapitel>
<titel>Einführung in XML</titel>
<vorspann>XML ist eine Metasprache zur Definition von Auszeichnungssprachen.</vorspann>
<absatz>Wer mit XML arbeiten will muss sich mit folgenden Themen Fragen beschäftigen...</absatz>
</kapitel>

Das ist falsch und nicht wohlgeformt, weil die Ende-Kennungen nicht in der richtigen Reihenfolge geschlossen werden:

<kapitel>
<titel>Einführung in XML</titel>
<vorspann>XML ist eine Metasprache zur Definition von Auszeichnungssprachen.
<absatz>Wer mit XML arbeiten will muss sich mit folgenden Themen beschäftigen...</vorspann></absatz>
</kapitel>

Zur Wohlgeformtheit gehört weiterhin, daß jedes XML-Dokument ein Wurzelelement (root tag) hat, welches das gesamte Dokument umschließt. Alle Auszeichnungen, die im Inneren des Dokuments angewendet werden sind hierarchisch in das Wurzelelement eingeschlossen, entsprechend dem obigen Beispiel.

Stellt man sich das Wurzelelement als Wurzel eines Stammbaumes vor, so sind alle Elemente im Dokument Nachfahren (Nachkommen) der Wurzel. Im XML-Jargon wird deshalb auch von Eltern-Elementen, Kind-Elementen, Geschwister-Elementen etc. gesprochen.

Ein Element kann beliebig viele direkte Nachfahren haben, die wiederum beliebige Nachfahren besitzen können. Wichtig ist nur, daß die Verschachtelung korrekt aufgebaut ist. Im Kontext von XSL und XPATH werden die Verwandschaftsbeziehungen teilweise mit Achsen bezeichnet. Die zwei wichtigsten Achsen sind im der obigen Darstellung eingezeichnet.

Ein Element muß jedoch nicht zwingend Kindelemente haben. Es kann sogar auch volltändig leer sein. In diesem Fall ist eine Kurzschreibweise erlaubt. Wenn im Kapitel-Element noch nichts enthalten ist, kann <kapitel /> als erlaubte Schreibweise verwendet werden.

Leere Elemente sind ziemlich wichtig. Am häufigsten werden sie gebraucht, wenn sie sogenannte Attribute beherbergen. Attribute dürfen nur im Start-tag, im öffnenden Auszeichnungselement angegben werden. Der Kapiteltitel im obigen Beispiel kann auch so erzeugt werden:

Attribut statt Kind-Element

<kapitel titel="Einführung in XML"/>

Attribute sparen Hierarchiestufen und machen ein Dokument übersichtlicher. Sie werden vor allem dann verwendet, wenn es sicher ist, daß Inhalt auf dieser Ebene maximal einmal vorkommt, und daß es keine weiteren Kindelemente geben muß. Dies ist im obigen Beispiel der Fall. Will man jedoch unter dem Bezeichner <titel> einen Haupt- und mehreren Untertiteln verstehen, kann kein Attribut verwendet werden. In solch einem Fall kann die Struktur so aussehen:

Notwendige Kind-Elemente verbieten die Verwendung eines Attributs

<kapitel>
<titel>
<haupttitel>Einführung in XML</haupttitel>
<untertitel>Die erweiterbare Auszeichnungssprache</untertitel>
<untertitel>Ein Versuch elektronische Dokumente in den Griff zu bekommen</untertitel>
</titel>
</kapitel>

Hier noch einmal die Bedingungen und Regeln für Wohlgeformtheit im Überblick

  • Dokumente bestehen aus Markup (tags) und Inhalt.
  • Jedes Element hat ein Start- und ein Ende- tag oder besteht aus einem leeren Element.
  • Im Start-tag eines Element sind einmal vorkommende Informationen, genannt Attribute erlaubt.
  • Elemente können hierarchisch geschachtelt werden
  • Jedes XML-Dokument hat genau ein einschließendes Root-Element

Konsequenzen der Erweiterbarkeit von XML

Diese Erweiterbarkeit ist es jedoch, die einige Folgeprobleme verursacht: Woher soll ein Browser wissen, wie ein Textfragment dargestellt werden soll, das durch ein Auszeichnungselement <position> gekennzeichnet wurde?

Wie kann im Internet gesichert werden, daß kein anderer die gleichen tags verwendet wie ich und das womöglich noch mit einem völlig anderen Sinn. Beispielsweise kann <position> eine Position auf einer Rechnung oder einer Bestellung sein, die Stellung eines Menschen in einer Hierarchie, der inhaltliche Standpunkt in einer Diskussion etc... Um diesem Missstand abzuhelfen, wurde vom WWW-Konsortium das Konzept der Namensräume entwickelt. Da Domains im WWW eindeutig sein müssen, kann die Eindeutigkeit eines Tags durch Voranstallung eines DNS-Namens gesichert werden. Innerhalb eines Dokuments kann dieser DNS-Namensteil durch ein Kürzel, den sog. Namesraum Präfix repräsentiert werden.

© M. Knobloch 2003-06-22 created with SAXON 7.5.1 from Michael Kay XSL Version 1.8