Einführung
XML (extensible Markup Language) ist eine Erweiterung von HTML und seit Anfang
1998 offizieller Standard des W3-Konsortiums. So weit ich sehe, lässt sich XML
bis jetzt einwandfrei bloß auf dem IE5 verwenden. Bei Netscape unterstützt bei
der Communicator 6 XML, der Gecko zeigt bloß begrenzt, wie XML eingesetzt
werden kann. XML löst das statische HTML ab und führt die Möglichkeit ein
Tags und Attribute selbst zu erzeugen.
Unterschiede HTML und XML und Vorteile von XML
1.) In XML können mittels selbst definierter Tags Daten auch gespeichert
werden. Bspw. gibt es die Möglichkeit den Tag <Adresse> selbst zu
definieren und später einen Text durch diesen abzuspeichern, wie das folgende
Beispiel verdeutlicht:
<Adresse>Mittelweg 36</Adresse>
XML läßt sich also besonders gut für Datenbanken einsetzen, zumal XML-Tags
selbst eine hierarchische Struktur verlangen.
2.) In XML werden selbst definierte Tags durch selbstdefinierte Attribute
ergänzt, die man den eigenen Tags hinzufügen kann. So läßt sich zur Adresse
noch das Attribut typ angeben, welches angibt, ob es sich um eine private oder
geschäftliche Adresse handelt. Bsp:
<Adresse typ="Privat">Mittelweg 36</Adresse>
3.) Die Anzahl der erstellbaren Tags ist nicht begrenzt. Im Gegensatz zu HTML
ist XML also beliebig vergrößerbar.
4.) XML trennt strikt die Daten und deren Darstellung im Browser. XML
strukturiert die Daten, mit der style sheet language XSL (extensible Style
Language) (oder aber einfacher mit CSS) wird das Erscheinungsbild bestimmt.
5.) XML läßt sich über sogenannte Dateninseln in einen HTML-Text einbinden.
Dateninseln werden einfach mit dem Tag <XML> eingeleitet und mit </XML>
geschlossen.
Problem des Einsatzes von XML
1.) XML ist noch nicht problemlos von allen Browsern zu lesen.
2.) Der Entwickleraufwand von XML ist wesentlich höher als bei HTML.
3.) Die Verträglichkeit von XML mit JDBC und Servlets ist noch fragwürdig,
müßte aber eigentlich kein größeres Problem ergeben, denn man kann notfalls
XML in HTML-Code einbinden.
Wie sieht so ein XML-Programmcode eigentlich aus?
Ich kann hier keine ausführliche XML-Einführung bieten. Dazu verweise ich
auf http://www.selfxml.de und auf die unten
aufgeführten Links und Literatur. Ich möchte nur anhand eines Beispiels einen
kleinen Überblick über den Aufbau eines XML-Dokuments liefern.
<?xml version="1.0"?> <!-- Jede
XML-Seite wird mit dem <?xml>-Tag begonnen.--> |
Bevor der Browser auf einen Tag stößt, sollte dieser in einem eigenen
Bereich vor dem Hauptprogrammtext definiert werden:
<!DOCTYPE Autor [ |
Die Definition wird durch DOCTYPE und den Namen der Definition eingeleitet.
Über das <!Element>-Tag wird der konkrete Tag <AUTOR> definiert. In
Klammern wird anschließend dem Parser mitgeteilt, welche Werte zwischen dem Tag
stehen dürfen. Hier sind es Namen. Die Definition eines Tags innerhalb
des Prologs heißt Document Type Definition und ist zwar nicht zwingend
erforderlich, aber besserer Stil. Sollen mehr als ein Tag definiert werden,
müssen die Tags hierarchisiert werden. Es muss ein Root Element gewählt
werden, von dem sich alle weiteren Tags baumartig als Unter-Tags ableiten.
In unserem Fall ist Autor das Wurzelelement, ein XML-Dokument darf niemals
zwei Wurzelelemente besitzen, ansonsten gibt es einen statischen Fehler. Über
diese Wurzel ist eine kleine Datenbank definiert, die die Namen von
Autoren beinhaltet, wobei sich jeder Namen aus den Tags Vorname und
Nachname zusammensetzt. Dazu listet man hinter dem Wurzelelement die Tags
auf, die sich von diesem ableiten. Durch das '+' zeigt man an, dass mehr als ein
Autorenname aufgeführt werden kann. Zwischen den Untertags Vorname und Nachname
dürfen einfache Zeichen stehen, was durch #PCDATA angezeigt wird.
Im Hauptteil des XML-Codes definiert man die Inhalte der Tags:
<Autor> |
Der IE5 produziert folgende Ausgabe:
Ohne style sheet language werden die Daten nicht ordentlich im Browser wiedergegeben. Man erkennt aber deutlich ihre hierarchische Struktur. Mit XSL oder CSS wird dann jedem Tag eine spezifische Ausgabeformatierung gegeben. Zur Verdeutlichung benutze ich folgendes CSS-Dokument, das dem Tag Name und all dessen Untertags ein Format zuweist:
Name |
Die Ausgabe im IE5 sieht dann so aus (mit XSL geht alles noch viel besser):
Links zum Thema:
Der offizielle XML-Standard des W3Konsortium: http://www.w3.org/xml
XML-Tutorial: http://members.aol.com/xmldoku
Ein billiges Buch:
Michael Seeborger-Weichselbaum, XML. Das Einsteigerseminar: http://www.bhv.net
An dieses Buch habe ich auch meine Ausführungen angelehnt.