Infos Home | Impressum | Original Artikel & Autoren Liste


Extensible Hypertext Markup Language

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 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.

Inhalt
1 XHTML 1.0: Übergang von HTML zu XHTML
2 XHTML 1.1: Modulares Prinzip
3 XHTML Versionen
4 XHTML und Layout
5 Die wichtigsten Unterschiede zwischen HTML und XHTML
6 Erweiterungen ...
7 MIME-Typ von XHTML
8

XHTML 1.0: Übergang von HTML zu XHTML

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.

XHTML 1.1: Modulares Prinzip

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 Versionen

XHTML fasst als Begriff die verschiedenen XHTML-Versionen zusammen:

XHTML und Layout

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.

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.

Beispiel

Ein normaler Web-Browser würde folgende Seite als HTML akzeptieren:

<HTML>
  <head>
    <title>Beispiel</title>
  </head>
  <BODY>
    <H1>Beispielseite</H1>
    Ein Absatz
    <p>Noch ein<br>
    Absatz
    <OL>
      <li>Listelement
      <li>Listelement
    </OL>
    <img src=bild.gif alt="Ein Bild"> 
  </BODY>
</HTML>

Eine Konvertierung in XHTML 1.0 könnte folgendes ergeben:

<?xml version="1.0" encoding="iso-8859-1"?>
<!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>
    <p>Ein Absatz</p>
    <p>Noch ein<br />
    Absatz
    </p>
    <ol>
      <li>Listelement</li>
      <li>Listelement</li>
    </ol>
    <p>   
    <img src="bild.gif" alt="Ein Bild" />
    </p>
 </body>
</html>

Die erste Zeile <?xml version="1.0" encoding="UTF-8"?> ist optional, wird aber vom W3C-Konsortium empfohlen (Anmerkung: Die Angabe des XML-Prologs lässt den
IE 6 in den Kompatibilitäts- bzw. Quirksmodus springen). Dies führt dazu, dass XHTML-fähige Browser die Seite als XHTML interpretieren. Die Implementation von XHTML ist 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

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. für Zeilenumbruch) oder ein optionales Ende-Tag (wie

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:

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

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:

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

MIME-Typ von XHTML

Der XHTML-
MIME-Typ appliation/xhtml+xml, welcher als Content-Type-Header bei E-Mail, HTTP und in Betriebssystemen verwendet werden soll, ist in

XHTML betreffende Spezifikationen (W3C und IETF)

XHTML selbst: Grundlagen für XHTML: Erweiterungen und Ergänzungen: Sonstiges:

XHTML-Einführungen


Der Ursprungsartikel stammt von der deutschsprachigen Wiki pedia (siehe oben: "Original Artikel & Autoren Liste").
Der Text steht unter der GNU Freie Dokumentation Lizenz.