# Modularisierung von XHTML und XHTML 1.1

| Allgemeines zur Modularisierung von XHTML Die Module von XHTML 1.1

## Allgemeines zur Modularisierung von XHTML

HTML 4.0 und XHTML 1.0 sind - auch wenn sie von Unwissenden gerne wegen ihrer Schlichtheit belächelt werden - eigentlich sehr umfangreiche Sprachen mit einem nicht ganz einfachen Regelwerk aus über 80 Elementen, ihren möglichen Attributen, Verschachtelungsregeln, und einer ganzen Reihe benannter Zeichen. Beide Sprachen bieten damit ein brauchbares Arsenal für Hypertext-Dokumente an. Egal ob einfache Portrait-Homepages oder wissenschaftliche Abhandlungen - der Strukturvorrat von HTML/XHTML ist durchaus reichhaltig und für die meisten Zwecke ausreichend. Allerdings nicht für alle Zwecke.

Der Umfang beider Sprachen und ihre nicht ganz trivialen Regeln stellen andererseits hohe Anforderungen an die auslesende Software und deren Darstellungsfähigkeiten. Von einem modernen Web-Browser, der auf einem modernen PC läuft, kann man diese Fähigkeiten verlangen. Aber von Software, die beispielsweise in einem Handy, einem Pocket-Computer oder einem simplen Sprachwiedergabegerät läuft, kann man nicht unbedingt die gleichen Fähigkeiten erwarten.

HTML/XHTML decken also einerseits trotz ihres beträchtlichen Sprachumfangs nicht alle denkbaren Wünsche ab, und andererseits sind sie für manche Zwecke schlichtweg überdimensioniert. Aus diesem Grund gehen die Überlegungen des W3-Konsortiums in die Richtung, zumindest bei XHTML zu ermöglichen, dass sowohl abgespecktere als auch erweiterte Sprachvarianten davon möglich sind. Handy-Software könnte dann beispielsweise eine abgespecktere Sprachvariante interpretieren, während ein Mathematiker, der seine Arbeit publizieren möchte, XHTML um Elemente aus einer speziellen Auszeichnungssprache für mathematische Formeln erweitern kann.

Das Konzept zum Abspecken und Erweitern von XHTML wird als Modularisierung bezeichnet. Dass es nur bei XHTML und nicht bei HTML angewendet werden soll, liegt daran, dass für die Modularisierung XML-typische Techniken angewendet werden sollen. Die Modularisierung stellt nämlich bestimmte formale Regeln zur Verfügung, die abgespeckte oder erweiterte Varianten von XHTML einhalten müssen.

Das W3-Konsortium bietet Beschreibungen an, wie Sie zum Erstellen regelkonformer eigener Module vorgehen müssen. Über die W3-Einstiegsseite zu HTML/XHTML können Sie entsprechende aktuelle Beschreibungen aufrufen. Um die Beschreibungen zu verstehen, benötigen Sie allerdings gute Kenntnisse im Erstellen eigener DTDs. Im vorliegenden Dokument werden im XML-Unterkapitel Dokumenttyp-Definitionen (DTDs) die nötigen Grundlagen dazu beschrieben.

Neben der Möglichkeit, XHTML für eigene Zwecke zu modularisieren, macht das W3-Konsortium aber auch selber von dieser Möglichkeit Gebrauch. Dazu hat man zunächst die normativen Grundlagen zur Modularisierung geschaffen. Das entsprechende Dokument mit dem Titel Modularization of XHTML liegt als Empfehlung (Recommendation) des W3-Konsortiums vor. Ausgehend davon hat man XHTML 1.1 als modul-basiertes Sprachensystem entworfen. Auch XHTML 1.1 liegt als Empfehlung des W3-Konsortiums vor, unter dem Titel XHTML 1.1 - Module-based XHTML. XHTML 1.1 trennt sich endgültig von den in XHTML 1.0 und HTML 4.0 als deprecated (missbilligt) eingestuften Elementen und Attributen. Es entspricht nur noch der Sprachvariante Strict. Damit fallen zugleich auch die Frames wieder aus dem Konzept.

