Otto Web-Normalverbrauchers Homepage wird auf lange Sicht in HTML geschrieben sein. So äußerten sich die Experten noch im April 1997; und sie dürften Recht behalten. Für eine Homepage oder zwei, drei Seiten für Freunde und Verwandte lohnt sich der Aufwand, XML zu lernen, nichtIn Form von XHTML werden es Webautoren mittelfristig auf jeden Fall mit einer XML-Anwendung zu tun bekommen.. Deswegen richtet sich dieses Buch eher an diejenigen, die HTML kennen und bislang schon intensiv damit gearbeitet haben oder planen, das demnächst zu tun.
Manchem dürfte XML, vor allem wenn es um die Erstellung der eingangs genannten DTDs geht, wie die scheinbare Unlesbarkeit des Mottos vorkommen. In beiden Fällen gilt: Iss up 2 u reely whot yoos u make ov it aftir that; iss ol about injinooty. Im Ernst: XML ist keine Auszeichnungssprache wie HTML. Als Teilmenge von SGMLDen Fachmann wird's zwar nerven, aber gerade in diesem Kapitel kann man nicht oft genug darauf hinweisen. ist es eben eine Spezifikation für die Schaffung beliebig vieler Auszeichnungssprachen. Einige Beispiele solcher Sprachen kommen in diesem Buch vor, und sie sind einfacher nachzuvollziehen als die allseits bekannte Web-Sprache.
Sich Sprachen auszudenken, macht bereits kleinen
Kindern Spaß. Und trotz des ernsten Hintergrunds —
schließlich lernt man komplexe Dinge nicht zum Spaß —
glauben wir, dass XML gerade durch sein X
(die
Erweiterbarkeit) Spaß machen kann und wird.
Dahin zu gelangen, erfordert Lesearbeit. Das vorliegende Buch soll nicht nur die Grundlage dafür bieten; es soll selbstverständlich auch als Nachschlagewerk dienen und zum Schmökern in den Beispielen einladen.
Das eine oder andere hier verwendete Beispiel lässt sich online nachvollziehen. An entsprechender Stelle findet sich jeweils ein Hinweis.
Wer mit XML arbeiten will, demJa, auch der ... ;-) stehen sowohl kostenlose als auch kommerziell vertriebene Produkte zur Verfügung (siehe Kapitel 12). Unter http://www.heise.de/ix/raven/Web/xml/ finden Sie eine — sicherlich unvollständige — Liste frei erhältlicher Software. Es handelt sich um Editoren und Parser sowie Tools für die Erstellung und Verarbeitung von Stylesheets beziehungsweise das Generieren von Daten (HTML, RTF).
Natürlich dürfen hier die zehn Aussagen nicht fehlen, die in der Syntaxbeschreibung von XML umreißen, worum es den Entwicklern der Sprache geht und ging:
Die meisten dieser Design-Ziele hängen zusammen, etwa
das zweite und dritte: weil SGML eben eine
Vielfalt von Anwendungen unterstützt. Nur das letzte Ziel
bringt Sie vielleicht zum Schmunzeln. Knappheit in der
Auszeichnung (terseness in markup
) ist deshalb nicht
erstrebenswert, weil Maschinen nun einmal Mengendaten gut
verarbeiten können. Es soll sich zwar
um für Menschen
lesbare Dokumente handeln, aber für Rechner, die letztlich die
Verarbeitung erledigen sollen, ist es völlig unerheblich, wie
ausführlich (oder umständlich) die Quelltexte sind. Ein
kleines Code-Beispiel (das einzige in diesem Kapitel) zeigt,
was gemeint ist:
<mitarbeiter id="firma.abteilung.4725721.r238-4523/003" eintritt="01011976" lastmod="04021997" lastmodby="firma.abteilung.31296.261263c-3461/001"> <name>Meier</name> <vorname>Heinz</vorname> <gebdatum> <jahr>1938</jahr> <monat>10</monat> <tag>29</tag> </gebdatum> <!-- viele weitere Daten --> </mitarbeiter>
Für jeden Mitarbeiter existiert ein mit seinen Detaildaten gefülltes Element MITARBEITER. Dessen Attribute enthalten Metadaten wie eine Kennnummer, das Eintrittsdatum sowie, wann und wie zum letzten Mal eine Veränderung vorgenommen worden ist. Der Rest dürfte sich von selbst erschließen.
Für Menschen lesbar sind hier auf jeden Fall die Element- und Attributnamen; selbst mit dem Inhalt kann man etwas anfangen. Die Struktur der Kennummer dagegen ist schon in diesem Beispiel eher etwas für Maschinen — und sie könnte unleserlicher sein.
Ohne jetzt schon in Erklärungen abzuschweifen: Das Beispiel riecht förmlich nach Datenbanken, und das ist kein Zufall. Ein beträchtlicher Anteil der künftig im Web abzurufenden Daten (sofern sie in XML vorliegen) dürfte aus Datenbeständen generiert sein. Das hat verschiedene Gründe. Erstens ist die sequenzielle Generierung großer Datenbestände aus einer Datenbank am sinnvollsten (Konsistenz et cetera), zweitens gilt: Habe ich aus einem Datensatz korrektes XML generiert, dann funktioniert das auch mit Hunderttausenden.
Drittens müssen die resultierenden Dokumente nicht unbedingt XML-Instanzen sein. Es kann sich — und wird es in vielen Fällen sein — um in HTML gewandelte Ausschnitte (in der Sprache der Datenbänker: Views oder Sichten) handeln. Einfachstes Beispiel ist das Inhaltsverzeichnis dieses Buches, das im Quelltext so gar nicht bestand, sondern automatisch erstellt wurde.
Zum besseren im Sinne von erfolgreicheren
Arbeiten
mit XML hier ein paar Zusätze in Form von
Geboten, an die jede(r) sich beim Verfassen oder Generieren
von XML-Dokumenten halten sollte.
Wer dies beachtet, den loben die Parser. Etwas
ausführlicher lassen die Gebote
sich etwa so
umschreiben: Alle Elemente zu schließen, heißt im
Normalfall, dass jede Elementinstanz außer dem
Start-Tag auch ein
End-Tag haben muss:
<mein-elem attribut="wert">Inhalt von mein-elem</mein-elem>
Das dürfte vor allem für diejenigen gewöhnungsbedürftig sein, die sich bislang darauf verlassen haben (und dies auch tun konnten), dass die Browser selbst herausfinden, wo ein Element aufhört und eine neues beginnt.
Eine Ausnahme gibt es auch von dieser Regel: Das
leere Element
(IMG aus
der HTML-DTD wäre ein Beispiel) kann, muss aber
nicht mit einem End-Tag abgeschlossen werden. Zusätzlich
erlaubt die Spezifikation — anders als in
HTML — eine weitere Schreibweise, den Schrägstrich
vor der schließenden spitzen Klammer:
<abbildung src="bildquelle" text="bild-kommentar" /> <abbildung src="bildquelle" text="bild-kommentar"></abbildung>
Was in HTML durch die Großzügigkeit der DTD möglich ist, nämlich End-Tags wegzulassen, das funktioniert in XML nicht. Jedes Element muss ordentlich abgeschlossen sein.
Die zweite Vorgabe ist insofern neu, als es in HTML zwar als guter Stil gilt, Attribute mit Anführungszeichen zu versehen:
<body bgcolor="#ffffff" text="#000000">
Eigentlich sind sie aber nicht erforderlich. Browser wie der Internet Explorer oder der Navigator sind auf jeden Fall einverstanden, wenn jemand die Zeichen weglässt. Das Gleiche gilt im Prinzip für das dritte Gebot, denn HTML sieht die hierarchische Schachtelung von Elementen durchaus vor. Es sind die Browser, die über Zeilen wie
<p>Beispiel: <b>fetter und <i>kursiver</b> Text</i> ab hier normal</p>
gnädig hinweggehen. In XML-Dokumenten ist strenger als in HTML darauf zu achten, dass die Elemente korrekt geschachtelt sindNoch einmal zum Grund dafür: Es gibt in XML keine Tag-Minimierung, das heißt, man darf keine End-Tags weglassen.. In den meisten Fällen wird's der Editor schon richten ... Dennoch ist es gut, sich daran zu gewöhnen, dass diese strikte Ordnung in XML wichtig ist, weil sie bereits in der Planungsphase berücksichtigt werden kann und zur sinnvollen Struktur von DTD (die die hierarchische Ordnung vorgibt beziehungsweise beschreibt) und Dokumenten beiträgt.
Disziplin hin und her: XML verspricht vielleicht keine Lösung aller durch proprietäre Formate bestehenden Konvertierungsprobleme, aber mindestens die Freude, aus einer selbst entwickelten Struktur und entsprechend ausgezeichneten Dokumenten (sowie ein paar dazugehörigen Stylesheets) Web-Dokumente zu generieren, die gut zu warten sind. Das Management einer Website etwa lässt sich durch die zentrale Verwaltung von Links (beispielsweise Sites mit vielen Seiten, die viele Links enthalten) wesentlich vereinfachen, um nur ein einfaches Beispiel zu nennen.
Außerdem ist es unsere Hoffnung, dass der Umgang mit XML kreativen Web-Autoren sogar schon für sich Spaß macht, denn wenn man die ersten Hürden überwunden hat (eine DTD zu schreiben), dürfte schnell klar sein, wo die Vorteile gegenüber HTML liegen.
Ein abschließender Satz darf in dieser Einführung nicht fehlen: Wenn Sie dieses Buch lesen, wird manches, das hier steht, leider schon veraltet sein. Das gilt für erhältliche Software ebenso wie für den Stand der Dinge beim W3C. Die Spezifikation für das Linking und Entwürfe für die Stilkomponente dürften noch in diesem Jahr fertig werden.