Webprogrammierung: XML

XML oder eXtensible Markup Language ist eines der heißesten Modewörter im Internet. Was es damit auf sich hat und wie XML dem Atari nützlich sein könnte, haben wir uns einmal angeschaut.

Manche Mode-Erscheinung ist älter als sie auf dem ersten Blick scheint. Ist es in der Mode-Welt durch den Zusatz "Retro" noch einfach, einen neu verpackten alten Hut zu entdecken, ist es in der Computerwelt etwas schwerer.
Ganz so "Retro" ist XML dann doch nicht, aber es ist schon auffällig, das einige Webseiten auf ".xml" enden und eine ganze Reihe von Newsseiten wie Heise oder Slashdot bieten ihre News im XML-Format an. Tatsächlich basiert XML auf einer Idee die in den späten 60ern entstanden ist.

Urahn SGML

Bereits 1967 hat Willian Tunnicliffe die Trennung von Information und Format thematisiert. Erste Schritte waren die Verwendung von beschreibenden Tags, statt ungenauer Formatbezeichnungen. Die Graphic Communication Association (GCA) um Tunnicliffe entwickelte schließlich das GenCode-Konzept, in dem schon bedacht wurde, das verschiedene Aufgabengebiete auch unterschiedlicher Tags bedürfen. Die GCA spielte später eine wichtige Rolle bei der Entwicklung von SGML, dem Vorläufer von XML.
In den Forschungslaboren von IBM entstand in etwa zur gleichen Zeit GML (Generalized Markup Language). GML kannte Verschachtelungen von Elementen und wurde von IBM in die Software der Mainframe-Rechner eingebaut. Dadurch erlangte die neue Sprache schnell Akzeptanz in der Industrie und wurde z.B. für die elektronische Archivierung von Texten benutzt.
Erst zehn Jahre später wurde durch das ANSI ein Ablauf genommen, aus den zwei Standards einen zu machen. Der erste Entwurf von SGML wurde 1980 vorgeschlagen. Die Entwicklung verlief jedoch so langsam, so das erst 1983 der sechste Entwurf als Industrie-Standard vorgeschlagen wurde. Neben der US-Finanzbehörde IRS setzte auch das Verteidigungsministerium SGML ein. Ende 1985 wurde SGML schließlich auch international standardisiert.
SGML war für sich genommen keine Sprache, sondern eine sogenannte Meta-Sprache, die andere Sprachen definiert. Eine dieser Sprachen, die SGML ihre Regeln zu verdanken haben, ist die HyperText Markup Language (HTML).
Der neue Standard hatte nur einen Nachteil: er war kompliziert. Sprachen, die auf SGML basierten, wurden vorwiegend in der Wissenschaft und bei Regierungsbehörden eingesetzt. Firmen wie Microsoft setzten lieber weiter auf proprietäre Formate.

Erste Schritte zu XML

XML entstand, weil Entwickler eine Möglichkeit forderten, eigene Tags zu kreieren. HTML hatte sich schon einen guten Namen als Dokumentenaustausch-Format gemacht, allerdings mit zum Teil erheblichen Qualitätsverlusten.
Da SGML zu kompliziert erschien, entwarf das W3C XML als eine vereinfachte Form von SGML. Schon kurz darauf kamen die ersten Sprachen, die auf XML basierten: VML, SVG, SMIL, MathML und weitere. Selbst HTML wurde nicht und als Neuformulierung in XML veröffentlicht: XHTML ist der designierte Nachfolger von HTML 4.01.

XML im Browser

Zunächst einmal kann jeder Browser XML unterstützen. Wer aber z.B. eine XML-Datei im Internet Explorer anzeigt, wird sich zunächst wundern. Der Browser zeigt alle XML-Tags, etwas sparsam koloriert und mit Einklapp-Funktion versehen. Obwohl der Browser XML syntaktisch versteht, kann er doch nichts sinnvolles damit anfangen. Der Browser kann eben nicht wissen, ob <ATARI> einen Sound abspielen, die Eieruhr stellen oder einfach nur Fettschrift einschalten soll.
Aus der Sicht des Menschen ist eine gut strukturierte und benannte XML-Datei aber angenehm zu lesen. Nehmen wir einmal einen Datensatz von Slashdot:

