|
6. Erweiterungen ...
... bei HTML
HTML-Seiten besitzen als SGML-Sprache zwar eine genau definierte
Struktur, die in der DTD (Document Type Definition)
festgelegt ist. Ohne Kenntnis der DTD kann aber die Hierarchie eines
Dokuments nicht zweifelsfrei ermittelt werden. Manche Elemente haben
kein Ende-Tag (wie z. B. <br/> für Zeilenumbruch) oder ein
optionales Ende-Tag (wie <p> für Paragraph). Nur die DTD
bestimmt, welche Elemente dies sind. Kennt man sie nicht, so ist die
Dokumenthierarchie mehrdeutig. XHTML als XML-Sprache behebt diesen
Mangel.
HTML ist eigentlich nicht erweiterbar, übliche Browser gehen
aber bei der HTML-Interpretation folgendermaßen vor:
- Auszeichnung durch unbekannte Elemente wird ignoriert.
- Sie versuchen aus einer nicht-konformen Seite das Beste zumachen, d. h. eine Seite wird auf jeden Fall interpretiert.
- Bei syntaktischen Fehlern werden keine Meldungen erzeugt.
Damit ist die Interpretation von verschiedenen HTML-Versionen möglich.Führt eine Version ein neues Element ein, wird dieses von älterenBrowsern einfach ignoriert. Gleiches gilt für Attribute. Kennt ein HTML-3.2 fähiger Browser beispielsweise das in HTML 4.0 eingeführte
acronym -Element (für Abkürzungen) nicht, wird es überlesen
und die Abkürzung erscheint im normalen Zeichensatz. Gleiches gilt
für browserspezifische Erweiterungen. Das blink -Element
ist in keinem HTML-Standard enthalten. Netscape Browser stellen den
Text dann blinkend dar. Andere Browser stellen den Text wiederum
normal dar.
... und bei XHTML
XHTML geht einen anderen Weg (das X steht ja gerade für extensible,
erweiterbar). XHTML nutzt dazu das Namensraum-Konzept von XML aus.
Eine XHTML-Version bildet dabei einen solchen Namensraum.
Erweiterungen wie MathML und SVG stellen weitere Namensräume dar.
In einem XHTML-Dokument können dann solche Erweiterungen
eingebunden und verwendet werden. Die Dokumente folgen dann strikt
ihren Standards. Erweiterungen, auch zukünftige, sind dennoch durch
Bildung von neuen Namensräumen möglich, ohne dass beispielsweise
der XHTML-1.1 Standard geändert werden müsste.
Durch die Verwendung von Namensräumen ist darüberhinaus ein
Konflikt von Elementen gleichen Namens in verschiedenen
Erweiterungen ausgeschlossen. Diese können immer eindeutig
zugeordnet und sogar mit der Kennung des Namensraums ausgewählt
werden.
Ein Browser, der eine Erweiterung oder neue Version nicht kennt,
hat bei XHTML folgende Möglichkeiten:
- Er kann die Darstellung zunächst ablehnen (möglicherweise
mit der Option, sie trotzdem zu zeigen und das Beste daraus zu
machen)
- Er kann die Hierarchie der Seite ermitteln, und versuchen,
Elemente, die in älteren Versionen definiert sind, so wie in
der älteren Version darzustellen
Natürlich kann ein Browser, der auf ein in seiner Version
fehlendes blink -Element trifft, nicht einfach den Text
blinkend darstellen. Auch mathematischer Formelsatz ist unmöglich,
wenn die Routinen nicht vorhanden sind. Der Browser hat aber
folgende Möglichkeiten
- Er kann die Auszeichnung durch unbekannte Elemente ignorieren
und den Text einfach darstellen (wie unter HTML).
- Unbekannte Teile kann er ignorieren (diese Möglichkeit
existiert bei HTML nicht)
- Er kann versuchen, aus dem Web ein Plug-In für die
Erweiterung zu laden und die Seite dann korrekt darstellen.
|
|
|