Autor: Mario Dobnig go4xml.com
2. Was ist XML?
Ähnlich wie HTML ist auch XML (eXtensible Markup
Language) eine Auszeichnungssprache, welche genauso
auf dem Prinzip der Tags aufbaut, die der entsprechenden
Software mitteilt was mit dem Inhalt (Information zwischen
den Tags) passieren soll.
Der "offzielle" Name dieser Sprache lautet: eXtensible
Markup Language. Man könnte die Bezeichnung
XML auch als so etwas ähnliches wie einen
Rechtschreibfehler ansehen. Jetzt solltest Du aber nicht
glauben, dass XML keine korrekte Bezeichnung wäre. Genau
das Gegenteil ist der Fall. Dieses Kürzel wird sogar ausdrücklichvom W3C in seinen Spezifikationen genannt. XML ist viel mächtiger als HTMLWarum? Nur wegen des "X". Tatsächlich machtdas "X" ein großen Unterschied. Es steht nämlichfür "eXtensible". Anders als eben bei HTML, wodefinierte Tags vorgegeben werden, gibt XML nur dieStandards vor auf jenen diese Tags beruhen. Also, etwaseinfacher ausgedrückt: mit Hilfe von XML kann jeder seine eigene Auszeichnungssprache und seine eigenen Tags
definieren. XML ist eine sogenannte "Meta-Markup
Language", die Dir erlaubt eine unbegrenzte Anzahl von
Auszeichungssprachen, die auf den Standards von XML
basieren, zu definieren.
Die Ziele von XML
- XML soll in gesamten Web verwendet werden können.
- XML soll eine große Anzahl von Applikationen unterstützen.
- XML soll auch mit SGML kompatibel sein.
- Programme, die XML tauglich sind, sollen leicht zu
entwickeln sein.
- Die Zahl der Zusatzmerkmale von XML soll ein absolutes
Minimum betragen - idealerweise Null.
- XML Dokumente sollten einen "menschlichen Maßstab"
haben.
- XML Dokumente sollten leicht erstellt werden können.
So, nach der ganzen Theorie wenden wir uns nun wieder
einem etwas unterhaltsameren Teil zu: Stell Dir dazu vor,
wir erfinden nun eine neue Auszeichnungssprache mit dem
Namen MKDML (Marios KundenDatei Markup
Language)... klingt doch recht gut, oder? Diese
Sprache definiert nun Tags über Kontaktpersonen und
Informationen über diese Personen.
Die Tags werden einfach ausfallen, allerdings sind sie
sehr aussagekräftig. Anders nämlich als bei HTML kann man
Tags in XML sofort verstehen wenn man sich den Quelltext der
Datei durchliest.
Verwenden wir dazu wieder das vorige Beispiel:
<kontakt>
<name>Guenther Egger</name>
<kundennummer>001</kundennummer>
<firma>Guenther's Fischladen</firma>
<email>guenther@fischladen.com</email>
<telefon>01 662 9999</telefon>
<strasse>Kaiserbersdorferstr. 25a</strasse>
<stadt>Wien</stadt>
<land>Wien</land>
<plz>1100</plz>
</kontakt>
<kontakt>
<name>Susan Tippschnell</name>
<kundennummer>Kundennummer: 002</kundennummer>
<firma>Netscape</firma>
<email>susanne@eudora.org</email>
<telefon>0512 555 1234</telefon>
<strasse>Maximilianstr. 12</strasse>
<stadt>Salzburg</stadt>
<land>Salzburg</land>
<plz>6020</plz>
</kontakt>
WICHTIG: Auszeichnungen innerhalb von XML beziehen
sich nicht nur auf die Textformatierung. XML Tags können
sich sehr wohl auch auf die Ausgabe von Bildern oder Musik
beziehen. So könnte der Tag <staerker>
Text etwa fett darstellen, aber gleichzeitig Musik die
Anweisung geben lauter abgespielt zu werden.
Zurück zu unserem Beispiel: Man kann sagen, dass wir
soeben ein erstes, sehr vereinfachtes XML Dokument entworfen
haben. Vielleicht wunderst Du dich, dass es ja beinahe so
aussieht wie eine HTML Datei.
Vergiss aber nicht, daß ich Dir vorher gesagt habe, dass
es nicht ausreicht Daten zu formatieren. Damit die Daten nämlich
von jemanden auch verstanden werden können, muss sich die
Auszeichnungssprache an Regeln halten, die folgendes
aufweisen müssen:
- Eine einheitliche Syntax (sozusagen die Grammatik
unserer Auszeichnungssprache)
- Hinter den Auszeichungen muß auch eine Bedeutung
stehen
Anders gesagt, muss eine XML verarbeitende Software
wissen was denn überhaupt eine gültige Auszeichung ist
(vielleicht ein Tag) und was denn mit ihr passieren soll.
Wie sollte z.B: Netscape wissen, was es mit unserem Dokument
anfangen soll? Was um alles in der Welt ist ein <plz>
Tag? Ist er überhaupt zulässig? Wie kann man ihn
darstellen? Deshalb muß sich unsere Auszeichnungssprache an
die oben genannten Regeln halten, damit Netscape unsere
Seite auch darstellen kann.
Bei XML wird die Gültigkeit der Auszeichnungen über die
sog. Document Type Definition (DTD) festgelegt. In dieser
wird die Struktur der Auszeichnungssprache definiert. Die
DTD legt also fest, was denn überhaupt ein gültiger Tag
ist. Sie ist die Syntax für unsere Auszeichnung.
Für den Moment reicht uns dieses Wissen über DTD völlig
aus. Stell Dir vorerst DTD als einen Baustein in unserer
Gleichung vor. Später kehren wir aber noch einmal hierher
zurück.
Um gültige Tags zu erstellen, wird XML oft mit Style
Sheets in Verbindung gebracht. Diese geben der Software
Instruktionen zur Ausgabe von Text, Musik,... keine Sorge,
wenn Du noch keine Ahnung von Style Sheets hast. Wir werden
sie später noch ausführlich behandeln - könnte unseren
Text etwa nach folgenden Gesichtspunkten darstellen:
- <kontakt> könnte z.B.
immer wie (in HTML) <ul>
dargestellt werden. Nach diesem Schema würde dann natürlich
</kontakt> </ul>
entsprechen.
- <name> Tags sollen
durch <li> ersetzt und </name>
einfach weggelassen werden.
- <plz> Tags sollen
durch <li> ersetzt und </plz>
einfach weggelassen werden.
In diesem Beispiel übernimmt nun also das Style Sheet
die Aufgabe von HTML, indem es die Formatierung unserer
Daten übernimmt. Wenn unser XML Dokument nicht von einem
Webbrowser gelesen werden soll, sondern von irgendeiner
anderen Software, kann man sich den Umweg über HTML
ersparen.
Software wie z.B. Webbrowser kombinieren nun die Logik
von Style Sheets, der DTD und der Daten unseres MKDML
Dokuments. Die Dartellung erfolgt dabei nach den
festgesetzten Regeln und Daten.
Moment, Moment,... Das kann doch wohl nicht der Sinn
dahinter sein. Anstatt eines HTML Dokuments in dem die Daten
und die dazugehörige Formatierung steckt, haben wir jetzt
ein MKDML Dokument, eine DTD und ein Syle Sheet. Statt einer
haben wir nun womöglich drei Dateien.
Außerdem benötigen wir noch Software, die die Daten,
die DTD und die Style Sheets zusammenwerfen, denn Webbrowser
können nur bestimmte, nicht jede Auszeichungssprache
verstehen. Was bedeutet dies aber für uns? Wir müssen drei
Dateien zusammenwerfen und ein Programm schreiben bzw.
kaufen, das dies machen kann. ...und das soll ein
Fortschritt sein?
Ich weiß, das alles klingt jetzt ein wenig verwirrend
und theoretisch. Obwohl wir auf unserem Weg zu gutem XML
noch einige Hindernisse überwinden müssen, kann ich Dir
versichern, daß sich der ganze Aufwand schlußendlich für
dich lohnen wird. Deshalb, weiter zur nächsten Lektion!
|