<story> 
<title>Copy Protection On CDs Is 'Worthless'</title> 
<url>http://slashdot.org/article.pl?sid=02/11/06/2144242</url> 
<time>2002-11-06 22:09:10</time> 
<author>timothy</author> 
<department>healing-the-crippled</department> 
<topic>141</topic> 
<comments>10</comments> 
<section>articles</section> 
<image>topicmusic.gif</image> 
</story>

Die Bedeutung von Tags wie URL, Time, Author, Department etc. ist praktisch selbsterklärend. Die XML-Datei sagt aber noch nichts über die Präsentation aus, Inhalt und Form sind also getrennt. Bei vielen Webseiten wird mittels serverseitiger Sprachen (PHP, ASP, Perl, Python) die XML-Datei eingelesen und interpretiert. Im Grunde dient die XML.Datei dann "nur" als besserer Datenbank-Ersatz. Aussehen wird dann mit Cascading Style Sheets (CSS) und normalem HTML erzeugt.

Newsfeed

Da viele - vor allem amerikanische - Webseiten ihre News mittlerweile in XML verwalten, gibt es für fremde Homepages die Möglichkeit, diese XML-Datei zu lesen und somit die News der anderen Seite anzubieten. Bevor der Verdacht der Illegalität auftaucht: dies wird durchaus toleriert und auch erwünscht, denn der Artikeltext wird aus Geschwindigkeitsgründen so gut wie nie in der XML-Datei veröffentlicht.
Ein XML-Parser kann Daten auch aus RDF, SVG, usw. Dateien ziehen. Das liegt daran, das alle diese Formate auf XML basieren und XML eine strenge Syntax hat. Die Heise-News liegen z.B. als RDF (Resource Definition Format) vor:

<item>
 <title>Telekom-Chef Sihler bekommt zunehmend Gegenwind</title>
 <link>http://www.heise.de/newsticker/data/anw-06.11.02-009/</link>
</item>

<item> <title>Markt für Auto-Ferndiagnose boomt</title> <link>http://www.heise.de/newsticker/data/pmz-06.11.02-002/</link> </item>

Voraussetzungen

XML versucht es nicht nur dem Benutzer leicht zu machen, sondern auch dem Parser. Während HTML relativ frei ist in der Schreibweise und die Browser deshalb auch Fehlerbereinigungsroutinen mitschleppen müssen, ist XML genau definiert. Alle Tags werden in Kleinbuchstaben geschrieben, Attribute müssen in Anführungszeichen stehen:

<img src="hallo.gif" width=300 height=50 border=1>

wäre in XML:

<img src="hallo.gif" width="300" height="50" border="1">

... wobei letztere Schreibweise immer noch nicht stimmt. HTML kennt Tags, die beendet werden müssen, beendet werden können und nicht beendet werden. Damit räumt XML auf: jedes Tag muss geschlossen werden. Zwei Schreibweisen gibt es hierfür:

<img src="hallo.gif" width="300" height="50" border="1"></img>
<img src="hallo.gif" width="300" height="50" border="1"/>

Die XML-Parser sind i.d.R. erheblich gnadenloser als ihre HTML-Kollegen. Da hagelt es nicht selten Fehlermeldungen.

XHTML

Eine XHTML-Datei beginnt als erstes mit der Festlegung der XML-Version:

<?xml version="1.0" encoding="UTF-8"?>

Wichtig für den XML-Parser ist der Dokumententyp. Hier wird die Adresse der DTD (Document Type Definition), die dem Parser dazu dient, die XHTML-Datei auf syntaktische Korrektheit zu überprüfen:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

Selbst das <HTML>-Tag erhält ein zusätzliches Attribut:

<html xmlns="http://www.w3.org/1999/xhtml"> 

Wenn die Datei als .xml oder .xhtml abgespeichert wurde, benutzt der Browser seinen XML-Parser. Absolute Pflicht ist die Bestimmung eines Titels und des Header-Bereiches.
Umgewöhnen muss sich der angehende XHTML-Programmierer bei Tags wie <HR>:

<hr noshade="noshade"/>

Allein stehende Attribute sind nicht mehr erlaubt, so dass diese umgeschrieben werden müssen. Probleme haben einige XML-Parser auch mit Tags, die Zeilenumbrüche enthalten.

http://www.sgmlsource.com/


Mia Jaap
Aus: ST-Computer 11 / 2002, Seite 34

Links

Copyright-Bestimmungen: siehe Über diese Seite