Bestimmt wissen Sie bereits, dass XML für EXtensible Markup Language steht. Okay, es handelt sich also um eine Markup-Language, etwa wie HTML, was bedeutet, dass Tags verwendet werden. Aber was genau macht XML, und warum wird es von Kunden verlangt? Seltsamerweise macht XML gar nichts. Mit XML werden einfach Informationen beschrieben und in einem plattformunabhängigen Format verteilt.
XML erzielt die Plattformunabhängigkeit, indem keine bestimmte Sprache verwendet wird. XML-Tags sind nicht vordefiniert; Sie schreiben Ihre eigenen Tags. Der Vorteil liegt darin, dass XML selbstbeschreibend ist.
Tatsächlich haben Sie selbst schon XML verwendet, ohne dass Sie es bemerkt haben. Wenn Sie Nachrichtenschlagzeilen direkt in Ihrem E-Mail-Client lesen, oder wenn Sie Webseiten über Ihr Handy aufrufen, benutzen Sie XML-basierte Technologie.
Zunächst einmal ist XML kein Ersatz für HTML, und es dient einem ganz anderen Zweck. XML wurde entwickelt, um Daten zu beschreiben, zu speichern und auszutauschen, während HTML der Präsentation von Daten in einem visuell lesbaren Format dient. HTML verwendet einen festen Satz von vordefinierten Elementen (normalerweise als Tags und Attribute bezeichnet), um die visuellen Aspekte eines Dokuments festzulegen, zum Beispiel das Seitenlayout und die Textformatierung, und um Hyperlinks zu anderen Dokumenten oder Bildern einzufügen. In HTML können Sie nur diesen begrenzten Satz von Tags verwenden, weshalb Sie auch nur bestimmte Informationstypen anzeigen können. Die Anzeige einer mathematischen Formel mit HTML kann zum Beispiel ein ziemliches Problem darstellen. XML löst derartige Probleme durch die Erweiterbarkeit: Sie können Ihre eigenen Tags und Ihre eigene Dokumentstruktur "erfinden". Sie können Elemente hinzufügen und entfernen, ohne die Gesamtstruktur des Dokuments zu beeinträchtigen.
Die folgenden Zeilen können zum Beispiel in XML-Form eine Abteilung eines Unternehmens beschreiben:
<department>
<employee>
<name>John Doe</name>
<job>Software Analyst</job>
<salary>2000</salary>
</employee>
<employee>
<name>Jane Fletcher</name>
<job>Designer</job>
<salary>2500</salary>
</employee>
</department>
Probieren Sie doch einmal, diesen Text in Dreamweaver in ein neues XML-Dokument einzugeben oder einzufügen, und zeigen Sie dann eine Vorschau im Browser an. Um in Dreamweaver ein neues XML-Dokument zu erstellen, klicken Sie auf das Menü Datei und wählen Sie Neu. Wählen Sie im Fenster Neues Dokument die Kategorie Einfache Seite aus, und wählen Sie in der Liste der einfachen Seiten XML aus.
Abbildung 1. Im Dialogfeld "Neues Dokument" ein XML-Dokument erstellen
Klicken Sie auf die Schaltfläche Erstellen. Dreamweaver erstellt ein Dokument, das eine ähnliche Zeile wie die folgende enthält:
<?xml version="1.0" encoding="iso-8859-1"?>
Dies ist die XML-Deklaration, die am Anfang eines jeden XML-Dokuments stehen muss. Sie legt die XML-Version und den Zeichensatz fest, die im Dokument verwendet werden.
Geben Sie den Text aus dem oben stehenden Beispiel nach der ersten Zeile in das neue XML-Dokument ein. Beachten Sie, dass Dreamweaver die Syntaxhervorhebung für XML-Dokumente nativ unterstützt:
Abbildung 2. Farbliche Codehervorhebung in der XML-Syntax
Speichern Sie Ihr erstes XML-Dokument, und zeigen Sie in Ihrem Browser eine Vorschau davon an. Sie werden sehen, dass Ihr Browser den Code ebenfalls farbig markiert und das XML-Dokument als ausblendbare Baumstruktur anzeigt (sofern Ihr Browser XML unterstützt).
Abbildung 3. Eine ausblendbare XML-Baumstruktur
Hinweis: Die meisten Browser unterstützen XML. Wenn Sie sich dafür interessieren, wie verschiedene Browser XML-Dokumente anzeigen, besuchen Sie diese Seite auf der W3Schools-Website*.
Wenn Sie auf das Minuszeichen neben einem Tag klicken, wird das Element ausgeblendet. Um ein Element einzublenden, klicken Sie auf das Pluszeichen daneben.
Abbildung 4. Die XML-Baumstruktur kann durch Klicken auf die Plus- und Minuszeichen ein- und ausgeblendet werden.
In HTML geschrieben sieht dasselbe Beispiel so aus:
<table> <tr> <td>John Doe</td> <td>Software Analyst</td> <td>2000</td> </tr> <tr> <td>Jane Fletcher</td> <td>Designer</td> <td>2500</td> </tr> </table>
Wenn Sie die Seite in den Browser laden, sieht sie aus wie eine klassische HTML-Tabelle (den Rahmen habe ich der besseren Sichtbarkeit wegen hinzugefügt).
Abbildung 5. Derselbe Inhalt in HTML-Form
Die Tags im Beispiel oben wurden speziell entworfen, um Informationen über die Angestellten eines Unternehmens zu beschreiben. Wenn Sie die beiden Beispiele vergleichen, sehen Sie deutlich, das XML inhaltsgesteuert ist, während HTML formatgesteuert ist – die Namen der XML-Tags beschreiben die Daten in den Tags, während die HTML-Tags die Darstellung der Daten in den Tags beschreiben.
Das obige Beispiel soll einige Hauptunterschiede zwischen XML und HTML verdeutlichen. Sie sollten jedoch nicht vergessen, dass XML nicht als Ersatz für HTML gedacht ist, und dass auch nicht jedes XML-Dokument in ein HTML-Dokument übersetzt werden kann.
Mit all diesen schicken neuen Abkürzungen, die herumschwirren, sehen die Dinge jetzt vielleicht etwas verwirrend aus. Zwar ist XHTML nicht Thema dieses Artikels, ich werde aber kurz erklären, was sich dahinter verbirgt.
XHTML steht für Extensible Hyper Text Markup Language und ist eine "sauberere", XML-basierte Version von HTML. Es handelt sich um eine striktere Spezifikation* von HTML, die entwickelt wurde, um HTML eines Tages zu ersetzen. XHTML enthält fast dieselben Tags wie HTML, wurde jedoch neu geschrieben, um die XML-Syntaxregeln einzuhalten, auf die ich später in diesem Artikel noch genauer eingehe.
Da XML Daten speichert und beschreibt, hat es durchaus Ähnlichkeiten mit einer Datenbank. Sie haben im Zusammenhang mit XML sicherlich schon einmal die Wörter "Schema" oder "Abfragesprache" gehört. Was unterscheidet XML dann von einem typischen DBMS (database management system)?
Vor allem ist XML portierbar. Während sich Datenbanken auf die jeweilige Datenbanksprache verlassen, für die sie entwickelt wurden, um korrekt interpretiert zu werden, trägt XML seine Bedeutung in den Tags. XML ist selbstbeschreibend, was bedeutet, dass es sowohl die Struktur als auch die Semantik der Daten übermittelt, während Datenbanken nur die Struktur der Daten definieren können.
Außerdem kann XML Daten als hierarchische Strukturen darstellen, wie Sie im vorigen Abschnitt gesehen haben. So ist das Element <employee> zum Beispiel ein untergeordnetes Element des Elements <department> und ist als solches in die XML-Baumstruktur eingebettet.
Natürlich hat XML im Vergleich zu Datenbanken auch einige Nachteile, aber Datenbanken wurden ja schließlich auch mit einer anderen Zielsetzung entwickelt. Der auffälligste Nachteil von XML ist der Mangel an datenbankspezifischen Funktionen wie Auslöser, Zugriff durch mehrere Benutzer, effiziente Speicherung, Indizes, Sicherheit, Transaktionen, Datenintegritätsprüfungen oder Abfragen über mehrere Dokumente. Das ist nicht weiter verwunderlich, schließlich wird ein DBMS entwickelt, um Daten schnell und sicher zu bearbeiten, zu speichern und abzurufen, während XML für den plattformübergreifenden Datenaustausch entwickelt wurde.
Dementsprechend ist die Suche in XML-Dokumenten auch langsamer, da es anders als in Datenbanken keine Indizes und Funktionen zur Suchoptimierung gibt.
Außerdem ist XML umfangreicher, da für jedes Datenelement ein Tag-Paar und/oder Attribute erforderlich sind.
Diese Unterscheidung nach Daten- bzw. Dokumentbezug ist zwar eigentlich obsolet, aber dennoch wichtig, um das Konzept der XML-Technologie zu verstehen.
Im nächsten Abschnitt werden einige Vor- und Nachteile von XML beschrieben, und anhand von lebensnahen Beispielen wird verdeutlicht, wann der Einsatz von XML angebracht ist.