Extensible Hypertext Markup Language
| XHTML | |
|---|---|
| |
| Dateiendung: | .xhtml, .xht |
| MIME-Type: | application/xhtml+xml[1] |
| Entwickelt von: | World Wide Web Consortium |
| Art: | Auszeichnungssprache |
| Erweitert von: | XML, HTML |
| Standard(s): | 1.0 (Recommendation), 1.1 (Recommendation), |
| www.w3.org/International/articles/serving-xhtml/index.en.html | |
Der W3C-Standard Extensible Hypertext Markup Language (erweiterbare HTML; Abkürzung XHTML) ist eine textbasierte Auszeichnungssprache zur Strukturierung und semantischen Auszeichnung von Inhalten wie Texten, Bildern und Hyperlinks in Dokumenten. Es ist eine Neuformulierung von HTML 4.01 in XML. Im Gegensatz zu HTML, welche mittels SGML definiert wurde, verwendet XHTML die strengere und einfacher zu parsende SGML-Teilmenge XML als Sprachgrundlage. XHTML-Dokumente genügen also den Syntaxregeln von XML.
XHTML 1.0: Übergang von HTML zu XHTML
[Bearbeiten | Quelltext bearbeiten]XHTML 1.0 enthält alle Elemente von HTML 4.01, sodass 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 unter bestimmten Bedingungen trotzdem richtig darstellen (siehe MIME-Typen und HTML-Kompatibilität): er verarbeitet sie als normales HTML. Dabei wird ausgenutzt, dass die HTML-Parser der verbreiteten Browser tolerant gegenüber Syntaxfehlern sind. Diese Fehlertoleranz entstand als Antwort darauf, dass zahlreiche HTML-Dokumente im World Wide Web nicht dem formalen Standard entsprachen und Anwender Browsermeldungen über HTML-Syntax-Fehler als lästig empfinden. Für XHTML hingegen gilt die XML-Grundidee des unkomplizierten Datenaustauschs und der problemlosen automatisierten Verarbeitung. Daher sind Programme, die XHTML verarbeiten, nicht mehr derartig tolerant.
Neuere XHTML-Dokumenttypen enthalten keine Layout-Auszeichnungen mehr. XHTML Transitional 1.0 ist der letzte Dokumenttyp, welcher noch Layout-Elemente enthält, wie <font> oder <b>. In moderneren Dokumenttypen wie XHTML Strict 1.0 sind zwar noch wenige Layout-Elemente enthalten, allerdings nur noch aus Gründen der Rückwärtskompatibilität zu den Transitional-Dokumenttypen. In XHTML Basic oder XHTML 2 schließlich sind Layout-Elemente gar nicht mehr enthalten. Für die visuelle Gestaltung von XHTML-Elementen soll nur noch auf externe CSS-Regeln verwiesen werden.
XHTML-Modularisierung
[Bearbeiten | Quelltext bearbeiten]Um die Entwicklung von Sprachen zu ermöglichen, die auf XHTML basieren, wurden verwandte und zusammengehörige Elemente in XHTML 1.1 in sogenannten Modulen zusammengefasst. Basierend auf diesen in DTDs und zukünftig in XML Schema abgefassten Modulen kann man eigene XHTML-Dokumenttypen nach dem Baukastenprinzip zusammenstellen und mit anderen XML-basierten Sprachen mischen. Beispielanwendungen der XHTML-Modularisierung sind XHTML 1.1, XHTML Basic sowie die Mischungen mit SMIL (Multimedia), SVG (Vektorgrafik) und MathML (mathematischer Formelsatz). Zum Einbinden allgemeiner Objekte wie Multimedia-Plug-ins gibt es das Objektmodul.
Versionenübersicht
[Bearbeiten | Quelltext bearbeiten]XHTML fasst als Begriff die verschiedenen XHTML-Versionen zusammen:
- XHTML 1.0 stellt die XML-basierte Neuformulierung von HTML 4.01 dar. XHTML 1.0 erhält die bekannten drei Dokumenttypen Strict, Transitional und Frameset. XHTML 1.0 wurde so angelegt, dass eine Rückwärtskompatibilität mit den verbreiteten HTML-Browsern möglich ist. Gleichzeitig kann es von neueren Browsern gemäß den strengen Regeln verarbeitet werden.
- Die aktuelle Version XHTML 1.1 trennt sich von den missbilligten Elementen und Attributen der Transitional- und der Frameset-Variante, die direkt die Präsentation des Dokuments beeinflussen. Der Sprachumfang entspricht somit weitestgehend XHTML 1.0 Strict, hinzu kommen Elemente für Ruby-Erläuterungen. XHTML 1.1 ist nicht mit Blick auf die Kompatibilität zu HTML-Browsern angelegt.
- XHTML Basic ist für minimalistische Geräte wie Mobiltelefone und Handhelds ausgelegt, indem nur einige Sprachbestandteile (Module) von XHTML verwendet werden. XHTML Basic ist die Basis für XHTML Mobile Profile (siehe WAP 2.0) und für WML 2.0.
- Durch die Modularisierung entstanden weitere Misch-Versionen, wie XHTML 1.1 plus MathML plus SVG.
- Die Version XHTML 2.0, deren Entwicklung zugunsten von HTML5 Ende 2009 eingestellt wurde, hätte mit dem Erbe aus HTML 4 gebrochen und sah grundlegende Veränderungen vor.
Wichtige Neuerungen wären das vereinfachte uneingeschränkte Notieren von Hyperlinks gewesen, das vereinfachte Einbinden anderer Medienarten (z. B. Grafiken und Videos), die erweiterten Möglichkeiten, um Zugänglichkeit zu gewährleisten, und das ausgereiftere Angeben von Metadaten. Bisherige Kernfunktionen von HTML bzw. XHTML wären in XHTML 2.0 in andere XML-Sprachen ausgelagert worden, namentlich XForms für Formulare, XML Events zur Einbindung von Scripten und XFrames für Frames.
Die wichtigsten Unterschiede zwischen HTML und XHTML
[Bearbeiten | Quelltext bearbeiten]| HTML | XHTML | |
|---|---|---|
| Groß-/Kleinschreibung der Element- und Attributnamen | nicht relevant (z. B. <br>, <Br>, <BR>) |
immer klein (nur <br/>) |
Elemente ohne Inhalt, z. B. br |
<br> <br/> (von der DTD abhängig) |
entweder leeres Element-Tag (z. B. <br/>) oder mit End-Tag(z. B. <br></br>)
Die Variante |
| Start- oder End-Tag | Weglassen teilweise erlaubt | immer beide angeben |
| Attributwert in Anführungszeichen angeben | optional, solange der Attributwert bestimmte Zeichen nicht enthält. | immer |
| boolesche Attribute, z. B. checked | <input type="radio" checked> |
Attributname als Attributwert angeben, z. B. <input type="radio" checked="checked"/> |
Außerdem:
- Das Start-Tag des Wurzel-Elements
htmlmuss immer die Namensraum-Angabe für XHTML enthalten:<html xmlns="http://www.w3.org/1999/xhtml"> - In XHTML 1.1 wurde das
lang-Attribut durch dasxml:lang-Attribut von XML ersetzt. In XHTML 1.0 wird die Angabe beider Attribute empfohlen, z. B.<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">. - Die Rolle des
name-Attributs bei den Elementena,frameundmapübernimmt ab XHTML 1.0 dasid-Attribut. Wenn Abwärtskompatibilität erwünscht ist, sollten sowohl dasname- als auch dasid-Attribut mit gleichem Attributwert notiert und XHTML 1.0 übergangsweise deklariert werden. In XHTML 1.1 bzw. XHTML-Modularisierung existiert keinname-Attribut mehr für diese Elemente. - Das Attribut
namebei den Elementenformundimgist nur noch in XHTML 1.0 übergangsweise vorhanden, nicht in XHTML 1.0 Strict und XHTML 1.1. Diese Einschränkung ist vor allem beim DOM-Zugriff auf die Elemente relevant.
Beispiel
[Bearbeiten | Quelltext bearbeiten]Dies ist der Quelltext eines standardkonformen HTML-Dokuments. Das Beispiel ist bewusst so kurz wie möglich gehalten und soll Unterschiede bei der erlaubten Syntax aufzeigen. In HTML empfiehlt es sich, alle notwendigen Elemente vollständig zu notieren.