Extensible Hypertext Markup Language
Aus Tuxfutter
Inhaltsverzeichnis |
[Bearbeiten] Beschreibung
Extensible Hypertext Markup Language (XHTML) ist der XML-basierte Nachfolger den HTML-Standards. Verschiedene Probleme mit HTML sowie geänderte Anforderungen haben dazu geführt, dass HTML komplett ersetzt werden musste. Die aktuelle Version XHTML 1.1 enthält lediglich den Stil Strict, welcher keine Fehlertoleranz zulässt und die Formatierung eines XHTML-Dokuments komplett an CSS auslagert. Hierdurch wird sichergestellt, dass ein XHTML-Dokument tatsächlich nur den Aufbau einer Seite beschreibt, nicht jedoch dessen Formatierung.
[Bearbeiten] Notwendigkeit
Durch die vollständige XML-Kompatibilität ist es zudem einfacher geworden eine Hypertext-Seite einzulesen (zu parsen). Ein XHTML-Dokument kann mit jedem XML-Kompatiblen Parser eingelesen werden, HTML hingegen folgt nur bedingt bestimmten Formatierungsregeln. So mussten beispielsweise nicht alle sogenannten HTML-Tags geschlossen werden (z. B. <br>, <p>, <input> und <li>) wodurch es oft zu Problemen mit der Interpretation kam. Es war nie sichergestellt, dass Browser von zwei unterschiedlichen Herstellern das Dokument auch gleichwertig interpretierten. Es kam teilweise sogar zwischen zwei Versionen des selben Browsers zu Unterschieden in der Interpretation.
[Bearbeiten] Modularität
XHTML 1.1 ist in Module aufgeteilt um die Komplexität der Sprache sinnvoll aufzuteilen. Hierduch wird es möglich einzelne Module für den Embedded-Bereich (PDAs, Mobiltelefone) zu definieren, so dass Web-Inhalte auch auf solchen Geräte ohne massiven Speicheraufwand dargestellt werden können. Eine Übersicht der Aufteilungen ist unter [1] zu finden.
[Bearbeiten] Unterschiede
Die letzte HTML-Version 4.01 und der aktuelle Standard XHTML 1.1 unterscheiden sich extrem voneinander. Der MIME-Typ hat sich von application/html auf application/xml geändert, was den großen Unterschied noch verdeutlicht. Die wichtigsten Änderungen und Fehler:
- Die Angabe des Doctype ist notwendig
- Element- und Attributnamen müssen klein geschrieben werden (br, Br, bR und BR sind jeweils komplett andere Tags)
- keine Zeilenumbrüche in Attributwerten
- Fragmentbezeichner müssen IDs enthalten; (name-Attribut entfällt)
- Sämtliche nicht struktur-bezogenden Sonderzeichen müssen maskiert werden, auch in Adressen (z. B. & anstatt &)
- in script- und style-Bereichen müssen Zeichen wie <, > oder & maskiert werden
- a-Elemente dürfen nicht geschachtelt werden
- pre-Elemente dürfen keins der Elemente img, object, big, small, sub, sup enthalten
- button-Elemente dürfen keins der Elemente input, select, textarea, label, button, form, fieldset, isindex enthalten
- label-Elemente dürfen nicht geschachtelt werden
- form-Elemente dürfen nicht geschachtelt werden

