XHTML
XHTML ist die Abkürzung von '''Extensible HyperText Markup Language.
XHTML löst als Standard des W3C HTML als Textauszeichnungssprache für Webseiten im World Wide Web ab. Im Gegensatz zu seinem Vorläufer HTML, welcher nur auf SGML basiert, verwendet XHTML das strengere und einfacher zu parsende SGML-Subset XML als Sprachgrundlage. Das heißt, alle XHTML-Dokumente sind zugleich XML-Dokumente.
XHTML 1.0 enthält dabei alle Elemente von HTML 4.01, so dass eine Umformung von HTML-4.01-konformen Seiten zu XHTML 1.0 leicht möglich ist. Ein nicht XHTML-fähiger Webbrowser kann XHTML-Dokumente trotzdem richtig darstellen, er interpretiert sie als normales HTML. Ausgenutzt wird, dass die HTML-Implementationen normaler Browser tolerant gegenüber Abweichungen sind (Letzteres weil sich ohnehin nicht alle HTML-Seiten im World Wide Web zu 100 % an den Standard halten, Fehlermeldungen von Anwendern aber nicht akzeptiert werden). XHTML führt eine strengere Überprüfung des Standards ein. XHTML-fähige Browser sind daher nicht mehr tolerant, sobald sie erkennen, dass eine Seite im XHTML-Format geschrieben ist.
Seit XHTML 1.1 / XHTML Basic ist XHTML modularisiert. Einige HTML-Elemente, die in HTML ohnehin als unerwünscht (deprecated) gekennzeichnet sind, sind in dieser Version nicht mehr vorhanden. Basierend auf den Modulen kann man sich eigene XHTML-Dokumenttypen nach dem Baukastenprinzip zusammenbauen und mit eigenen Modulen und anderen XML-basierten Sprachen mischen. Das W3C schlägt unter anderem die Mischung mit SMIL (Multimedia), SVG (Vektorgrafik) oder MathML (mathematischer Formelsatz) als Beispiele dafür vor.
XHTML fasst als Begriff die verschiedenen XHTML-Versionen zusammen:
XHTML arbeitet mit CSS zur Definition des Stils zusammen. Dadurch können Inhalt und Form einer Seite getrennt definiert werden. Dies entspricht der Trennung von Redaktion und Layout. Obwohl auch HTML mit CSS zusammenarbeiten kann, geht die Entwicklungsrichtung von XHTML eindeutig weg von Layoutdefinitionen, für die dann CSS verwendet werden kann.
Ein normaler Web-Browser würde folgende Seite als HTML akzeptieren:
</OL>
</BODY>
</HTML>
HTML-Seiten besitzen als SGML-Sprache zwar eine genau definierte Struktur, die in der DTD (Document Type Definition) festgelegt ist. Ohne Kenntnis der Struktur kann aber die Hierarchie eines Dokuments nicht zweifelsfrei ermittelt werden, da hierzu die Kenntnis des Endes eines Bereichs nötig ist. Manche Elemente haben aber kein Ende-Tag (wie z. B. <br> für Zeilenumbruch) oder ein optionales Ende-Tag (wie <p> für Paragraph). XHTML als XML-Sprache behebt diesen Mangel.
HTML ist eigentlich nicht erweiterbar, übliche Browser gehen aber bei der HTML-Interpretation folgendermaßen vor:
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:
Der XHTML-MIME-Typ
Dabei gilt allgemein folgendes:
XHTML selbst:
XHTML 1.0: Übergang von HTML zu XHTML
XHTML 1.1: Modulares Prinzip
XHTML Versionen
XHTML und Layout
Die wichtigsten Unterschiede zwischen HTML und XHTML
Dokumente werden von einem XHTML- oder XML-Browser nur dargestellt, wenn sie XML-Dokumente, also wohl-geformt sind.
Außerdem wird empfohlen, nur gültige XHTML-Dokumente, also solche mit Dokumenttypdeklaration oder auch Schema zu schreiben.<br />, das Leerzeichen vor dem / wird zur Kompatibilität mit einigen älteren Browsern empfohlen.
<hr noshade="noshade" />.
<html/>-Element, muss immer die Namespace-Deklaration beim Start-Tag tragen: <html xmlns="http://www.w3.org/1999/xhtml">
lang-Attribut wurde abgeschafft bzw. durch das xml:lang-Attribut von XML ersetzt.Beispiel
<HTML>
<head>
<title>Beispiel</title>
</head>
<BODY>
<H1>Beispielseite</H1>
Ein Paragraph
<p>noch ein<br>
paragraph
<OL>
<li value=4>Listelement
<li value=5>ListelementEine Konvertierung in XHTML 1.0 könnte folgendes ergeben:<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<title>Beispiel</title>
</head>
<body>
<h1>Beispielseite</h1>
Ein Paragraph
<p>noch ein<br />
paragraph
</p>
<ol>
<li value="4">Listelement</li>
<li value="5">Listelement</li>
</ol>
</body>
</html>Die erste Zeile <?xml version="1.0" encoding="UTF-8"?> ist optional, wird aber vom W3C-Konsortium empfohlen. Dies führt dazu, dass XHTML-fähige Browser die Seite als XHTML interpretieren. Leider ist die Implementation von XHTML derzeit (2003) in verschiedenen Browsern unterschiedlich und teilweise fehlerhaft. In der Praxis wird die Zeile häufig weggelassen. Dies führt dazu, dass die Browser die Seite doch als HTML interpretieren, was zu besseren Ergebnissen und weniger Fehlern führt.Erweiterungen ...
... bei HTML
Damit ist die Interpretation von verschiedenen HTML-Versionen möglich. Führt eine Version ein neues Element ein, wird dieses von älteren Browsern 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
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öglichkeitenMIME-Typ von XHTML
appliation/xhtml+xml, welcher als Content-Type-Header bei E-Mail, HTTP und in Betriebssystemen verwendet werden soll, ist in RFC 3236 beschrieben.text/html gesendet werden.
application/xhtml+xml gesendet werden; achtet man auf die Rückwärtskompatibilität mit HTML, ist auch das Senden als text/html möglich.
application/xhtml+xml gesendet werden.Weblinks
XHTML betreffende Spezifikationen (W3C und IETF)
Grundlagen für XHTML:
Erweiterungen und Ergänzungen:
Sonstiges:






