Vorstellung von XML

von Tobias Blanke

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.-->
<?xml-stylesheet type="text/css" href="autoren.css"?>  <!--So wird die style sheet language eingebunden.-->

Bevor der Browser auf einen Tag stößt, sollte dieser in einem eigenen Bereich vor dem Hauptprogrammtext definiert werden:

<!DOCTYPE Autor [
    <!ELEMENT Autor (Name)+>
        <!ELEMENT Name (Vorname, Nachname)>
            <!ELEMENT Vorname (#PCDATA)>
            <!ELEMENT Nachname (#PCDATA)>
]>

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>
<Name> <!-- So schreibt man einen  Kommentar. -->
<Vorname>Frank</Vorname>
<Nachname>Mueller</Nachname>
</Name>
<Name>
<Vorname>Stefan</Vorname>
<Nachname>Maier</Nachname>
</Name>
</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
{
font-family: Arial;
font-size: 35pt;
color:red;
}

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.