Inwieweit sich das Konzept der Modularisierung durchsetzen wird, bleibt abzuwarten. Denn wer sich mit dem Design eigener Auszeichnungssprachen befasst, kann schließlich auch direkt die Möglichkeiten von XML nutzen, um entsprechende Sprachen zu entwerfen. Und "einfacher" als XML ist das Konzept der Modularisierung sicher nicht - im Gegenteil: es setzt im Grunde die Beherrschung von XML voraus und reizt dessen Möglichkeiten aus.

## Die Module von XHTML 1.1

Die folgende Tabelle listet die Module auf, aus denen XHTML 1.1 besteht. Für die Praxis als XHTML-Anwender hat diese Modularisierung keinen Einfluss. Sie können Ihre XHTML-Dokumente schreiben wie gewohnt - mit der Einschränkung, dass Sie nichts mehr verwenden dürfen, was noch aus den HTML-Varianten Transitional und Frameset stammt.

Name des Moduls | Elemente | Erläuterung
--- | --- | ---
Structure | `body head html title` | Modul für die Elemente, die das Grundgerüst eines XHTML-Dokuments bilden.
Text | `abbr acronym address blockquote br cite code dfn div em h1 h2 h3 h4 h5 h6 kbd p pre q samp span strong var` | Modul für alle Block- und Inline-Elemente, die Text enthalten können und logische Auszeichnungen darstellen, also keinen Hinweis auf ihre visuelle Darstellung enthalten.
Hypertext | `a` | Modul für Anker und Verweise innerhalb des Dokuments.
List | `dl dt dd ol ul li` | Modul für nummerierte Listen, Aufzählungslisten und Definitionslisten (Glossarlisten).
Object | `object param` | Modul für Multimedia-Referenzen.
Presentation | `b big hr i small sub sup tt` | Modul für Elemente, die Text enthalten können und physische Auszeichnungen darstellen, also einen Hinweis auf ihre visuelle Darstellung enthalten.
Edit | `del ins` | Modul für Änderungsmarkierungen im Text.
Bidirectional Text | `bdo` | Modul für mehrsprachige Dokumente, die Text in Sprachen mit unterschiedlicher Schreibrichtung enthalten.
Forms | `button fieldset form input label legend select optgroup option textarea` | Modul für Formulare und Formularelemente.
Table | `caption col colgroup table tbody td tfoot th thead tr` | Modul für Tabellen und Tabellenelemente.
Image | `img` | Modul für Grafikreferenzen.
Client-side Image Map | `area map` | Modul für Grafiken mit verweis-sensitiven Flächen, vom Browser allein darzustellen.
Server-side Image Map | `ismap` (bei `img`) | Modul für Grafiken mit verweis-sensitiven Flächen, vom Browser in Kommunikation mit dem Web-Server darzustellen.
Intrinsic Events | `on*` (Event-Handler-Attribute) | Modul für alle Event-Handler, die als Attribut in Elementen notiert werden können und eine Schnittstelle für Script-Sprachen bilden.
Meta-Information | `meta` | Modul für Meta-Daten für Suchmaschinen und Browser.
Scripting | `noscript script` | Modul für Script-Bereiche und Bereiche für Browser, die keine Scripts ausführen können.
Stylesheet | `style` (Element) | Modul für Bereiche, in denen zentrale Stylesheet-Formate definiert werden.
Style Attribute | `style` (Attribut) | Modul für das `style`-Attribut.
Link | `link` | Modul für logische Beziehungen zu anderen Dateien.
Base | `base` | Modul für Adressbasis und Zielfensterbasis.
Ruby Annotation | `ruby rbc rtc rb rt rp` | Modul für Ruby-Text. Die entsprechenden Elemente sind neu. Ruby-Text ist eine Textform, die in fernöstlichen Sprachen verwendet wird, um Silben- oder Wortzeichen mit zusätzlichen Bedeutungshinweisen zu versehen.

| HTML-Elementreferenz
| Unterschiede zwischen XHTML und HTML

© 2007 Impressum