Hi Ralf,
Ich bin daran interessiert, welche Erfahrungen ihr
mit diesem Thema habt, egal welcher Art.
HTML 4.01 nach XHTML 1.0 Transitional ist verhältnis-
mäßig einfach. Das meiste davon läßt sich prima auto-
matisieren.
(Falls es nur darum geht, Programmcode anzupassen,
der HTML generiert, ist es noch wesentlich einfacher.)
Deutlich schlimmer wäre da schon HTML 4.01 Transitional
nach HTML 4.01 Strict - da muß man in den meisten
Fällen nicht einfach nur ändern, sondern in einer
anderen Sprache (CSS) nachbilden, also ganz neu denken.
Auch sind die Verschachtelungsregeln bei "Strict" sehr
viel schärfer - die Trennung zwischen block- und
inline-Elementen ist dort konsequent durchgezogen, und
vieles, was bisher einfach "durchging" (wie Bilder
oder Link-Anker außerhalb von Block-Elementen), ist
nun verboten und muß durch eine bestimmte der zuvor
vielen erlaubten Methoden gelöst werden.
(Strict-Dokumente sind mit ganz wenigen Ausnahmen
immer auch Transitional - das Gegenteil gilt in
keinster Weise. Da ist der Name wirklich Programm.)
HTML 4.01 Strict nach XHTML 1.0 Strict oder gar XHTML
1.1 ist dann wieder genauso einfach wie bei den Tran-
sitional-Versionen - da ändert sich nur Syntax, nicht
auch Semantik.
Bei dem zugrundeliegenden Projekt geht es um einige
Millionen Zeilen Quelltext.
Holla ... meinst Du Programmquelltext oder HTML-Code?
(Ich habe meine Homepage gerade mal durchzählen lassen
- das sind ja nicht mal 150.000 Zeilen ... die Pro-
gramme, welche ich für die Generierung dieser Seiten
überwiegend einsetze, sind zusammen auch ca. 50.000
lines of code, bei denen aber die HTML-Schablonen zum
großen Teil aus Konfigurationsdateien eingelesen wer-
den - da mußte ich manchmal keine Zeile im Programm
selbst ändern.)
Ich muss davon ausgehen, dass es bei einer Änderung
der Dokumenttyp-Angabe diverse Verstöße gibt
Bist Du denn sicher, daß die bisherigen Seiten alle
valide gegen HTML 4.01 Transitional sind?
Kannst Du Deine Dokumente automatisiert validieren?
(W3C-Validator lokal installieren und per Programm
über alle Dokumente drüber laufen sollte funktionie-
ren; das Ergebnis ggf. jeweils als Datei speichern,
Quelldateien per Programm schrittchenweise modifizie-
ren, geänderte Dateien neu validieren, erfolgreich
validierte Dateien aus dem Baum in eine endgültige
Ablage übertragen ... auf diese Weise verbraucht sich
die Dokumentmenge nach und nach, und die "harten
Nüsse", die echten Problemfälle, bleiben bis zum
Schluß übrig und können manuell bearbeitet werden.)
und die Frage ist, fangen gängige Browser das über
"Transitional" ab?
Im Moment interessieren sich noch sehr wenige Browser
dafür, ob und welcher DOCTYPE in einem Dokument steht
und ob der irgendwas mit der Realität zu tun hat.
Es geht allerdings gerade los (M$IE 6, immerhin).
Mit validem HTML 4.01 und entsprechendem DOCTYPE
gehören Deine Seiten schon eher zur oberen Mittel-
klasse ... wenn man sich so umsieht, was im Web alles
kreucht und fleucht, ist das schon sehr ordentlich.
Über kurz oder lang werde ich an der Umstellung der
Syntax nicht vorbeikommen,
Wieso? Was genau hoffst Du denn zu gewinnen?
einfaches Beispiel, die Standalone-Tags.
Was ist damit?
Diese Umstellung braucht Zeit.
In der Tat. Ich habe vor einem Jahr mal ein paar
Stunden damit verbracht, per Editor Suchen und
Ersetzen durch ca. 1500 Dateien zu machen, auf dem
Weg nach XHTML 1.0 Transitional. Arg viel mehr als
das konsequente Kleinschreiben von Tags war das gar
nicht - und das läßt sich sehr gut per Programm
automatisieren. (Mein Editor kann regular expres-
sions über ganze Bäume suchen und Strings in allen
geladenen Dateien ersetzen, das half enorm.)
Für die zehnfache Dateimenge hätte ich nicht wesent-
lich länger gebraucht - ob ich ein tag in tausend
oder zehntausend Dateien ersetze, ist eine Frage
von Minuten, wenn der Rechner schnell genug ist.
Der Weg nach XHTML 1.0 Strict (oder dann gleich XHTML
1.1, _der_ Unterschied ist trivial) ist _wesentlich_
länger. (In den letzten drei Tagen habe ich ca. 200
Dateien umgestellt ... das zieht sich schon über
Monate hin, ich mache immer mal wieder einen Teil-
bereich fertig. Und einiges - Frames und Verweise
in andere Fenster - geht einfach überhaupt nicht
umzustellen, weil es in neueren XHTML-Dialekten
nicht mehr existiert. "Neuer" ist keineswegs immer
eine Obermenge ... soviel zur "Zukunftssicherheit".)
Mir ist nicht wirklich klar, was genau Du Dir von der
Umstellung erhoffst.
Die momentane Browser-Situation erzwingt das nicht.
Andererseits ist es sicher nicht verkehrt, bei neuen
Projekten mit der aktuellsten HTML-Version zu beginnen,
die verfügbar ist und die man selbst beherrscht - und
die für die gestellte Aufgabe uberhaupt ausreicht
(Frames, mehrere Fenster ...).
Es schadet auch überhaupt nicht, eine solche Umstel-
lung beliebig inkrementell zu machen: Alles, was eh
geändert werden muß, versucht man, gegen eine möglichst
hohe HTML-Version zu validieren, wenn die Anpassung
gerade mal trivial geht.
Andererseits ist es extrem sinnvoll, Dokumente gleicher
"Bauart" in einem Rutsch umzustellen, weil man sehr
wahrscheinlich gemeinsame style sheets dafür einsetzen
will, um identische (und ausgelagerte) Formatierungen
dafür zu verwenden. Das ist fast derselbe Vorgang wie
die Anpassung von Code zur Generierung solcher ein-
heitlicher Seiten.
Diese Style Sheets zu bauen ist aber wirklich die
Hauptarbeit, wenn man mit Prä-CSS-Seiten startet ...
das bißchen Kleinschreibung von tags und das Schließen
singulärer tags sind da fast vernachlässigbar, weil
praktisch ohne eigene Intelligenz zu erreichen.
Insofern rate ich Dir (abweichend von den übrigen
Postings dieses Threads), erst mal eine Umstellung
nach XHTML 1.0 Transitional in Angriff zu nehmen.
Du machst dabei nichts, was Du für spätere, weiter-
reichende Umstellungen nicht ohnehin brauchen würdest,
und es geht fast komplett mit Programmunterstützung.
Dabei kannst Du den Prozeß als solchen etablieren
(Automatisierung, siehe oben), bevor Du Dich an die
wirklich lästigen Änderungen bei "Strict" wagst - für
die dann auch konkrete Aufgabenstellungen erforderlich
sind, weil nicht alle Inhalte erhalten bleiben können.
Viele Grüße
Michael
P.S.: Bedenke auch, daß Netscape 4 Dokumente in XHTML
1.1 nicht mehr korrekt verarbeiten kann
(link-targets sind dann nämlich <a id=>, nicht
mehr <a name=>, und das versteht er noch nicht).