XHTML
XHTML
XHTML
XHTML
XHTML
XHTML
XHTML
HTML [1] ist derzeit bekanntlich der Motor des Informationszeitalters. Mit über 4 Milliarden bei der Suchmaschine “google” registrierten Exemplaren [12] ist es wohl das weitverbreiteste Dokumentenformat überhaupt. XHTML [2] stellt die Weiterführung und weitergedachte Entwicklung von HTML dar und verbindet es durch seinen XML-Kern mit vielen weiteren Komponenten der modernen Informationstechnologie. In diesem Kapitel werden die wichtigsten Merkmale von XHTML näher erläutert.
HTML 4.0 basiert auf SGML (Standard Generalized Markup Language), welche das Definieren von Auszeichnungssprachen mit Hilfe so genannter “Document Type Definitions” und zugehörige Attribute erlaubt. Diese DTDs bilden eine Grammatik und legen somit fest, welche Elemente eine Auszeichnungssprache besitzt, sowie Regeln, welche Elemente innerhalb welcher anderen Elemente vorkommen können. SGML ist sehr ausgereift, aber auch anspruchsvoll und kompliziert.
XHTML basiert auf XML, das eine reduzierte Variante von SGML darstellt und ebenso das Definieren von Auszeichnungssprachen erlaubt. Mit der wachsenden Verbreitung von XML im Netz entstand der Wunsch, auch HTML mit Hilfe von XML zu definieren, was mit XHTML 1.0 seit Januar 2000 als Empfehlung des W3Konsortiums vorliegt. XHTML 1.0 ist daher zunächst der 100%ige Nachbau von HTML 4.0 mit Hilfe von XML.
Der Vorteil dieses Umbaus hat gute Gründe: XHTML ist syntaktisch 100% kompatibel zu wichtigen Standardsprachen wie SVG , WML oder SMIL und kann daher als Dateninsel innerhalb anderer Sprachen eingebunden werden. Umgekehrt kann aber beispielsweise SVG ebenso einen Bestandteil von XHTML darstellen. Weiterhin erlaubt es die Verwendung des Document Object Modeling, eines API zur programmtechnischen Benutzung von auf XML-basierenden Skriptsprachen. Das DOM definiert dazu Objekte, Eigenschaften und Methoden für den Zugriff auf und die Bearbeitung von Elementen dieser Sprachen, welche den syntaktischen Grundmustern folgen.
XSL, selbst eine in XML dargestellte, allgemeine Transformations-Sprache, kann diese Vorteile ebenfalls nutzen, da Sie auf alle XML-basierenden Sprachen angewendet werden kann.
Die traditionelle HTML 4.0-Notation besitzt Präsentationsaspekte wie font-, bgcolor- oder align-Tags. Robert Caillau, Mitentwickler am CERN, bezeichnet diese heute daher als “schwarze Zeiten des HTML” [6], da sie der anfänglichen Ideen des HTML-Konzeptes zuwiderliefen. Daher wird auf Layout-Elemente ab XHTML 1.1 vollständig verzichtet. Aus Kompatibilitätsgründen gibt es dennoch eine Zwischendefinition, das XHTML 1.0, welches in die Untergruppen “strict”, “transitionell” und “frameset” unterteilt wird.
Dabei stellt die Untergruppe “XHTML 1.0 strict” [2] die strukturell sauberste Mark-up-Version dar, da darin sämtliche Präsentations-Elemente in CSS ausgelagert sind und das Browser-Layout des Dokumentes somit durch andere als die Markup-Daten im HTML-Dokument spezifiziert wird. Auf diese Formate möchte ich später tiefer eingehen.
“XHTML 1.0 transitional” [2] bildet den Übergang zwischen HTML und XHTML, da hier zwar die XML-Syntax 100%ig umgesetzt wird, allerdings font-, color- oder text- Tags weiterhin nutzbar bleiben. Vorteil und Antrieb dieser Variante war, eine Vielzahl älterer HTML-Dokumente auch mit den Vorteilen von XML ausstatten und derartige XHTML-Dokumente auch von älteren Browsern korrekt darstellen lassen zu können.
“XHTML 1.0 frameset” [2] wird zur Ermöglichung des weitverbreiteten Webseiten-Framing genutzt, also der Teilung des eigentlichen Browserfensters in zwei oder mehr unabhängige Web-Dokumente.
Die letzten beiden Untergruppen werden seit XHTML 1.1 nicht weiter unterstützt, da ihre zusätzlichen Elemente durch CSS-Anweisungen ersetzt bzw. gleichwertig auf anderem Wege angepasst werden können. CSS soll dabei die hinlänglich bekannten Nachteile, nämlich die fehlende Präsentations-Inhalt-Trennung, die schlechte Bookmark-Fähigkeit bzw. fehlende Frameset-Unterseiten, verhindern und bietet entsprechende Formatierungsmöglichkeiten. Die Verknüpfung zwischen Content und Layout ermöglicht dabei ein XHTML-Element wie “p”, eine festgelegte Klasse (“class”) oder der id-Tag des XHTML-Standards. Das Design wird danach kaskadierend umgesetzt. Nähere Angaben dazu folgen im Kapitel 4.
Derzeit werden externe Objekte in Beschreibungssprachen fast vollständig durch externe Quellen eingeladen und dadurch informationsbezogen zusammengehörige Komponenten voneinander getrennt. Diese können nun weder in einem Arbeitsschritt erstellt, noch bearbeitet werden. (Bsp.: doppelte Datenbankbelastung, da Informationen sowohl für das Dokument als auch für ein dazugehöriges Diagramm abgefragt werden müssen). Einen weiteren Nachteil stellt dies für automatische Systeme wie Suchmaschinen dar, denen durch die Verlinkung die Zusammengehörigkeit der beiden erwähnten Medien fehlt. XHTML gibt durch seine XML-Basis hier die Möglichkeit, XML-Objekte einfach als Dateninsel einzubinden bzw. selbst als Dateninsel eingebunden zu werden und somit Informationsbündel als eine einzelne Informationseinheit zu verwalten.
Wie in der Einleitung bereits angesprochen, deckt XHTML eine Vielzahl von Einsatzgebieten ab. Um dabei auf der einen Seite ressourcenbenötigende Teilgebiete wie das Zeichnen hochkomplexer mathematischer Formeln oder großer SVG-Diagramme zu ermöglichen, auf der anderen Seite jedoch ebenfalls einen optimalen Zugriff von mobilen Endgeräten aus zu gewährleisten, wird ab XHTML 2.0 der Sprachumfang modularisiert und weiterführend ebenso der Aufbau von Dokumenten, um damit für Maschinen die Indexierung zu erleichtern. So kann ein Endgerät z.B. von jedem Textabschnitt nur wenige Wortgruppen anzeigen und somit auch auf einem kleinen Display optimale Ergebnisse präsentieren. Auf diese Modularisierung des Dokumentenaufbaus möchte ich in 2.4.2 näher eingehen.
Es gibt sowohl geschmälerte, als auch erweiterte Sprachvarianten, so beispielsweise eine Vereinfachung für Handys bzw. eine erweiterte Version für Mathematiker, mit denen mehr Formeln dargestellt werden können.
Mit dem XHTML 1.1 − Standard und der Auslagerung XHTMLbasic wurden 2 Möglichkeiten zur Modularisierung für verschiedene Endgeräte geschaffen.
Der XHTMLBasic document type beinhaltet den minimalen Kern an Modulen, der für ein XHTML-Muttersprachen document type benötigt wird, sowie zusätzlich Bild-, Formular-, Grundtabellen- und Objekt-Unterstützung. Er ist für WebClients geeignet, welche nicht die volle XHTML-Mächtigkeit bieten können. Dies können z.B. Mobiltelefone, PDA s, Pager oder SetTop-Boxen sein. Der Document − Type ist in jedem Fall ausreichend für Content-Authoring.
XHTML Basic bildet somit die Grundlage, welche zum Beispiel durch eine Ereignissteuerung, die generischer als das traditionelle HTML 4 Ereignissteuerungssystem ist, erweitert werden kann, ebenso wie durch zusätzliche Module der XHTML-Modularisation, so z.B. Skripting-Module. Das Ziel von XHTML Basic ist ein Grund-Sprachen-Support für die verschiedensten Arten von Endgerät-Browsern.
Einen weiteren Ansatz zu Modularisierung stellt XHTML 2.0 dar. Es versteht sich als "modulare Sprache" (XHTML host language) im Sinne, dass Tag-Gruppen verwandter Funktionalität in Form von separaten Einheiten - eben den Modulen - eingegliedert werden. Beherbergt (hosted) werden unter anderem also Module für Struktur, Textauszeichnung, Hypertext (Verweise), Tabellen und weiteres.
Attribute werden in separaten "Attribute Collections" definiert, eigentlich auch ein Modul, und den Tags gruppenweise zugeordnet. Es werden jedoch zusätzlich ebenfalls Module verwendet, die im XML-Umfeld definiert sind, wie XForms, XML-Events oder Ruby. Eigene XHTML-Module für Formulare und Frames fehlen deshalb absichtlich, ihre Funktion soll eben von XForms und dem - noch nicht fertig gestellten - XFrames übernommen werden.
Das "herkömmliche" HTML strukturierte Dokumente mit Hilfe der Blockelemente. Das gesamte Dokument wird unterteilt in Head und Body, der Body wiederum durch eine Abfolge von Strukturelementen (im einfachsten Fall) in eine Abfolge von Überschriften und Absätzen. Alternativ zu Absätzen können Tabellen oder Formulare auftreten - eine Verschachtelung dieser Strukturelemente ist aber nur bedingt erwünscht bzw. möglich.
Betrachtet man ein simples HTML-Dokument, so sieht man, dass die Überschriftenhierarchie explizit genannt werden muss, während die Zugehörigkeit eines Absatzes zu einer Überschrift eher "implizit", nämlich durch seine Position nach einer Überschrift erfolgt
Den letzten Absatz des Beispieles würde man vermutlich der dritten Überschrift zuordnen, jedoch gibt es keine Möglichkeit, dies unmissverständlich zu tun.
XHTML 2.0 eliminiert nun weitestgehend alle diejenigen Elemente, die nicht strukturelle Bedeutung besitzen. Einzige Ausnahmen sind die Tags < sub > und < sup > für höher- bzw. tiefergestellte Zeichen, denen allerdings auch logische Bedeutung zugebilligt werden kann.
Als Gegenzug kann die Darstellung des Dokumentenaufbaus jetzt als Abfolge von Abschnitten (sections) angesehen werden, welche jeweils mit Überschriften versehen werden sollten. Hierarchien innerhalb von Dokumenten können so besser dargestellt werden. Dafür wird der
-Tag neu eingeführt.
Bei einer hierarchischen Untergliederung des Dokuments wird dem <body> somit zunächst eine Sektion untergeordnet (oder mehrere, falls das Dokument in mehrere hierarchisch gleichrangige Abschnitte zerfallen soll!). Diese Sektion kann wieder mehrere Sektionen enthalten, die ihr dann hierarchisch untergeordnet sind. Diese Unterteilung kann prinzipiell beliebig tief weitergehen.
Für Überschriften innerhalb solcher Absatz-Sektionen wird alternativ der allgemeine Tag <h> angeboten, dessen Grad allein von der Position der übergeordneten Dokumentenhierarchie abhängig ist.
Ebenfalls neu ist der <line>-Tag, welcher innerhalb eines < p >-Absatzes einzelne Zeilen kennzeichnet und somit den in HTML sehr gebräuchlichen
In die Seite eingebetteten Medien werden konsequent durch den < object >-Tag dargestellt, ebenso Bilder. Ein konsequent verwirklichter Einsatz von < object> bietet bei “gewöhnlichen” Bildern ebenfalls Vorteile, wie das untere Beispiel zeigt.
< object data="hund.jpg" type="image/jpeg"> Ein großer Hund < / object>
Ist die Anzeige des Original-Bildes nicht möglich, so haben wir doch einen Container, der im Inneren Strukturen enthalten kann. Dieser < object>-Container kann selbst weitere < object>-Container enthalten. Da die Verarbeitung einer solchen Struktur stufenweise von außen nach innen erfolgt und stoppt, sobald eine Stufe erfolgreich verarbeitet werden kann, können Inhalte, die sich tiefer in der Struktur befinden, unter Umständen nie dargestellt werden.
Ein Voice-Browser beispielsweise könnte im obigen Beispiel den Alternativtext vorlesen - dank Markup vielleicht sogar mit korrekter Betonung!
Ein ähnliches Verhalten wäre auch für PDAs oder Browser mit abgeschalteter Bilddarstellung zu erwarten. Weiterhin wird der für alle Tags verwendbare “common” Attributsatz erweitert; so daß jeder beliebige Tag durch das href-Attribut als Startpunkt eines Verweises dienen kann.
XHTML 2.0 bringt HTML zurück zu seinen Wurzeln, indem sämtliche Präsentations-Elemente in CSS ausgegliedert wurden und das Dokument selbst nun wieder rein modular aufgebaut ist. Dies gibt eine größere Flexibilität. Suchmaschinen-Dienste können XHTML-Dokumente besser erfassen und indizieren. Unterschiedliche Endgeräte erhalten die selben HTML-Inhalte und werden nur über verschiedene CSS-Styles angepasst, so dass keine verschiedenen Webseiten-Varianten programmiert und gepflegt werden müssen. Neue Techniken, wie beispielsweise Voice-Browsing sind so indirekt bereits vorbereitet.
Aktuell bildet XHTML Basic die Grundlage des XHTML MobileProfils, welches eine strikte Untermenge von XHTML 1.0 aber eine Obermenge von XHTMLBasic darstellt und einige Präsentations-Elemente sowie die Unterstützung interner Style-Sheets besitzt. Das XHTML Mobile Profile ist die Spezifikation des WAP-Forums für die Authoring-Language für WAP 2.0 und wird in den verbreiteten Browsern, von u.a. Nokia, dem Access Compact NetFront 3.0 (Nachfolger des iMode-Browser) und den Samsung Gerätebrowsern unterstützt. Ein Trend zur Nutzung reiner XHTML-Browser ist dabei nach [10] deutlich erkennbar.
HTML [1] ist derzeit bekanntlich der Motor des Informationszeitalters. Mit über 4 Milliarden bei der Suchmaschine “google” registrierten Exemplaren [12] ist es wohl das weitverbreiteste Dokumentenformat überhaupt. XHTML [2] stellt die Weiterführung und weitergedachte Entwicklung von HTML dar und verbindet es durch seinen XML-Kern mit vielen weiteren Komponenten der modernen Informationstechnologie. In diesem Kapitel werden die wichtigsten Merkmale von XHTML näher erläutert.
XML-Basis
HTML 4.0 basiert auf SGML (Standard Generalized Markup Language), welche das Definieren von Auszeichnungssprachen mit Hilfe so genannter “Document Type Definitions” und zugehörige Attribute erlaubt. Diese DTDs bilden eine Grammatik und legen somit fest, welche Elemente eine Auszeichnungssprache besitzt, sowie Regeln, welche Elemente innerhalb welcher anderen Elemente vorkommen können. SGML ist sehr ausgereift, aber auch anspruchsvoll und kompliziert.
XHTML basiert auf XML, das eine reduzierte Variante von SGML darstellt und ebenso das Definieren von Auszeichnungssprachen erlaubt. Mit der wachsenden Verbreitung von XML im Netz entstand der Wunsch, auch HTML mit Hilfe von XML zu definieren, was mit XHTML 1.0 seit Januar 2000 als Empfehlung des W3Konsortiums vorliegt. XHTML 1.0 ist daher zunächst der 100%ige Nachbau von HTML 4.0 mit Hilfe von XML.
Der Vorteil dieses Umbaus hat gute Gründe: XHTML ist syntaktisch 100% kompatibel zu wichtigen Standardsprachen wie SVG , WML oder SMIL und kann daher als Dateninsel innerhalb anderer Sprachen eingebunden werden. Umgekehrt kann aber beispielsweise SVG ebenso einen Bestandteil von XHTML darstellen. Weiterhin erlaubt es die Verwendung des Document Object Modeling, eines API zur programmtechnischen Benutzung von auf XML-basierenden Skriptsprachen. Das DOM definiert dazu Objekte, Eigenschaften und Methoden für den Zugriff auf und die Bearbeitung von Elementen dieser Sprachen, welche den syntaktischen Grundmustern folgen.
XSL, selbst eine in XML dargestellte, allgemeine Transformations-Sprache, kann diese Vorteile ebenfalls nutzen, da Sie auf alle XML-basierenden Sprachen angewendet werden kann.
Reine Beschreibungssprache
Die traditionelle HTML 4.0-Notation besitzt Präsentationsaspekte wie font-, bgcolor- oder align-Tags. Robert Caillau, Mitentwickler am CERN, bezeichnet diese heute daher als “schwarze Zeiten des HTML” [6], da sie der anfänglichen Ideen des HTML-Konzeptes zuwiderliefen. Daher wird auf Layout-Elemente ab XHTML 1.1 vollständig verzichtet. Aus Kompatibilitätsgründen gibt es dennoch eine Zwischendefinition, das XHTML 1.0, welches in die Untergruppen “strict”, “transitionell” und “frameset” unterteilt wird.
Dabei stellt die Untergruppe “XHTML 1.0 strict” [2] die strukturell sauberste Mark-up-Version dar, da darin sämtliche Präsentations-Elemente in CSS ausgelagert sind und das Browser-Layout des Dokumentes somit durch andere als die Markup-Daten im HTML-Dokument spezifiziert wird. Auf diese Formate möchte ich später tiefer eingehen.
“XHTML 1.0 transitional” [2] bildet den Übergang zwischen HTML und XHTML, da hier zwar die XML-Syntax 100%ig umgesetzt wird, allerdings font-, color- oder text- Tags weiterhin nutzbar bleiben. Vorteil und Antrieb dieser Variante war, eine Vielzahl älterer HTML-Dokumente auch mit den Vorteilen von XML ausstatten und derartige XHTML-Dokumente auch von älteren Browsern korrekt darstellen lassen zu können.
“XHTML 1.0 frameset” [2] wird zur Ermöglichung des weitverbreiteten Webseiten-Framing genutzt, also der Teilung des eigentlichen Browserfensters in zwei oder mehr unabhängige Web-Dokumente.
Die letzten beiden Untergruppen werden seit XHTML 1.1 nicht weiter unterstützt, da ihre zusätzlichen Elemente durch CSS-Anweisungen ersetzt bzw. gleichwertig auf anderem Wege angepasst werden können. CSS soll dabei die hinlänglich bekannten Nachteile, nämlich die fehlende Präsentations-Inhalt-Trennung, die schlechte Bookmark-Fähigkeit bzw. fehlende Frameset-Unterseiten, verhindern und bietet entsprechende Formatierungsmöglichkeiten. Die Verknüpfung zwischen Content und Layout ermöglicht dabei ein XHTML-Element wie “p”, eine festgelegte Klasse (“class”) oder der id-Tag des XHTML-Standards. Das Design wird danach kaskadierend umgesetzt. Nähere Angaben dazu folgen im Kapitel 4.
Einbettung verschiedener XML-Sprachbestandteile
Derzeit werden externe Objekte in Beschreibungssprachen fast vollständig durch externe Quellen eingeladen und dadurch informationsbezogen zusammengehörige Komponenten voneinander getrennt. Diese können nun weder in einem Arbeitsschritt erstellt, noch bearbeitet werden. (Bsp.: doppelte Datenbankbelastung, da Informationen sowohl für das Dokument als auch für ein dazugehöriges Diagramm abgefragt werden müssen). Einen weiteren Nachteil stellt dies für automatische Systeme wie Suchmaschinen dar, denen durch die Verlinkung die Zusammengehörigkeit der beiden erwähnten Medien fehlt. XHTML gibt durch seine XML-Basis hier die Möglichkeit, XML-Objekte einfach als Dateninsel einzubinden bzw. selbst als Dateninsel eingebunden zu werden und somit Informationsbündel als eine einzelne Informationseinheit zu verwalten.
Modularisierung
Wie in der Einleitung bereits angesprochen, deckt XHTML eine Vielzahl von Einsatzgebieten ab. Um dabei auf der einen Seite ressourcenbenötigende Teilgebiete wie das Zeichnen hochkomplexer mathematischer Formeln oder großer SVG-Diagramme zu ermöglichen, auf der anderen Seite jedoch ebenfalls einen optimalen Zugriff von mobilen Endgeräten aus zu gewährleisten, wird ab XHTML 2.0 der Sprachumfang modularisiert und weiterführend ebenso der Aufbau von Dokumenten, um damit für Maschinen die Indexierung zu erleichtern. So kann ein Endgerät z.B. von jedem Textabschnitt nur wenige Wortgruppen anzeigen und somit auch auf einem kleinen Display optimale Ergebnisse präsentieren. Auf diese Modularisierung des Dokumentenaufbaus möchte ich in 2.4.2 näher eingehen.
Modularisierung des Sprachumfanges
Es gibt sowohl geschmälerte, als auch erweiterte Sprachvarianten, so beispielsweise eine Vereinfachung für Handys bzw. eine erweiterte Version für Mathematiker, mit denen mehr Formeln dargestellt werden können.
Mit dem XHTML 1.1 − Standard und der Auslagerung XHTMLbasic wurden 2 Möglichkeiten zur Modularisierung für verschiedene Endgeräte geschaffen.
Der XHTMLBasic document type beinhaltet den minimalen Kern an Modulen, der für ein XHTML-Muttersprachen document type benötigt wird, sowie zusätzlich Bild-, Formular-, Grundtabellen- und Objekt-Unterstützung. Er ist für WebClients geeignet, welche nicht die volle XHTML-Mächtigkeit bieten können. Dies können z.B. Mobiltelefone, PDA s, Pager oder SetTop-Boxen sein. Der Document − Type ist in jedem Fall ausreichend für Content-Authoring.
XHTML Basic bildet somit die Grundlage, welche zum Beispiel durch eine Ereignissteuerung, die generischer als das traditionelle HTML 4 Ereignissteuerungssystem ist, erweitert werden kann, ebenso wie durch zusätzliche Module der XHTML-Modularisation, so z.B. Skripting-Module. Das Ziel von XHTML Basic ist ein Grund-Sprachen-Support für die verschiedensten Arten von Endgerät-Browsern.
Modularisierung des Dokumentenaufbaus
Einen weiteren Ansatz zu Modularisierung stellt XHTML 2.0 dar. Es versteht sich als "modulare Sprache" (XHTML host language) im Sinne, dass Tag-Gruppen verwandter Funktionalität in Form von separaten Einheiten - eben den Modulen - eingegliedert werden. Beherbergt (hosted) werden unter anderem also Module für Struktur, Textauszeichnung, Hypertext (Verweise), Tabellen und weiteres.
Attribute werden in separaten "Attribute Collections" definiert, eigentlich auch ein Modul, und den Tags gruppenweise zugeordnet. Es werden jedoch zusätzlich ebenfalls Module verwendet, die im XML-Umfeld definiert sind, wie XForms, XML-Events oder Ruby. Eigene XHTML-Module für Formulare und Frames fehlen deshalb absichtlich, ihre Funktion soll eben von XForms und dem - noch nicht fertig gestellten - XFrames übernommen werden.
Das "herkömmliche" HTML strukturierte Dokumente mit Hilfe der Blockelemente. Das gesamte Dokument wird unterteilt in Head und Body, der Body wiederum durch eine Abfolge von Strukturelementen (im einfachsten Fall) in eine Abfolge von Überschriften und Absätzen. Alternativ zu Absätzen können Tabellen oder Formulare auftreten - eine Verschachtelung dieser Strukturelemente ist aber nur bedingt erwünscht bzw. möglich.
Betrachtet man ein simples HTML-Dokument, so sieht man, dass die Überschriftenhierarchie explizit genannt werden muss, während die Zugehörigkeit eines Absatzes zu einer Überschrift eher "implizit", nämlich durch seine Position nach einer Überschrift erfolgt
Den letzten Absatz des Beispieles würde man vermutlich der dritten Überschrift zuordnen, jedoch gibt es keine Möglichkeit, dies unmissverständlich zu tun.
XHTML 2.0 eliminiert nun weitestgehend alle diejenigen Elemente, die nicht strukturelle Bedeutung besitzen. Einzige Ausnahmen sind die Tags < sub > und < sup > für höher- bzw. tiefergestellte Zeichen, denen allerdings auch logische Bedeutung zugebilligt werden kann.
Als Gegenzug kann die Darstellung des Dokumentenaufbaus jetzt als Abfolge von Abschnitten (sections) angesehen werden, welche jeweils mit Überschriften versehen werden sollten. Hierarchien innerhalb von Dokumenten können so besser dargestellt werden. Dafür wird der
-Tag neu eingeführt.
Bei einer hierarchischen Untergliederung des Dokuments wird dem <body> somit zunächst eine Sektion untergeordnet (oder mehrere, falls das Dokument in mehrere hierarchisch gleichrangige Abschnitte zerfallen soll!). Diese Sektion kann wieder mehrere Sektionen enthalten, die ihr dann hierarchisch untergeordnet sind. Diese Unterteilung kann prinzipiell beliebig tief weitergehen.
Für Überschriften innerhalb solcher Absatz-Sektionen wird alternativ der allgemeine Tag <h> angeboten, dessen Grad allein von der Position der übergeordneten Dokumentenhierarchie abhängig ist.
Ebenfalls neu ist der <line>-Tag, welcher innerhalb eines < p >-Absatzes einzelne Zeilen kennzeichnet und somit den in HTML sehr gebräuchlichen
Konzept-Verallgemeinerung
In die Seite eingebetteten Medien werden konsequent durch den < object >-Tag dargestellt, ebenso Bilder. Ein konsequent verwirklichter Einsatz von < object> bietet bei “gewöhnlichen” Bildern ebenfalls Vorteile, wie das untere Beispiel zeigt.
< object data="hund.jpg" type="image/jpeg"> Ein großer Hund < / object>
Ist die Anzeige des Original-Bildes nicht möglich, so haben wir doch einen Container, der im Inneren Strukturen enthalten kann. Dieser < object>-Container kann selbst weitere < object>-Container enthalten. Da die Verarbeitung einer solchen Struktur stufenweise von außen nach innen erfolgt und stoppt, sobald eine Stufe erfolgreich verarbeitet werden kann, können Inhalte, die sich tiefer in der Struktur befinden, unter Umständen nie dargestellt werden.
Ein Voice-Browser beispielsweise könnte im obigen Beispiel den Alternativtext vorlesen - dank Markup vielleicht sogar mit korrekter Betonung!
Ein ähnliches Verhalten wäre auch für PDAs oder Browser mit abgeschalteter Bilddarstellung zu erwarten. Weiterhin wird der für alle Tags verwendbare “common” Attributsatz erweitert; so daß jeder beliebige Tag durch das href-Attribut als Startpunkt eines Verweises dienen kann.
Verbreitung
XHTML 2.0 bringt HTML zurück zu seinen Wurzeln, indem sämtliche Präsentations-Elemente in CSS ausgegliedert wurden und das Dokument selbst nun wieder rein modular aufgebaut ist. Dies gibt eine größere Flexibilität. Suchmaschinen-Dienste können XHTML-Dokumente besser erfassen und indizieren. Unterschiedliche Endgeräte erhalten die selben HTML-Inhalte und werden nur über verschiedene CSS-Styles angepasst, so dass keine verschiedenen Webseiten-Varianten programmiert und gepflegt werden müssen. Neue Techniken, wie beispielsweise Voice-Browsing sind so indirekt bereits vorbereitet.
Aktuell bildet XHTML Basic die Grundlage des XHTML MobileProfils, welches eine strikte Untermenge von XHTML 1.0 aber eine Obermenge von XHTMLBasic darstellt und einige Präsentations-Elemente sowie die Unterstützung interner Style-Sheets besitzt. Das XHTML Mobile Profile ist die Spezifikation des WAP-Forums für die Authoring-Language für WAP 2.0 und wird in den verbreiteten Browsern, von u.a. Nokia, dem Access Compact NetFront 3.0 (Nachfolger des iMode-Browser) und den Samsung Gerätebrowsern unterstützt. Ein Trend zur Nutzung reiner XHTML-Browser ist dabei nach [10] deutlich erkennbar.
HTML [1] ist derzeit bekanntlich der Motor des Informationszeitalters. Mit über 4 Milliarden bei der Suchmaschine “google” registrierten Exemplaren [12] ist es wohl das weitverbreiteste Dokumentenformat überhaupt. XHTML [2] stellt die Weiterführung und weitergedachte Entwicklung von HTML dar und verbindet es durch seinen XML-Kern mit vielen weiteren Komponenten der modernen Informationstechnologie. In diesem Kapitel werden die wichtigsten Merkmale von XHTML näher erläutert.
XML-Basis
HTML 4.0 basiert auf SGML (Standard Generalized Markup Language), welche das Definieren von Auszeichnungssprachen mit Hilfe so genannter “Document Type Definitions” und zugehörige Attribute erlaubt. Diese DTDs bilden eine Grammatik und legen somit fest, welche Elemente eine Auszeichnungssprache besitzt, sowie Regeln, welche Elemente innerhalb welcher anderen Elemente vorkommen können. SGML ist sehr ausgereift, aber auch anspruchsvoll und kompliziert.
XHTML basiert auf XML, das eine reduzierte Variante von SGML darstellt und ebenso das Definieren von Auszeichnungssprachen erlaubt. Mit der wachsenden Verbreitung von XML im Netz entstand der Wunsch, auch HTML mit Hilfe von XML zu definieren, was mit XHTML 1.0 seit Januar 2000 als Empfehlung des W3Konsortiums vorliegt. XHTML 1.0 ist daher zunächst der 100%ige Nachbau von HTML 4.0 mit Hilfe von XML.
Der Vorteil dieses Umbaus hat gute Gründe: XHTML ist syntaktisch 100% kompatibel zu wichtigen Standardsprachen wie SVG , WML oder SMIL und kann daher als Dateninsel innerhalb anderer Sprachen eingebunden werden. Umgekehrt kann aber beispielsweise SVG ebenso einen Bestandteil von XHTML darstellen. Weiterhin erlaubt es die Verwendung des Document Object Modeling, eines API zur programmtechnischen Benutzung von auf XML-basierenden Skriptsprachen. Das DOM definiert dazu Objekte, Eigenschaften und Methoden für den Zugriff auf und die Bearbeitung von Elementen dieser Sprachen, welche den syntaktischen Grundmustern folgen.
XSL, selbst eine in XML dargestellte, allgemeine Transformations-Sprache, kann diese Vorteile ebenfalls nutzen, da Sie auf alle XML-basierenden Sprachen angewendet werden kann.
Reine Beschreibungssprache
Die traditionelle HTML 4.0-Notation besitzt Präsentationsaspekte wie font-, bgcolor- oder align-Tags. Robert Caillau, Mitentwickler am CERN, bezeichnet diese heute daher als “schwarze Zeiten des HTML” [6], da sie der anfänglichen Ideen des HTML-Konzeptes zuwiderliefen. Daher wird auf Layout-Elemente ab XHTML 1.1 vollständig verzichtet. Aus Kompatibilitätsgründen gibt es dennoch eine Zwischendefinition, das XHTML 1.0, welches in die Untergruppen “strict”, “transitionell” und “frameset” unterteilt wird.
Dabei stellt die Untergruppe “XHTML 1.0 strict” [2] die strukturell sauberste Mark-up-Version dar, da darin sämtliche Präsentations-Elemente in CSS ausgelagert sind und das Browser-Layout des Dokumentes somit durch andere als die Markup-Daten im HTML-Dokument spezifiziert wird. Auf diese Formate möchte ich später tiefer eingehen.
“XHTML 1.0 transitional” [2] bildet den Übergang zwischen HTML und XHTML, da hier zwar die XML-Syntax 100%ig umgesetzt wird, allerdings font-, color- oder text- Tags weiterhin nutzbar bleiben. Vorteil und Antrieb dieser Variante war, eine Vielzahl älterer HTML-Dokumente auch mit den Vorteilen von XML ausstatten und derartige XHTML-Dokumente auch von älteren Browsern korrekt darstellen lassen zu können.
“XHTML 1.0 frameset” [2] wird zur Ermöglichung des weitverbreiteten Webseiten-Framing genutzt, also der Teilung des eigentlichen Browserfensters in zwei oder mehr unabhängige Web-Dokumente.
Die letzten beiden Untergruppen werden seit XHTML 1.1 nicht weiter unterstützt, da ihre zusätzlichen Elemente durch CSS-Anweisungen ersetzt bzw. gleichwertig auf anderem Wege angepasst werden können. CSS soll dabei die hinlänglich bekannten Nachteile, nämlich die fehlende Präsentations-Inhalt-Trennung, die schlechte Bookmark-Fähigkeit bzw. fehlende Frameset-Unterseiten, verhindern und bietet entsprechende Formatierungsmöglichkeiten. Die Verknüpfung zwischen Content und Layout ermöglicht dabei ein XHTML-Element wie “p”, eine festgelegte Klasse (“class”) oder der id-Tag des XHTML-Standards. Das Design wird danach kaskadierend umgesetzt. Nähere Angaben dazu folgen im Kapitel 4.
Einbettung verschiedener XML-Sprachbestandteile
Derzeit werden externe Objekte in Beschreibungssprachen fast vollständig durch externe Quellen eingeladen und dadurch informationsbezogen zusammengehörige Komponenten voneinander getrennt. Diese können nun weder in einem Arbeitsschritt erstellt, noch bearbeitet werden. (Bsp.: doppelte Datenbankbelastung, da Informationen sowohl für das Dokument als auch für ein dazugehöriges Diagramm abgefragt werden müssen). Einen weiteren Nachteil stellt dies für automatische Systeme wie Suchmaschinen dar, denen durch die Verlinkung die Zusammengehörigkeit der beiden erwähnten Medien fehlt. XHTML gibt durch seine XML-Basis hier die Möglichkeit, XML-Objekte einfach als Dateninsel einzubinden bzw. selbst als Dateninsel eingebunden zu werden und somit Informationsbündel als eine einzelne Informationseinheit zu verwalten.
Modularisierung
Wie in der Einleitung bereits angesprochen, deckt XHTML eine Vielzahl von Einsatzgebieten ab. Um dabei auf der einen Seite ressourcenbenötigende Teilgebiete wie das Zeichnen hochkomplexer mathematischer Formeln oder großer SVG-Diagramme zu ermöglichen, auf der anderen Seite jedoch ebenfalls einen optimalen Zugriff von mobilen Endgeräten aus zu gewährleisten, wird ab XHTML 2.0 der Sprachumfang modularisiert und weiterführend ebenso der Aufbau von Dokumenten, um damit für Maschinen die Indexierung zu erleichtern. So kann ein Endgerät z.B. von jedem Textabschnitt nur wenige Wortgruppen anzeigen und somit auch auf einem kleinen Display optimale Ergebnisse präsentieren. Auf diese Modularisierung des Dokumentenaufbaus möchte ich in 2.4.2 näher eingehen.
Modularisierung des Sprachumfanges
Es gibt sowohl geschmälerte, als auch erweiterte Sprachvarianten, so beispielsweise eine Vereinfachung für Handys bzw. eine erweiterte Version für Mathematiker, mit denen mehr Formeln dargestellt werden können.
Mit dem XHTML 1.1 − Standard und der Auslagerung XHTMLbasic wurden 2 Möglichkeiten zur Modularisierung für verschiedene Endgeräte geschaffen.
Der XHTMLBasic document type beinhaltet den minimalen Kern an Modulen, der für ein XHTML-Muttersprachen document type benötigt wird, sowie zusätzlich Bild-, Formular-, Grundtabellen- und Objekt-Unterstützung. Er ist für WebClients geeignet, welche nicht die volle XHTML-Mächtigkeit bieten können. Dies können z.B. Mobiltelefone, PDA s, Pager oder SetTop-Boxen sein. Der Document − Type ist in jedem Fall ausreichend für Content-Authoring.
XHTML Basic bildet somit die Grundlage, welche zum Beispiel durch eine Ereignissteuerung, die generischer als das traditionelle HTML 4 Ereignissteuerungssystem ist, erweitert werden kann, ebenso wie durch zusätzliche Module der XHTML-Modularisation, so z.B. Skripting-Module. Das Ziel von XHTML Basic ist ein Grund-Sprachen-Support für die verschiedensten Arten von Endgerät-Browsern.
Modularisierung des Dokumentenaufbaus
Einen weiteren Ansatz zu Modularisierung stellt XHTML 2.0 dar. Es versteht sich als "modulare Sprache" (XHTML host language) im Sinne, dass Tag-Gruppen verwandter Funktionalität in Form von separaten Einheiten - eben den Modulen - eingegliedert werden. Beherbergt (hosted) werden unter anderem also Module für Struktur, Textauszeichnung, Hypertext (Verweise), Tabellen und weiteres.
Attribute werden in separaten "Attribute Collections" definiert, eigentlich auch ein Modul, und den Tags gruppenweise zugeordnet. Es werden jedoch zusätzlich ebenfalls Module verwendet, die im XML-Umfeld definiert sind, wie XForms, XML-Events oder Ruby. Eigene XHTML-Module für Formulare und Frames fehlen deshalb absichtlich, ihre Funktion soll eben von XForms und dem - noch nicht fertig gestellten - XFrames übernommen werden.
Das "herkömmliche" HTML strukturierte Dokumente mit Hilfe der Blockelemente. Das gesamte Dokument wird unterteilt in Head und Body, der Body wiederum durch eine Abfolge von Strukturelementen (im einfachsten Fall) in eine Abfolge von Überschriften und Absätzen. Alternativ zu Absätzen können Tabellen oder Formulare auftreten - eine Verschachtelung dieser Strukturelemente ist aber nur bedingt erwünscht bzw. möglich.
Betrachtet man ein simples HTML-Dokument, so sieht man, dass die Überschriftenhierarchie explizit genannt werden muss, während die Zugehörigkeit eines Absatzes zu einer Überschrift eher "implizit", nämlich durch seine Position nach einer Überschrift erfolgt
Den letzten Absatz des Beispieles würde man vermutlich der dritten Überschrift zuordnen, jedoch gibt es keine Möglichkeit, dies unmissverständlich zu tun.
XHTML 2.0 eliminiert nun weitestgehend alle diejenigen Elemente, die nicht strukturelle Bedeutung besitzen. Einzige Ausnahmen sind die Tags < sub > und < sup > für höher- bzw. tiefergestellte Zeichen, denen allerdings auch logische Bedeutung zugebilligt werden kann.
Als Gegenzug kann die Darstellung des Dokumentenaufbaus jetzt als Abfolge von Abschnitten (sections) angesehen werden, welche jeweils mit Überschriften versehen werden sollten. Hierarchien innerhalb von Dokumenten können so besser dargestellt werden. Dafür wird der
-Tag neu eingeführt.
Bei einer hierarchischen Untergliederung des Dokuments wird dem <body> somit zunächst eine Sektion untergeordnet (oder mehrere, falls das Dokument in mehrere hierarchisch gleichrangige Abschnitte zerfallen soll!). Diese Sektion kann wieder mehrere Sektionen enthalten, die ihr dann hierarchisch untergeordnet sind. Diese Unterteilung kann prinzipiell beliebig tief weitergehen.
Für Überschriften innerhalb solcher Absatz-Sektionen wird alternativ der allgemeine Tag <h> angeboten, dessen Grad allein von der Position der übergeordneten Dokumentenhierarchie abhängig ist.
Ebenfalls neu ist der <line>-Tag, welcher innerhalb eines < p >-Absatzes einzelne Zeilen kennzeichnet und somit den in HTML sehr gebräuchlichen
Konzept-Verallgemeinerung
In die Seite eingebetteten Medien werden konsequent durch den < object >-Tag dargestellt, ebenso Bilder. Ein konsequent verwirklichter Einsatz von < object> bietet bei “gewöhnlichen” Bildern ebenfalls Vorteile, wie das untere Beispiel zeigt.
< object data="hund.jpg" type="image/jpeg"> Ein großer Hund < / object>
Ist die Anzeige des Original-Bildes nicht möglich, so haben wir doch einen Container, der im Inneren Strukturen enthalten kann. Dieser < object>-Container kann selbst weitere < object>-Container enthalten. Da die Verarbeitung einer solchen Struktur stufenweise von außen nach innen erfolgt und stoppt, sobald eine Stufe erfolgreich verarbeitet werden kann, können Inhalte, die sich tiefer in der Struktur befinden, unter Umständen nie dargestellt werden.
Ein Voice-Browser beispielsweise könnte im obigen Beispiel den Alternativtext vorlesen - dank Markup vielleicht sogar mit korrekter Betonung!
Ein ähnliches Verhalten wäre auch für PDAs oder Browser mit abgeschalteter Bilddarstellung zu erwarten. Weiterhin wird der für alle Tags verwendbare “common” Attributsatz erweitert; so daß jeder beliebige Tag durch das href-Attribut als Startpunkt eines Verweises dienen kann.
Verbreitung
XHTML 2.0 bringt HTML zurück zu seinen Wurzeln, indem sämtliche Präsentations-Elemente in CSS ausgegliedert wurden und das Dokument selbst nun wieder rein modular aufgebaut ist. Dies gibt eine größere Flexibilität. Suchmaschinen-Dienste können XHTML-Dokumente besser erfassen und indizieren. Unterschiedliche Endgeräte erhalten die selben HTML-Inhalte und werden nur über verschiedene CSS-Styles angepasst, so dass keine verschiedenen Webseiten-Varianten programmiert und gepflegt werden müssen. Neue Techniken, wie beispielsweise Voice-Browsing sind so indirekt bereits vorbereitet.
Aktuell bildet XHTML Basic die Grundlage des XHTML MobileProfils, welches eine strikte Untermenge von XHTML 1.0 aber eine Obermenge von XHTMLBasic darstellt und einige Präsentations-Elemente sowie die Unterstützung interner Style-Sheets besitzt. Das XHTML Mobile Profile ist die Spezifikation des WAP-Forums für die Authoring-Language für WAP 2.0 und wird in den verbreiteten Browsern, von u.a. Nokia, dem Access Compact NetFront 3.0 (Nachfolger des iMode-Browser) und den Samsung Gerätebrowsern unterstützt. Ein Trend zur Nutzung reiner XHTML-Browser ist dabei nach [10] deutlich erkennbar.
HTML [1] ist derzeit bekanntlich der Motor des Informationszeitalters. Mit über 4 Milliarden bei der Suchmaschine “google” registrierten Exemplaren [12] ist es wohl das weitverbreiteste Dokumentenformat überhaupt. XHTML [2] stellt die Weiterführung und weitergedachte Entwicklung von HTML dar und verbindet es durch seinen XML-Kern mit vielen weiteren Komponenten der modernen Informationstechnologie. In diesem Kapitel werden die wichtigsten Merkmale von XHTML näher erläutert.
XML-Basis
HTML 4.0 basiert auf SGML (Standard Generalized Markup Language), welche das Definieren von Auszeichnungssprachen mit Hilfe so genannter “Document Type Definitions” und zugehörige Attribute erlaubt. Diese DTDs bilden eine Grammatik und legen somit fest, welche Elemente eine Auszeichnungssprache besitzt, sowie Regeln, welche Elemente innerhalb welcher anderen Elemente vorkommen können. SGML ist sehr ausgereift, aber auch anspruchsvoll und kompliziert.
XHTML basiert auf XML, das eine reduzierte Variante von SGML darstellt und ebenso das Definieren von Auszeichnungssprachen erlaubt. Mit der wachsenden Verbreitung von XML im Netz entstand der Wunsch, auch HTML mit Hilfe von XML zu definieren, was mit XHTML 1.0 seit Januar 2000 als Empfehlung des W3Konsortiums vorliegt. XHTML 1.0 ist daher zunächst der 100%ige Nachbau von HTML 4.0 mit Hilfe von XML.
Der Vorteil dieses Umbaus hat gute Gründe: XHTML ist syntaktisch 100% kompatibel zu wichtigen Standardsprachen wie SVG , WML oder SMIL und kann daher als Dateninsel innerhalb anderer Sprachen eingebunden werden. Umgekehrt kann aber beispielsweise SVG ebenso einen Bestandteil von XHTML darstellen. Weiterhin erlaubt es die Verwendung des Document Object Modeling, eines API zur programmtechnischen Benutzung von auf XML-basierenden Skriptsprachen. Das DOM definiert dazu Objekte, Eigenschaften und Methoden für den Zugriff auf und die Bearbeitung von Elementen dieser Sprachen, welche den syntaktischen Grundmustern folgen.
XSL, selbst eine in XML dargestellte, allgemeine Transformations-Sprache, kann diese Vorteile ebenfalls nutzen, da Sie auf alle XML-basierenden Sprachen angewendet werden kann.
Reine Beschreibungssprache
Die traditionelle HTML 4.0-Notation besitzt Präsentationsaspekte wie font-, bgcolor- oder align-Tags. Robert Caillau, Mitentwickler am CERN, bezeichnet diese heute daher als “schwarze Zeiten des HTML” [6], da sie der anfänglichen Ideen des HTML-Konzeptes zuwiderliefen. Daher wird auf Layout-Elemente ab XHTML 1.1 vollständig verzichtet. Aus Kompatibilitätsgründen gibt es dennoch eine Zwischendefinition, das XHTML 1.0, welches in die Untergruppen “strict”, “transitionell” und “frameset” unterteilt wird.
Dabei stellt die Untergruppe “XHTML 1.0 strict” [2] die strukturell sauberste Mark-up-Version dar, da darin sämtliche Präsentations-Elemente in CSS ausgelagert sind und das Browser-Layout des Dokumentes somit durch andere als die Markup-Daten im HTML-Dokument spezifiziert wird. Auf diese Formate möchte ich später tiefer eingehen.
“XHTML 1.0 transitional” [2] bildet den Übergang zwischen HTML und XHTML, da hier zwar die XML-Syntax 100%ig umgesetzt wird, allerdings font-, color- oder text- Tags weiterhin nutzbar bleiben. Vorteil und Antrieb dieser Variante war, eine Vielzahl älterer HTML-Dokumente auch mit den Vorteilen von XML ausstatten und derartige XHTML-Dokumente auch von älteren Browsern korrekt darstellen lassen zu können.
“XHTML 1.0 frameset” [2] wird zur Ermöglichung des weitverbreiteten Webseiten-Framing genutzt, also der Teilung des eigentlichen Browserfensters in zwei oder mehr unabhängige Web-Dokumente.
Die letzten beiden Untergruppen werden seit XHTML 1.1 nicht weiter unterstützt, da ihre zusätzlichen Elemente durch CSS-Anweisungen ersetzt bzw. gleichwertig auf anderem Wege angepasst werden können. CSS soll dabei die hinlänglich bekannten Nachteile, nämlich die fehlende Präsentations-Inhalt-Trennung, die schlechte Bookmark-Fähigkeit bzw. fehlende Frameset-Unterseiten, verhindern und bietet entsprechende Formatierungsmöglichkeiten. Die Verknüpfung zwischen Content und Layout ermöglicht dabei ein XHTML-Element wie “p”, eine festgelegte Klasse (“class”) oder der id-Tag des XHTML-Standards. Das Design wird danach kaskadierend umgesetzt. Nähere Angaben dazu folgen im Kapitel 4.
Einbettung verschiedener XML-Sprachbestandteile
Derzeit werden externe Objekte in Beschreibungssprachen fast vollständig durch externe Quellen eingeladen und dadurch informationsbezogen zusammengehörige Komponenten voneinander getrennt. Diese können nun weder in einem Arbeitsschritt erstellt, noch bearbeitet werden. (Bsp.: doppelte Datenbankbelastung, da Informationen sowohl für das Dokument als auch für ein dazugehöriges Diagramm abgefragt werden müssen). Einen weiteren Nachteil stellt dies für automatische Systeme wie Suchmaschinen dar, denen durch die Verlinkung die Zusammengehörigkeit der beiden erwähnten Medien fehlt. XHTML gibt durch seine XML-Basis hier die Möglichkeit, XML-Objekte einfach als Dateninsel einzubinden bzw. selbst als Dateninsel eingebunden zu werden und somit Informationsbündel als eine einzelne Informationseinheit zu verwalten.
Modularisierung
Wie in der Einleitung bereits angesprochen, deckt XHTML eine Vielzahl von Einsatzgebieten ab. Um dabei auf der einen Seite ressourcenbenötigende Teilgebiete wie das Zeichnen hochkomplexer mathematischer Formeln oder großer SVG-Diagramme zu ermöglichen, auf der anderen Seite jedoch ebenfalls einen optimalen Zugriff von mobilen Endgeräten aus zu gewährleisten, wird ab XHTML 2.0 der Sprachumfang modularisiert und weiterführend ebenso der Aufbau von Dokumenten, um damit für Maschinen die Indexierung zu erleichtern. So kann ein Endgerät z.B. von jedem Textabschnitt nur wenige Wortgruppen anzeigen und somit auch auf einem kleinen Display optimale Ergebnisse präsentieren. Auf diese Modularisierung des Dokumentenaufbaus möchte ich in 2.4.2 näher eingehen.
Modularisierung des Sprachumfanges
Es gibt sowohl geschmälerte, als auch erweiterte Sprachvarianten, so beispielsweise eine Vereinfachung für Handys bzw. eine erweiterte Version für Mathematiker, mit denen mehr Formeln dargestellt werden können.
Mit dem XHTML 1.1 − Standard und der Auslagerung XHTMLbasic wurden 2 Möglichkeiten zur Modularisierung für verschiedene Endgeräte geschaffen.
Der XHTMLBasic document type beinhaltet den minimalen Kern an Modulen, der für ein XHTML-Muttersprachen document type benötigt wird, sowie zusätzlich Bild-, Formular-, Grundtabellen- und Objekt-Unterstützung. Er ist für WebClients geeignet, welche nicht die volle XHTML-Mächtigkeit bieten können. Dies können z.B. Mobiltelefone, PDA s, Pager oder SetTop-Boxen sein. Der Document − Type ist in jedem Fall ausreichend für Content-Authoring.
XHTML Basic bildet somit die Grundlage, welche zum Beispiel durch eine Ereignissteuerung, die generischer als das traditionelle HTML 4 Ereignissteuerungssystem ist, erweitert werden kann, ebenso wie durch zusätzliche Module der XHTML-Modularisation, so z.B. Skripting-Module. Das Ziel von XHTML Basic ist ein Grund-Sprachen-Support für die verschiedensten Arten von Endgerät-Browsern.
Modularisierung des Dokumentenaufbaus
Einen weiteren Ansatz zu Modularisierung stellt XHTML 2.0 dar. Es versteht sich als "modulare Sprache" (XHTML host language) im Sinne, dass Tag-Gruppen verwandter Funktionalität in Form von separaten Einheiten - eben den Modulen - eingegliedert werden. Beherbergt (hosted) werden unter anderem also Module für Struktur, Textauszeichnung, Hypertext (Verweise), Tabellen und weiteres.
Attribute werden in separaten "Attribute Collections" definiert, eigentlich auch ein Modul, und den Tags gruppenweise zugeordnet. Es werden jedoch zusätzlich ebenfalls Module verwendet, die im XML-Umfeld definiert sind, wie XForms, XML-Events oder Ruby. Eigene XHTML-Module für Formulare und Frames fehlen deshalb absichtlich, ihre Funktion soll eben von XForms und dem - noch nicht fertig gestellten - XFrames übernommen werden.
Das "herkömmliche" HTML strukturierte Dokumente mit Hilfe der Blockelemente. Das gesamte Dokument wird unterteilt in Head und Body, der Body wiederum durch eine Abfolge von Strukturelementen (im einfachsten Fall) in eine Abfolge von Überschriften und Absätzen. Alternativ zu Absätzen können Tabellen oder Formulare auftreten - eine Verschachtelung dieser Strukturelemente ist aber nur bedingt erwünscht bzw. möglich.
Betrachtet man ein simples HTML-Dokument, so sieht man, dass die Überschriftenhierarchie explizit genannt werden muss, während die Zugehörigkeit eines Absatzes zu einer Überschrift eher "implizit", nämlich durch seine Position nach einer Überschrift erfolgt
Den letzten Absatz des Beispieles würde man vermutlich der dritten Überschrift zuordnen, jedoch gibt es keine Möglichkeit, dies unmissverständlich zu tun.
XHTML 2.0 eliminiert nun weitestgehend alle diejenigen Elemente, die nicht strukturelle Bedeutung besitzen. Einzige Ausnahmen sind die Tags < sub > und < sup > für höher- bzw. tiefergestellte Zeichen, denen allerdings auch logische Bedeutung zugebilligt werden kann.
Als Gegenzug kann die Darstellung des Dokumentenaufbaus jetzt als Abfolge von Abschnitten (sections) angesehen werden, welche jeweils mit Überschriften versehen werden sollten. Hierarchien innerhalb von Dokumenten können so besser dargestellt werden. Dafür wird der
-Tag neu eingeführt.
Bei einer hierarchischen Untergliederung des Dokuments wird dem <body> somit zunächst eine Sektion untergeordnet (oder mehrere, falls das Dokument in mehrere hierarchisch gleichrangige Abschnitte zerfallen soll!). Diese Sektion kann wieder mehrere Sektionen enthalten, die ihr dann hierarchisch untergeordnet sind. Diese Unterteilung kann prinzipiell beliebig tief weitergehen.
Für Überschriften innerhalb solcher Absatz-Sektionen wird alternativ der allgemeine Tag <h> angeboten, dessen Grad allein von der Position der übergeordneten Dokumentenhierarchie abhängig ist.
Ebenfalls neu ist der <line>-Tag, welcher innerhalb eines < p >-Absatzes einzelne Zeilen kennzeichnet und somit den in HTML sehr gebräuchlichen
Konzept-Verallgemeinerung
In die Seite eingebetteten Medien werden konsequent durch den < object >-Tag dargestellt, ebenso Bilder. Ein konsequent verwirklichter Einsatz von < object> bietet bei “gewöhnlichen” Bildern ebenfalls Vorteile, wie das untere Beispiel zeigt.
< object data="hund.jpg" type="image/jpeg"> Ein großer Hund < / object>
Ist die Anzeige des Original-Bildes nicht möglich, so haben wir doch einen Container, der im Inneren Strukturen enthalten kann. Dieser < object>-Container kann selbst weitere < object>-Container enthalten. Da die Verarbeitung einer solchen Struktur stufenweise von außen nach innen erfolgt und stoppt, sobald eine Stufe erfolgreich verarbeitet werden kann, können Inhalte, die sich tiefer in der Struktur befinden, unter Umständen nie dargestellt werden.
Ein Voice-Browser beispielsweise könnte im obigen Beispiel den Alternativtext vorlesen - dank Markup vielleicht sogar mit korrekter Betonung!
Ein ähnliches Verhalten wäre auch für PDAs oder Browser mit abgeschalteter Bilddarstellung zu erwarten. Weiterhin wird der für alle Tags verwendbare “common” Attributsatz erweitert; so daß jeder beliebige Tag durch das href-Attribut als Startpunkt eines Verweises dienen kann.
Verbreitung
XHTML 2.0 bringt HTML zurück zu seinen Wurzeln, indem sämtliche Präsentations-Elemente in CSS ausgegliedert wurden und das Dokument selbst nun wieder rein modular aufgebaut ist. Dies gibt eine größere Flexibilität. Suchmaschinen-Dienste können XHTML-Dokumente besser erfassen und indizieren. Unterschiedliche Endgeräte erhalten die selben HTML-Inhalte und werden nur über verschiedene CSS-Styles angepasst, so dass keine verschiedenen Webseiten-Varianten programmiert und gepflegt werden müssen. Neue Techniken, wie beispielsweise Voice-Browsing sind so indirekt bereits vorbereitet.
Aktuell bildet XHTML Basic die Grundlage des XHTML MobileProfils, welches eine strikte Untermenge von XHTML 1.0 aber eine Obermenge von XHTMLBasic darstellt und einige Präsentations-Elemente sowie die Unterstützung interner Style-Sheets besitzt. Das XHTML Mobile Profile ist die Spezifikation des WAP-Forums für die Authoring-Language für WAP 2.0 und wird in den verbreiteten Browsern, von u.a. Nokia, dem Access Compact NetFront 3.0 (Nachfolger des iMode-Browser) und den Samsung Gerätebrowsern unterstützt. Ein Trend zur Nutzung reiner XHTML-Browser ist dabei nach [10] deutlich erkennbar.
HTML [1] ist derzeit bekanntlich der Motor des Informationszeitalters. Mit über 4 Milliarden bei der Suchmaschine “google” registrierten Exemplaren [12] ist es wohl das weitverbreiteste Dokumentenformat überhaupt. XHTML [2] stellt die Weiterführung und weitergedachte Entwicklung von HTML dar und verbindet es durch seinen XML-Kern mit vielen weiteren Komponenten der modernen Informationstechnologie. In diesem Kapitel werden die wichtigsten Merkmale von XHTML näher erläutert.
XML-Basis
HTML 4.0 basiert auf SGML (Standard Generalized Markup Language), welche das Definieren von Auszeichnungssprachen mit Hilfe so genannter “Document Type Definitions” und zugehörige Attribute erlaubt. Diese DTDs bilden eine Grammatik und legen somit fest, welche Elemente eine Auszeichnungssprache besitzt, sowie Regeln, welche Elemente innerhalb welcher anderen Elemente vorkommen können. SGML ist sehr ausgereift, aber auch anspruchsvoll und kompliziert.
XHTML basiert auf XML, das eine reduzierte Variante von SGML darstellt und ebenso das Definieren von Auszeichnungssprachen erlaubt. Mit der wachsenden Verbreitung von XML im Netz entstand der Wunsch, auch HTML mit Hilfe von XML zu definieren, was mit XHTML 1.0 seit Januar 2000 als Empfehlung des W3Konsortiums vorliegt. XHTML 1.0 ist daher zunächst der 100%ige Nachbau von HTML 4.0 mit Hilfe von XML.
Der Vorteil dieses Umbaus hat gute Gründe: XHTML ist syntaktisch 100% kompatibel zu wichtigen Standardsprachen wie SVG , WML oder SMIL und kann daher als Dateninsel innerhalb anderer Sprachen eingebunden werden. Umgekehrt kann aber beispielsweise SVG ebenso einen Bestandteil von XHTML darstellen. Weiterhin erlaubt es die Verwendung des Document Object Modeling, eines API zur programmtechnischen Benutzung von auf XML-basierenden Skriptsprachen. Das DOM definiert dazu Objekte, Eigenschaften und Methoden für den Zugriff auf und die Bearbeitung von Elementen dieser Sprachen, welche den syntaktischen Grundmustern folgen.
XSL, selbst eine in XML dargestellte, allgemeine Transformations-Sprache, kann diese Vorteile ebenfalls nutzen, da Sie auf alle XML-basierenden Sprachen angewendet werden kann.
Reine Beschreibungssprache
Die traditionelle HTML 4.0-Notation besitzt Präsentationsaspekte wie font-, bgcolor- oder align-Tags. Robert Caillau, Mitentwickler am CERN, bezeichnet diese heute daher als “schwarze Zeiten des HTML” [6], da sie der anfänglichen Ideen des HTML-Konzeptes zuwiderliefen. Daher wird auf Layout-Elemente ab XHTML 1.1 vollständig verzichtet. Aus Kompatibilitätsgründen gibt es dennoch eine Zwischendefinition, das XHTML 1.0, welches in die Untergruppen “strict”, “transitionell” und “frameset” unterteilt wird.
Dabei stellt die Untergruppe “XHTML 1.0 strict” [2] die strukturell sauberste Mark-up-Version dar, da darin sämtliche Präsentations-Elemente in CSS ausgelagert sind und das Browser-Layout des Dokumentes somit durch andere als die Markup-Daten im HTML-Dokument spezifiziert wird. Auf diese Formate möchte ich später tiefer eingehen.
“XHTML 1.0 transitional” [2] bildet den Übergang zwischen HTML und XHTML, da hier zwar die XML-Syntax 100%ig umgesetzt wird, allerdings font-, color- oder text- Tags weiterhin nutzbar bleiben. Vorteil und Antrieb dieser Variante war, eine Vielzahl älterer HTML-Dokumente auch mit den Vorteilen von XML ausstatten und derartige XHTML-Dokumente auch von älteren Browsern korrekt darstellen lassen zu können.
“XHTML 1.0 frameset” [2] wird zur Ermöglichung des weitverbreiteten Webseiten-Framing genutzt, also der Teilung des eigentlichen Browserfensters in zwei oder mehr unabhängige Web-Dokumente.
Die letzten beiden Untergruppen werden seit XHTML 1.1 nicht weiter unterstützt, da ihre zusätzlichen Elemente durch CSS-Anweisungen ersetzt bzw. gleichwertig auf anderem Wege angepasst werden können. CSS soll dabei die hinlänglich bekannten Nachteile, nämlich die fehlende Präsentations-Inhalt-Trennung, die schlechte Bookmark-Fähigkeit bzw. fehlende Frameset-Unterseiten, verhindern und bietet entsprechende Formatierungsmöglichkeiten. Die Verknüpfung zwischen Content und Layout ermöglicht dabei ein XHTML-Element wie “p”, eine festgelegte Klasse (“class”) oder der id-Tag des XHTML-Standards. Das Design wird danach kaskadierend umgesetzt. Nähere Angaben dazu folgen im Kapitel 4.
Einbettung verschiedener XML-Sprachbestandteile
Derzeit werden externe Objekte in Beschreibungssprachen fast vollständig durch externe Quellen eingeladen und dadurch informationsbezogen zusammengehörige Komponenten voneinander getrennt. Diese können nun weder in einem Arbeitsschritt erstellt, noch bearbeitet werden. (Bsp.: doppelte Datenbankbelastung, da Informationen sowohl für das Dokument als auch für ein dazugehöriges Diagramm abgefragt werden müssen). Einen weiteren Nachteil stellt dies für automatische Systeme wie Suchmaschinen dar, denen durch die Verlinkung die Zusammengehörigkeit der beiden erwähnten Medien fehlt. XHTML gibt durch seine XML-Basis hier die Möglichkeit, XML-Objekte einfach als Dateninsel einzubinden bzw. selbst als Dateninsel eingebunden zu werden und somit Informationsbündel als eine einzelne Informationseinheit zu verwalten.
Modularisierung
Wie in der Einleitung bereits angesprochen, deckt XHTML eine Vielzahl von Einsatzgebieten ab. Um dabei auf der einen Seite ressourcenbenötigende Teilgebiete wie das Zeichnen hochkomplexer mathematischer Formeln oder großer SVG-Diagramme zu ermöglichen, auf der anderen Seite jedoch ebenfalls einen optimalen Zugriff von mobilen Endgeräten aus zu gewährleisten, wird ab XHTML 2.0 der Sprachumfang modularisiert und weiterführend ebenso der Aufbau von Dokumenten, um damit für Maschinen die Indexierung zu erleichtern. So kann ein Endgerät z.B. von jedem Textabschnitt nur wenige Wortgruppen anzeigen und somit auch auf einem kleinen Display optimale Ergebnisse präsentieren. Auf diese Modularisierung des Dokumentenaufbaus möchte ich in 2.4.2 näher eingehen.
Modularisierung des Sprachumfanges
Es gibt sowohl geschmälerte, als auch erweiterte Sprachvarianten, so beispielsweise eine Vereinfachung für Handys bzw. eine erweiterte Version für Mathematiker, mit denen mehr Formeln dargestellt werden können.
Mit dem XHTML 1.1 − Standard und der Auslagerung XHTMLbasic wurden 2 Möglichkeiten zur Modularisierung für verschiedene Endgeräte geschaffen.
Der XHTMLBasic document type beinhaltet den minimalen Kern an Modulen, der für ein XHTML-Muttersprachen document type benötigt wird, sowie zusätzlich Bild-, Formular-, Grundtabellen- und Objekt-Unterstützung. Er ist für WebClients geeignet, welche nicht die volle XHTML-Mächtigkeit bieten können. Dies können z.B. Mobiltelefone, PDA s, Pager oder SetTop-Boxen sein. Der Document − Type ist in jedem Fall ausreichend für Content-Authoring.
XHTML Basic bildet somit die Grundlage, welche zum Beispiel durch eine Ereignissteuerung, die generischer als das traditionelle HTML 4 Ereignissteuerungssystem ist, erweitert werden kann, ebenso wie durch zusätzliche Module der XHTML-Modularisation, so z.B. Skripting-Module. Das Ziel von XHTML Basic ist ein Grund-Sprachen-Support für die verschiedensten Arten von Endgerät-Browsern.
Modularisierung des Dokumentenaufbaus
Einen weiteren Ansatz zu Modularisierung stellt XHTML 2.0 dar. Es versteht sich als "modulare Sprache" (XHTML host language) im Sinne, dass Tag-Gruppen verwandter Funktionalität in Form von separaten Einheiten - eben den Modulen - eingegliedert werden. Beherbergt (hosted) werden unter anderem also Module für Struktur, Textauszeichnung, Hypertext (Verweise), Tabellen und weiteres.
Attribute werden in separaten "Attribute Collections" definiert, eigentlich auch ein Modul, und den Tags gruppenweise zugeordnet. Es werden jedoch zusätzlich ebenfalls Module verwendet, die im XML-Umfeld definiert sind, wie XForms, XML-Events oder Ruby. Eigene XHTML-Module für Formulare und Frames fehlen deshalb absichtlich, ihre Funktion soll eben von XForms und dem - noch nicht fertig gestellten - XFrames übernommen werden.
Das "herkömmliche" HTML strukturierte Dokumente mit Hilfe der Blockelemente. Das gesamte Dokument wird unterteilt in Head und Body, der Body wiederum durch eine Abfolge von Strukturelementen (im einfachsten Fall) in eine Abfolge von Überschriften und Absätzen. Alternativ zu Absätzen können Tabellen oder Formulare auftreten - eine Verschachtelung dieser Strukturelemente ist aber nur bedingt erwünscht bzw. möglich.
Betrachtet man ein simples HTML-Dokument, so sieht man, dass die Überschriftenhierarchie explizit genannt werden muss, während die Zugehörigkeit eines Absatzes zu einer Überschrift eher "implizit", nämlich durch seine Position nach einer Überschrift erfolgt
Den letzten Absatz des Beispieles würde man vermutlich der dritten Überschrift zuordnen, jedoch gibt es keine Möglichkeit, dies unmissverständlich zu tun.
XHTML 2.0 eliminiert nun weitestgehend alle diejenigen Elemente, die nicht strukturelle Bedeutung besitzen. Einzige Ausnahmen sind die Tags < sub > und < sup > für höher- bzw. tiefergestellte Zeichen, denen allerdings auch logische Bedeutung zugebilligt werden kann.
Als Gegenzug kann die Darstellung des Dokumentenaufbaus jetzt als Abfolge von Abschnitten (sections) angesehen werden, welche jeweils mit Überschriften versehen werden sollten. Hierarchien innerhalb von Dokumenten können so besser dargestellt werden. Dafür wird der
-Tag neu eingeführt.
Bei einer hierarchischen Untergliederung des Dokuments wird dem <body> somit zunächst eine Sektion untergeordnet (oder mehrere, falls das Dokument in mehrere hierarchisch gleichrangige Abschnitte zerfallen soll!). Diese Sektion kann wieder mehrere Sektionen enthalten, die ihr dann hierarchisch untergeordnet sind. Diese Unterteilung kann prinzipiell beliebig tief weitergehen.
Für Überschriften innerhalb solcher Absatz-Sektionen wird alternativ der allgemeine Tag <h> angeboten, dessen Grad allein von der Position der übergeordneten Dokumentenhierarchie abhängig ist.
Ebenfalls neu ist der <line>-Tag, welcher innerhalb eines < p >-Absatzes einzelne Zeilen kennzeichnet und somit den in HTML sehr gebräuchlichen
Konzept-Verallgemeinerung
In die Seite eingebetteten Medien werden konsequent durch den < object >-Tag dargestellt, ebenso Bilder. Ein konsequent verwirklichter Einsatz von < object> bietet bei “gewöhnlichen” Bildern ebenfalls Vorteile, wie das untere Beispiel zeigt.
< object data="hund.jpg" type="image/jpeg"> Ein großer Hund < / object>
Ist die Anzeige des Original-Bildes nicht möglich, so haben wir doch einen Container, der im Inneren Strukturen enthalten kann. Dieser < object>-Container kann selbst weitere < object>-Container enthalten. Da die Verarbeitung einer solchen Struktur stufenweise von außen nach innen erfolgt und stoppt, sobald eine Stufe erfolgreich verarbeitet werden kann, können Inhalte, die sich tiefer in der Struktur befinden, unter Umständen nie dargestellt werden.
Ein Voice-Browser beispielsweise könnte im obigen Beispiel den Alternativtext vorlesen - dank Markup vielleicht sogar mit korrekter Betonung!
Ein ähnliches Verhalten wäre auch für PDAs oder Browser mit abgeschalteter Bilddarstellung zu erwarten. Weiterhin wird der für alle Tags verwendbare “common” Attributsatz erweitert; so daß jeder beliebige Tag durch das href-Attribut als Startpunkt eines Verweises dienen kann.
Verbreitung
XHTML 2.0 bringt HTML zurück zu seinen Wurzeln, indem sämtliche Präsentations-Elemente in CSS ausgegliedert wurden und das Dokument selbst nun wieder rein modular aufgebaut ist. Dies gibt eine größere Flexibilität. Suchmaschinen-Dienste können XHTML-Dokumente besser erfassen und indizieren. Unterschiedliche Endgeräte erhalten die selben HTML-Inhalte und werden nur über verschiedene CSS-Styles angepasst, so dass keine verschiedenen Webseiten-Varianten programmiert und gepflegt werden müssen. Neue Techniken, wie beispielsweise Voice-Browsing sind so indirekt bereits vorbereitet.
Aktuell bildet XHTML Basic die Grundlage des XHTML MobileProfils, welches eine strikte Untermenge von XHTML 1.0 aber eine Obermenge von XHTMLBasic darstellt und einige Präsentations-Elemente sowie die Unterstützung interner Style-Sheets besitzt. Das XHTML Mobile Profile ist die Spezifikation des WAP-Forums für die Authoring-Language für WAP 2.0 und wird in den verbreiteten Browsern, von u.a. Nokia, dem Access Compact NetFront 3.0 (Nachfolger des iMode-Browser) und den Samsung Gerätebrowsern unterstützt. Ein Trend zur Nutzung reiner XHTML-Browser ist dabei nach [10] deutlich erkennbar.
HTML [1] ist derzeit bekanntlich der Motor des Informationszeitalters. Mit über 4 Milliarden bei der Suchmaschine “google” registrierten Exemplaren [12] ist es wohl das weitverbreiteste Dokumentenformat überhaupt. XHTML [2] stellt die Weiterführung und weitergedachte Entwicklung von HTML dar und verbindet es durch seinen XML-Kern mit vielen weiteren Komponenten der modernen Informationstechnologie. In diesem Kapitel werden die wichtigsten Merkmale von XHTML näher erläutert.
XML-Basis
HTML 4.0 basiert auf SGML (Standard Generalized Markup Language), welche das Definieren von Auszeichnungssprachen mit Hilfe so genannter “Document Type Definitions” und zugehörige Attribute erlaubt. Diese DTDs bilden eine Grammatik und legen somit fest, welche Elemente eine Auszeichnungssprache besitzt, sowie Regeln, welche Elemente innerhalb welcher anderen Elemente vorkommen können. SGML ist sehr ausgereift, aber auch anspruchsvoll und kompliziert.
XHTML basiert auf XML, das eine reduzierte Variante von SGML darstellt und ebenso das Definieren von Auszeichnungssprachen erlaubt. Mit der wachsenden Verbreitung von XML im Netz entstand der Wunsch, auch HTML mit Hilfe von XML zu definieren, was mit XHTML 1.0 seit Januar 2000 als Empfehlung des W3Konsortiums vorliegt. XHTML 1.0 ist daher zunächst der 100%ige Nachbau von HTML 4.0 mit Hilfe von XML.
Der Vorteil dieses Umbaus hat gute Gründe: XHTML ist syntaktisch 100% kompatibel zu wichtigen Standardsprachen wie SVG , WML oder SMIL und kann daher als Dateninsel innerhalb anderer Sprachen eingebunden werden. Umgekehrt kann aber beispielsweise SVG ebenso einen Bestandteil von XHTML darstellen. Weiterhin erlaubt es die Verwendung des Document Object Modeling, eines API zur programmtechnischen Benutzung von auf XML-basierenden Skriptsprachen. Das DOM definiert dazu Objekte, Eigenschaften und Methoden für den Zugriff auf und die Bearbeitung von Elementen dieser Sprachen, welche den syntaktischen Grundmustern folgen.
XSL, selbst eine in XML dargestellte, allgemeine Transformations-Sprache, kann diese Vorteile ebenfalls nutzen, da Sie auf alle XML-basierenden Sprachen angewendet werden kann.
Reine Beschreibungssprache
Die traditionelle HTML 4.0-Notation besitzt Präsentationsaspekte wie font-, bgcolor- oder align-Tags. Robert Caillau, Mitentwickler am CERN, bezeichnet diese heute daher als “schwarze Zeiten des HTML” [6], da sie der anfänglichen Ideen des HTML-Konzeptes zuwiderliefen. Daher wird auf Layout-Elemente ab XHTML 1.1 vollständig verzichtet. Aus Kompatibilitätsgründen gibt es dennoch eine Zwischendefinition, das XHTML 1.0, welches in die Untergruppen “strict”, “transitionell” und “frameset” unterteilt wird.
Dabei stellt die Untergruppe “XHTML 1.0 strict” [2] die strukturell sauberste Mark-up-Version dar, da darin sämtliche Präsentations-Elemente in CSS ausgelagert sind und das Browser-Layout des Dokumentes somit durch andere als die Markup-Daten im HTML-Dokument spezifiziert wird. Auf diese Formate möchte ich später tiefer eingehen.
“XHTML 1.0 transitional” [2] bildet den Übergang zwischen HTML und XHTML, da hier zwar die XML-Syntax 100%ig umgesetzt wird, allerdings font-, color- oder text- Tags weiterhin nutzbar bleiben. Vorteil und Antrieb dieser Variante war, eine Vielzahl älterer HTML-Dokumente auch mit den Vorteilen von XML ausstatten und derartige XHTML-Dokumente auch von älteren Browsern korrekt darstellen lassen zu können.
“XHTML 1.0 frameset” [2] wird zur Ermöglichung des weitverbreiteten Webseiten-Framing genutzt, also der Teilung des eigentlichen Browserfensters in zwei oder mehr unabhängige Web-Dokumente.
Die letzten beiden Untergruppen werden seit XHTML 1.1 nicht weiter unterstützt, da ihre zusätzlichen Elemente durch CSS-Anweisungen ersetzt bzw. gleichwertig auf anderem Wege angepasst werden können. CSS soll dabei die hinlänglich bekannten Nachteile, nämlich die fehlende Präsentations-Inhalt-Trennung, die schlechte Bookmark-Fähigkeit bzw. fehlende Frameset-Unterseiten, verhindern und bietet entsprechende Formatierungsmöglichkeiten. Die Verknüpfung zwischen Content und Layout ermöglicht dabei ein XHTML-Element wie “p”, eine festgelegte Klasse (“class”) oder der id-Tag des XHTML-Standards. Das Design wird danach kaskadierend umgesetzt. Nähere Angaben dazu folgen im Kapitel 4.
Einbettung verschiedener XML-Sprachbestandteile
Derzeit werden externe Objekte in Beschreibungssprachen fast vollständig durch externe Quellen eingeladen und dadurch informationsbezogen zusammengehörige Komponenten voneinander getrennt. Diese können nun weder in einem Arbeitsschritt erstellt, noch bearbeitet werden. (Bsp.: doppelte Datenbankbelastung, da Informationen sowohl für das Dokument als auch für ein dazugehöriges Diagramm abgefragt werden müssen). Einen weiteren Nachteil stellt dies für automatische Systeme wie Suchmaschinen dar, denen durch die Verlinkung die Zusammengehörigkeit der beiden erwähnten Medien fehlt. XHTML gibt durch seine XML-Basis hier die Möglichkeit, XML-Objekte einfach als Dateninsel einzubinden bzw. selbst als Dateninsel eingebunden zu werden und somit Informationsbündel als eine einzelne Informationseinheit zu verwalten.
Modularisierung
Wie in der Einleitung bereits angesprochen, deckt XHTML eine Vielzahl von Einsatzgebieten ab. Um dabei auf der einen Seite ressourcenbenötigende Teilgebiete wie das Zeichnen hochkomplexer mathematischer Formeln oder großer SVG-Diagramme zu ermöglichen, auf der anderen Seite jedoch ebenfalls einen optimalen Zugriff von mobilen Endgeräten aus zu gewährleisten, wird ab XHTML 2.0 der Sprachumfang modularisiert und weiterführend ebenso der Aufbau von Dokumenten, um damit für Maschinen die Indexierung zu erleichtern. So kann ein Endgerät z.B. von jedem Textabschnitt nur wenige Wortgruppen anzeigen und somit auch auf einem kleinen Display optimale Ergebnisse präsentieren. Auf diese Modularisierung des Dokumentenaufbaus möchte ich in 2.4.2 näher eingehen.
Modularisierung des Sprachumfanges
Es gibt sowohl geschmälerte, als auch erweiterte Sprachvarianten, so beispielsweise eine Vereinfachung für Handys bzw. eine erweiterte Version für Mathematiker, mit denen mehr Formeln dargestellt werden können.
Mit dem XHTML 1.1 − Standard und der Auslagerung XHTMLbasic wurden 2 Möglichkeiten zur Modularisierung für verschiedene Endgeräte geschaffen.
Der XHTMLBasic document type beinhaltet den minimalen Kern an Modulen, der für ein XHTML-Muttersprachen document type benötigt wird, sowie zusätzlich Bild-, Formular-, Grundtabellen- und Objekt-Unterstützung. Er ist für WebClients geeignet, welche nicht die volle XHTML-Mächtigkeit bieten können. Dies können z.B. Mobiltelefone, PDA s, Pager oder SetTop-Boxen sein. Der Document − Type ist in jedem Fall ausreichend für Content-Authoring.
XHTML Basic bildet somit die Grundlage, welche zum Beispiel durch eine Ereignissteuerung, die generischer als das traditionelle HTML 4 Ereignissteuerungssystem ist, erweitert werden kann, ebenso wie durch zusätzliche Module der XHTML-Modularisation, so z.B. Skripting-Module. Das Ziel von XHTML Basic ist ein Grund-Sprachen-Support für die verschiedensten Arten von Endgerät-Browsern.
Modularisierung des Dokumentenaufbaus
Einen weiteren Ansatz zu Modularisierung stellt XHTML 2.0 dar. Es versteht sich als "modulare Sprache" (XHTML host language) im Sinne, dass Tag-Gruppen verwandter Funktionalität in Form von separaten Einheiten - eben den Modulen - eingegliedert werden. Beherbergt (hosted) werden unter anderem also Module für Struktur, Textauszeichnung, Hypertext (Verweise), Tabellen und weiteres.
Attribute werden in separaten "Attribute Collections" definiert, eigentlich auch ein Modul, und den Tags gruppenweise zugeordnet. Es werden jedoch zusätzlich ebenfalls Module verwendet, die im XML-Umfeld definiert sind, wie XForms, XML-Events oder Ruby. Eigene XHTML-Module für Formulare und Frames fehlen deshalb absichtlich, ihre Funktion soll eben von XForms und dem - noch nicht fertig gestellten - XFrames übernommen werden.
Das "herkömmliche" HTML strukturierte Dokumente mit Hilfe der Blockelemente. Das gesamte Dokument wird unterteilt in Head und Body, der Body wiederum durch eine Abfolge von Strukturelementen (im einfachsten Fall) in eine Abfolge von Überschriften und Absätzen. Alternativ zu Absätzen können Tabellen oder Formulare auftreten - eine Verschachtelung dieser Strukturelemente ist aber nur bedingt erwünscht bzw. möglich.
Betrachtet man ein simples HTML-Dokument, so sieht man, dass die Überschriftenhierarchie explizit genannt werden muss, während die Zugehörigkeit eines Absatzes zu einer Überschrift eher "implizit", nämlich durch seine Position nach einer Überschrift erfolgt
Den letzten Absatz des Beispieles würde man vermutlich der dritten Überschrift zuordnen, jedoch gibt es keine Möglichkeit, dies unmissverständlich zu tun.
XHTML 2.0 eliminiert nun weitestgehend alle diejenigen Elemente, die nicht strukturelle Bedeutung besitzen. Einzige Ausnahmen sind die Tags < sub > und < sup > für höher- bzw. tiefergestellte Zeichen, denen allerdings auch logische Bedeutung zugebilligt werden kann.
Als Gegenzug kann die Darstellung des Dokumentenaufbaus jetzt als Abfolge von Abschnitten (sections) angesehen werden, welche jeweils mit Überschriften versehen werden sollten. Hierarchien innerhalb von Dokumenten können so besser dargestellt werden. Dafür wird der
-Tag neu eingeführt.
Bei einer hierarchischen Untergliederung des Dokuments wird dem <body> somit zunächst eine Sektion untergeordnet (oder mehrere, falls das Dokument in mehrere hierarchisch gleichrangige Abschnitte zerfallen soll!). Diese Sektion kann wieder mehrere Sektionen enthalten, die ihr dann hierarchisch untergeordnet sind. Diese Unterteilung kann prinzipiell beliebig tief weitergehen.
Für Überschriften innerhalb solcher Absatz-Sektionen wird alternativ der allgemeine Tag <h> angeboten, dessen Grad allein von der Position der übergeordneten Dokumentenhierarchie abhängig ist.
Ebenfalls neu ist der <line>-Tag, welcher innerhalb eines < p >-Absatzes einzelne Zeilen kennzeichnet und somit den in HTML sehr gebräuchlichen
Konzept-Verallgemeinerung
In die Seite eingebetteten Medien werden konsequent durch den < object >-Tag dargestellt, ebenso Bilder. Ein konsequent verwirklichter Einsatz von < object> bietet bei “gewöhnlichen” Bildern ebenfalls Vorteile, wie das untere Beispiel zeigt.
< object data="hund.jpg" type="image/jpeg"> Ein großer Hund < / object>
Ist die Anzeige des Original-Bildes nicht möglich, so haben wir doch einen Container, der im Inneren Strukturen enthalten kann. Dieser < object>-Container kann selbst weitere < object>-Container enthalten. Da die Verarbeitung einer solchen Struktur stufenweise von außen nach innen erfolgt und stoppt, sobald eine Stufe erfolgreich verarbeitet werden kann, können Inhalte, die sich tiefer in der Struktur befinden, unter Umständen nie dargestellt werden.
Ein Voice-Browser beispielsweise könnte im obigen Beispiel den Alternativtext vorlesen - dank Markup vielleicht sogar mit korrekter Betonung!
Ein ähnliches Verhalten wäre auch für PDAs oder Browser mit abgeschalteter Bilddarstellung zu erwarten. Weiterhin wird der für alle Tags verwendbare “common” Attributsatz erweitert; so daß jeder beliebige Tag durch das href-Attribut als Startpunkt eines Verweises dienen kann.
Verbreitung
XHTML 2.0 bringt HTML zurück zu seinen Wurzeln, indem sämtliche Präsentations-Elemente in CSS ausgegliedert wurden und das Dokument selbst nun wieder rein modular aufgebaut ist. Dies gibt eine größere Flexibilität. Suchmaschinen-Dienste können XHTML-Dokumente besser erfassen und indizieren. Unterschiedliche Endgeräte erhalten die selben HTML-Inhalte und werden nur über verschiedene CSS-Styles angepasst, so dass keine verschiedenen Webseiten-Varianten programmiert und gepflegt werden müssen. Neue Techniken, wie beispielsweise Voice-Browsing sind so indirekt bereits vorbereitet.
Aktuell bildet XHTML Basic die Grundlage des XHTML MobileProfils, welches eine strikte Untermenge von XHTML 1.0 aber eine Obermenge von XHTMLBasic darstellt und einige Präsentations-Elemente sowie die Unterstützung interner Style-Sheets besitzt. Das XHTML Mobile Profile ist die Spezifikation des WAP-Forums für die Authoring-Language für WAP 2.0 und wird in den verbreiteten Browsern, von u.a. Nokia, dem Access Compact NetFront 3.0 (Nachfolger des iMode-Browser) und den Samsung Gerätebrowsern unterstützt. Ein Trend zur Nutzung reiner XHTML-Browser ist dabei nach [10] deutlich erkennbar.
HTML [1] ist derzeit bekanntlich der Motor des Informationszeitalters. Mit über 4 Milliarden bei der Suchmaschine “google” registrierten Exemplaren [12] ist es wohl das weitverbreiteste Dokumentenformat überhaupt. XHTML [2] stellt die Weiterführung und weitergedachte Entwicklung von HTML dar und verbindet es durch seinen XML-Kern mit vielen weiteren Komponenten der modernen Informationstechnologie. In diesem Kapitel werden die wichtigsten Merkmale von XHTML näher erläutert.
XML-Basis
HTML 4.0 basiert auf SGML (Standard Generalized Markup Language), welche das Definieren von Auszeichnungssprachen mit Hilfe so genannter “Document Type Definitions” und zugehörige Attribute erlaubt. Diese DTDs bilden eine Grammatik und legen somit fest, welche Elemente eine Auszeichnungssprache besitzt, sowie Regeln, welche Elemente innerhalb welcher anderen Elemente vorkommen können. SGML ist sehr ausgereift, aber auch anspruchsvoll und kompliziert.
XHTML basiert auf XML, das eine reduzierte Variante von SGML darstellt und ebenso das Definieren von Auszeichnungssprachen erlaubt. Mit der wachsenden Verbreitung von XML im Netz entstand der Wunsch, auch HTML mit Hilfe von XML zu definieren, was mit XHTML 1.0 seit Januar 2000 als Empfehlung des W3Konsortiums vorliegt. XHTML 1.0 ist daher zunächst der 100%ige Nachbau von HTML 4.0 mit Hilfe von XML.
Der Vorteil dieses Umbaus hat gute Gründe: XHTML ist syntaktisch 100% kompatibel zu wichtigen Standardsprachen wie SVG , WML oder SMIL und kann daher als Dateninsel innerhalb anderer Sprachen eingebunden werden. Umgekehrt kann aber beispielsweise SVG ebenso einen Bestandteil von XHTML darstellen. Weiterhin erlaubt es die Verwendung des Document Object Modeling, eines API zur programmtechnischen Benutzung von auf XML-basierenden Skriptsprachen. Das DOM definiert dazu Objekte, Eigenschaften und Methoden für den Zugriff auf und die Bearbeitung von Elementen dieser Sprachen, welche den syntaktischen Grundmustern folgen.
XSL, selbst eine in XML dargestellte, allgemeine Transformations-Sprache, kann diese Vorteile ebenfalls nutzen, da Sie auf alle XML-basierenden Sprachen angewendet werden kann.
Reine Beschreibungssprache
Die traditionelle HTML 4.0-Notation besitzt Präsentationsaspekte wie font-, bgcolor- oder align-Tags. Robert Caillau, Mitentwickler am CERN, bezeichnet diese heute daher als “schwarze Zeiten des HTML” [6], da sie der anfänglichen Ideen des HTML-Konzeptes zuwiderliefen. Daher wird auf Layout-Elemente ab XHTML 1.1 vollständig verzichtet. Aus Kompatibilitätsgründen gibt es dennoch eine Zwischendefinition, das XHTML 1.0, welches in die Untergruppen “strict”, “transitionell” und “frameset” unterteilt wird.
Dabei stellt die Untergruppe “XHTML 1.0 strict” [2] die strukturell sauberste Mark-up-Version dar, da darin sämtliche Präsentations-Elemente in CSS ausgelagert sind und das Browser-Layout des Dokumentes somit durch andere als die Markup-Daten im HTML-Dokument spezifiziert wird. Auf diese Formate möchte ich später tiefer eingehen.
“XHTML 1.0 transitional” [2] bildet den Übergang zwischen HTML und XHTML, da hier zwar die XML-Syntax 100%ig umgesetzt wird, allerdings font-, color- oder text- Tags weiterhin nutzbar bleiben. Vorteil und Antrieb dieser Variante war, eine Vielzahl älterer HTML-Dokumente auch mit den Vorteilen von XML ausstatten und derartige XHTML-Dokumente auch von älteren Browsern korrekt darstellen lassen zu können.
“XHTML 1.0 frameset” [2] wird zur Ermöglichung des weitverbreiteten Webseiten-Framing genutzt, also der Teilung des eigentlichen Browserfensters in zwei oder mehr unabhängige Web-Dokumente.
Die letzten beiden Untergruppen werden seit XHTML 1.1 nicht weiter unterstützt, da ihre zusätzlichen Elemente durch CSS-Anweisungen ersetzt bzw. gleichwertig auf anderem Wege angepasst werden können. CSS soll dabei die hinlänglich bekannten Nachteile, nämlich die fehlende Präsentations-Inhalt-Trennung, die schlechte Bookmark-Fähigkeit bzw. fehlende Frameset-Unterseiten, verhindern und bietet entsprechende Formatierungsmöglichkeiten. Die Verknüpfung zwischen Content und Layout ermöglicht dabei ein XHTML-Element wie “p”, eine festgelegte Klasse (“class”) oder der id-Tag des XHTML-Standards. Das Design wird danach kaskadierend umgesetzt. Nähere Angaben dazu folgen im Kapitel 4.
Einbettung verschiedener XML-Sprachbestandteile
Derzeit werden externe Objekte in Beschreibungssprachen fast vollständig durch externe Quellen eingeladen und dadurch informationsbezogen zusammengehörige Komponenten voneinander getrennt. Diese können nun weder in einem Arbeitsschritt erstellt, noch bearbeitet werden. (Bsp.: doppelte Datenbankbelastung, da Informationen sowohl für das Dokument als auch für ein dazugehöriges Diagramm abgefragt werden müssen). Einen weiteren Nachteil stellt dies für automatische Systeme wie Suchmaschinen dar, denen durch die Verlinkung die Zusammengehörigkeit der beiden erwähnten Medien fehlt. XHTML gibt durch seine XML-Basis hier die Möglichkeit, XML-Objekte einfach als Dateninsel einzubinden bzw. selbst als Dateninsel eingebunden zu werden und somit Informationsbündel als eine einzelne Informationseinheit zu verwalten.
Modularisierung
Wie in der Einleitung bereits angesprochen, deckt XHTML eine Vielzahl von Einsatzgebieten ab. Um dabei auf der einen Seite ressourcenbenötigende Teilgebiete wie das Zeichnen hochkomplexer mathematischer Formeln oder großer SVG-Diagramme zu ermöglichen, auf der anderen Seite jedoch ebenfalls einen optimalen Zugriff von mobilen Endgeräten aus zu gewährleisten, wird ab XHTML 2.0 der Sprachumfang modularisiert und weiterführend ebenso der Aufbau von Dokumenten, um damit für Maschinen die Indexierung zu erleichtern. So kann ein Endgerät z.B. von jedem Textabschnitt nur wenige Wortgruppen anzeigen und somit auch auf einem kleinen Display optimale Ergebnisse präsentieren. Auf diese Modularisierung des Dokumentenaufbaus möchte ich in 2.4.2 näher eingehen.
Modularisierung des Sprachumfanges
Es gibt sowohl geschmälerte, als auch erweiterte Sprachvarianten, so beispielsweise eine Vereinfachung für Handys bzw. eine erweiterte Version für Mathematiker, mit denen mehr Formeln dargestellt werden können.
Mit dem XHTML 1.1 − Standard und der Auslagerung XHTMLbasic wurden 2 Möglichkeiten zur Modularisierung für verschiedene Endgeräte geschaffen.
Der XHTMLBasic document type beinhaltet den minimalen Kern an Modulen, der für ein XHTML-Muttersprachen document type benötigt wird, sowie zusätzlich Bild-, Formular-, Grundtabellen- und Objekt-Unterstützung. Er ist für WebClients geeignet, welche nicht die volle XHTML-Mächtigkeit bieten können. Dies können z.B. Mobiltelefone, PDA s, Pager oder SetTop-Boxen sein. Der Document − Type ist in jedem Fall ausreichend für Content-Authoring.
XHTML Basic bildet somit die Grundlage, welche zum Beispiel durch eine Ereignissteuerung, die generischer als das traditionelle HTML 4 Ereignissteuerungssystem ist, erweitert werden kann, ebenso wie durch zusätzliche Module der XHTML-Modularisation, so z.B. Skripting-Module. Das Ziel von XHTML Basic ist ein Grund-Sprachen-Support für die verschiedensten Arten von Endgerät-Browsern.
Modularisierung des Dokumentenaufbaus
Einen weiteren Ansatz zu Modularisierung stellt XHTML 2.0 dar. Es versteht sich als "modulare Sprache" (XHTML host language) im Sinne, dass Tag-Gruppen verwandter Funktionalität in Form von separaten Einheiten - eben den Modulen - eingegliedert werden. Beherbergt (hosted) werden unter anderem also Module für Struktur, Textauszeichnung, Hypertext (Verweise), Tabellen und weiteres.
Attribute werden in separaten "Attribute Collections" definiert, eigentlich auch ein Modul, und den Tags gruppenweise zugeordnet. Es werden jedoch zusätzlich ebenfalls Module verwendet, die im XML-Umfeld definiert sind, wie XForms, XML-Events oder Ruby. Eigene XHTML-Module für Formulare und Frames fehlen deshalb absichtlich, ihre Funktion soll eben von XForms und dem - noch nicht fertig gestellten - XFrames übernommen werden.
Das "herkömmliche" HTML strukturierte Dokumente mit Hilfe der Blockelemente. Das gesamte Dokument wird unterteilt in Head und Body, der Body wiederum durch eine Abfolge von Strukturelementen (im einfachsten Fall) in eine Abfolge von Überschriften und Absätzen. Alternativ zu Absätzen können Tabellen oder Formulare auftreten - eine Verschachtelung dieser Strukturelemente ist aber nur bedingt erwünscht bzw. möglich.
Betrachtet man ein simples HTML-Dokument, so sieht man, dass die Überschriftenhierarchie explizit genannt werden muss, während die Zugehörigkeit eines Absatzes zu einer Überschrift eher "implizit", nämlich durch seine Position nach einer Überschrift erfolgt
Den letzten Absatz des Beispieles würde man vermutlich der dritten Überschrift zuordnen, jedoch gibt es keine Möglichkeit, dies unmissverständlich zu tun.
XHTML 2.0 eliminiert nun weitestgehend alle diejenigen Elemente, die nicht strukturelle Bedeutung besitzen. Einzige Ausnahmen sind die Tags < sub > und < sup > für höher- bzw. tiefergestellte Zeichen, denen allerdings auch logische Bedeutung zugebilligt werden kann.
Als Gegenzug kann die Darstellung des Dokumentenaufbaus jetzt als Abfolge von Abschnitten (sections) angesehen werden, welche jeweils mit Überschriften versehen werden sollten. Hierarchien innerhalb von Dokumenten können so besser dargestellt werden. Dafür wird der
-Tag neu eingeführt.
Bei einer hierarchischen Untergliederung des Dokuments wird dem <body> somit zunächst eine Sektion untergeordnet (oder mehrere, falls das Dokument in mehrere hierarchisch gleichrangige Abschnitte zerfallen soll!). Diese Sektion kann wieder mehrere Sektionen enthalten, die ihr dann hierarchisch untergeordnet sind. Diese Unterteilung kann prinzipiell beliebig tief weitergehen.
Für Überschriften innerhalb solcher Absatz-Sektionen wird alternativ der allgemeine Tag <h> angeboten, dessen Grad allein von der Position der übergeordneten Dokumentenhierarchie abhängig ist.
Ebenfalls neu ist der <line>-Tag, welcher innerhalb eines < p >-Absatzes einzelne Zeilen kennzeichnet und somit den in HTML sehr gebräuchlichen
Konzept-Verallgemeinerung
In die Seite eingebetteten Medien werden konsequent durch den < object >-Tag dargestellt, ebenso Bilder. Ein konsequent verwirklichter Einsatz von < object> bietet bei “gewöhnlichen” Bildern ebenfalls Vorteile, wie das untere Beispiel zeigt.
< object data="hund.jpg" type="image/jpeg"> Ein großer Hund < / object>
Ist die Anzeige des Original-Bildes nicht möglich, so haben wir doch einen Container, der im Inneren Strukturen enthalten kann. Dieser < object>-Container kann selbst weitere < object>-Container enthalten. Da die Verarbeitung einer solchen Struktur stufenweise von außen nach innen erfolgt und stoppt, sobald eine Stufe erfolgreich verarbeitet werden kann, können Inhalte, die sich tiefer in der Struktur befinden, unter Umständen nie dargestellt werden.
Ein Voice-Browser beispielsweise könnte im obigen Beispiel den Alternativtext vorlesen - dank Markup vielleicht sogar mit korrekter Betonung!
Ein ähnliches Verhalten wäre auch für PDAs oder Browser mit abgeschalteter Bilddarstellung zu erwarten. Weiterhin wird der für alle Tags verwendbare “common” Attributsatz erweitert; so daß jeder beliebige Tag durch das href-Attribut als Startpunkt eines Verweises dienen kann.
Verbreitung
XHTML 2.0 bringt HTML zurück zu seinen Wurzeln, indem sämtliche Präsentations-Elemente in CSS ausgegliedert wurden und das Dokument selbst nun wieder rein modular aufgebaut ist. Dies gibt eine größere Flexibilität. Suchmaschinen-Dienste können XHTML-Dokumente besser erfassen und indizieren. Unterschiedliche Endgeräte erhalten die selben HTML-Inhalte und werden nur über verschiedene CSS-Styles angepasst, so dass keine verschiedenen Webseiten-Varianten programmiert und gepflegt werden müssen. Neue Techniken, wie beispielsweise Voice-Browsing sind so indirekt bereits vorbereitet.
Aktuell bildet XHTML Basic die Grundlage des XHTML MobileProfils, welches eine strikte Untermenge von XHTML 1.0 aber eine Obermenge von XHTMLBasic darstellt und einige Präsentations-Elemente sowie die Unterstützung interner Style-Sheets besitzt. Das XHTML Mobile Profile ist die Spezifikation des WAP-Forums für die Authoring-Language für WAP 2.0 und wird in den verbreiteten Browsern, von u.a. Nokia, dem Access Compact NetFront 3.0 (Nachfolger des iMode-Browser) und den Samsung Gerätebrowsern unterstützt. Ein Trend zur Nutzung reiner XHTML-Browser ist dabei nach [10] deutlich erkennbar.
HTML [1] ist derzeit bekanntlich der Motor des Informationszeitalters. Mit über 4 Milliarden bei der Suchmaschine “google” registrierten Exemplaren [12] ist es wohl das weitverbreiteste Dokumentenformat überhaupt. XHTML [2] stellt die Weiterführung und weitergedachte Entwicklung von HTML dar und verbindet es durch seinen XML-Kern mit vielen weiteren Komponenten der modernen Informationstechnologie. In diesem Kapitel werden die wichtigsten Merkmale von XHTML näher erläutert.
XML-Basis
HTML 4.0 basiert auf SGML (Standard Generalized Markup Language), welche das Definieren von Auszeichnungssprachen mit Hilfe so genannter “Document Type Definitions” und zugehörige Attribute erlaubt. Diese DTDs bilden eine Grammatik und legen somit fest, welche Elemente eine Auszeichnungssprache besitzt, sowie Regeln, welche Elemente innerhalb welcher anderen Elemente vorkommen können. SGML ist sehr ausgereift, aber auch anspruchsvoll und kompliziert.
XHTML basiert auf XML, das eine reduzierte Variante von SGML darstellt und ebenso das Definieren von Auszeichnungssprachen erlaubt. Mit der wachsenden Verbreitung von XML im Netz entstand der Wunsch, auch HTML mit Hilfe von XML zu definieren, was mit XHTML 1.0 seit Januar 2000 als Empfehlung des W3Konsortiums vorliegt. XHTML 1.0 ist daher zunächst der 100%ige Nachbau von HTML 4.0 mit Hilfe von XML.
Der Vorteil dieses Umbaus hat gute Gründe: XHTML ist syntaktisch 100% kompatibel zu wichtigen Standardsprachen wie SVG , WML oder SMIL und kann daher als Dateninsel innerhalb anderer Sprachen eingebunden werden. Umgekehrt kann aber beispielsweise SVG ebenso einen Bestandteil von XHTML darstellen. Weiterhin erlaubt es die Verwendung des Document Object Modeling, eines API zur programmtechnischen Benutzung von auf XML-basierenden Skriptsprachen. Das DOM definiert dazu Objekte, Eigenschaften und Methoden für den Zugriff auf und die Bearbeitung von Elementen dieser Sprachen, welche den syntaktischen Grundmustern folgen.
XSL, selbst eine in XML dargestellte, allgemeine Transformations-Sprache, kann diese Vorteile ebenfalls nutzen, da Sie auf alle XML-basierenden Sprachen angewendet werden kann.
Reine Beschreibungssprache
Die traditionelle HTML 4.0-Notation besitzt Präsentationsaspekte wie font-, bgcolor- oder align-Tags. Robert Caillau, Mitentwickler am CERN, bezeichnet diese heute daher als “schwarze Zeiten des HTML” [6], da sie der anfänglichen Ideen des HTML-Konzeptes zuwiderliefen. Daher wird auf Layout-Elemente ab XHTML 1.1 vollständig verzichtet. Aus Kompatibilitätsgründen gibt es dennoch eine Zwischendefinition, das XHTML 1.0, welches in die Untergruppen “strict”, “transitionell” und “frameset” unterteilt wird.
Dabei stellt die Untergruppe “XHTML 1.0 strict” [2] die strukturell sauberste Mark-up-Version dar, da darin sämtliche Präsentations-Elemente in CSS ausgelagert sind und das Browser-Layout des Dokumentes somit durch andere als die Markup-Daten im HTML-Dokument spezifiziert wird. Auf diese Formate möchte ich später tiefer eingehen.
“XHTML 1.0 transitional” [2] bildet den Übergang zwischen HTML und XHTML, da hier zwar die XML-Syntax 100%ig umgesetzt wird, allerdings font-, color- oder text- Tags weiterhin nutzbar bleiben. Vorteil und Antrieb dieser Variante war, eine Vielzahl älterer HTML-Dokumente auch mit den Vorteilen von XML ausstatten und derartige XHTML-Dokumente auch von älteren Browsern korrekt darstellen lassen zu können.
“XHTML 1.0 frameset” [2] wird zur Ermöglichung des weitverbreiteten Webseiten-Framing genutzt, also der Teilung des eigentlichen Browserfensters in zwei oder mehr unabhängige Web-Dokumente.
Die letzten beiden Untergruppen werden seit XHTML 1.1 nicht weiter unterstützt, da ihre zusätzlichen Elemente durch CSS-Anweisungen ersetzt bzw. gleichwertig auf anderem Wege angepasst werden können. CSS soll dabei die hinlänglich bekannten Nachteile, nämlich die fehlende Präsentations-Inhalt-Trennung, die schlechte Bookmark-Fähigkeit bzw. fehlende Frameset-Unterseiten, verhindern und bietet entsprechende Formatierungsmöglichkeiten. Die Verknüpfung zwischen Content und Layout ermöglicht dabei ein XHTML-Element wie “p”, eine festgelegte Klasse (“class”) oder der id-Tag des XHTML-Standards. Das Design wird danach kaskadierend umgesetzt. Nähere Angaben dazu folgen im Kapitel 4.
Einbettung verschiedener XML-Sprachbestandteile
Derzeit werden externe Objekte in Beschreibungssprachen fast vollständig durch externe Quellen eingeladen und dadurch informationsbezogen zusammengehörige Komponenten voneinander getrennt. Diese können nun weder in einem Arbeitsschritt erstellt, noch bearbeitet werden. (Bsp.: doppelte Datenbankbelastung, da Informationen sowohl für das Dokument als auch für ein dazugehöriges Diagramm abgefragt werden müssen). Einen weiteren Nachteil stellt dies für automatische Systeme wie Suchmaschinen dar, denen durch die Verlinkung die Zusammengehörigkeit der beiden erwähnten Medien fehlt. XHTML gibt durch seine XML-Basis hier die Möglichkeit, XML-Objekte einfach als Dateninsel einzubinden bzw. selbst als Dateninsel eingebunden zu werden und somit Informationsbündel als eine einzelne Informationseinheit zu verwalten.
Modularisierung
Wie in der Einleitung bereits angesprochen, deckt XHTML eine Vielzahl von Einsatzgebieten ab. Um dabei auf der einen Seite ressourcenbenötigende Teilgebiete wie das Zeichnen hochkomplexer mathematischer Formeln oder großer SVG-Diagramme zu ermöglichen, auf der anderen Seite jedoch ebenfalls einen optimalen Zugriff von mobilen Endgeräten aus zu gewährleisten, wird ab XHTML 2.0 der Sprachumfang modularisiert und weiterführend ebenso der Aufbau von Dokumenten, um damit für Maschinen die Indexierung zu erleichtern. So kann ein Endgerät z.B. von jedem Textabschnitt nur wenige Wortgruppen anzeigen und somit auch auf einem kleinen Display optimale Ergebnisse präsentieren. Auf diese Modularisierung des Dokumentenaufbaus möchte ich in 2.4.2 näher eingehen.
Modularisierung des Sprachumfanges
Es gibt sowohl geschmälerte, als auch erweiterte Sprachvarianten, so beispielsweise eine Vereinfachung für Handys bzw. eine erweiterte Version für Mathematiker, mit denen mehr Formeln dargestellt werden können.
Mit dem XHTML 1.1 − Standard und der Auslagerung XHTMLbasic wurden 2 Möglichkeiten zur Modularisierung für verschiedene Endgeräte geschaffen.
Der XHTMLBasic document type beinhaltet den minimalen Kern an Modulen, der für ein XHTML-Muttersprachen document type benötigt wird, sowie zusätzlich Bild-, Formular-, Grundtabellen- und Objekt-Unterstützung. Er ist für WebClients geeignet, welche nicht die volle XHTML-Mächtigkeit bieten können. Dies können z.B. Mobiltelefone, PDA s, Pager oder SetTop-Boxen sein. Der Document − Type ist in jedem Fall ausreichend für Content-Authoring.
XHTML Basic bildet somit die Grundlage, welche zum Beispiel durch eine Ereignissteuerung, die generischer als das traditionelle HTML 4 Ereignissteuerungssystem ist, erweitert werden kann, ebenso wie durch zusätzliche Module der XHTML-Modularisation, so z.B. Skripting-Module. Das Ziel von XHTML Basic ist ein Grund-Sprachen-Support für die verschiedensten Arten von Endgerät-Browsern.
Modularisierung des Dokumentenaufbaus
Einen weiteren Ansatz zu Modularisierung stellt XHTML 2.0 dar. Es versteht sich als "modulare Sprache" (XHTML host language) im Sinne, dass Tag-Gruppen verwandter Funktionalität in Form von separaten Einheiten - eben den Modulen - eingegliedert werden. Beherbergt (hosted) werden unter anderem also Module für Struktur, Textauszeichnung, Hypertext (Verweise), Tabellen und weiteres.
Attribute werden in separaten "Attribute Collections" definiert, eigentlich auch ein Modul, und den Tags gruppenweise zugeordnet. Es werden jedoch zusätzlich ebenfalls Module verwendet, die im XML-Umfeld definiert sind, wie XForms, XML-Events oder Ruby. Eigene XHTML-Module für Formulare und Frames fehlen deshalb absichtlich, ihre Funktion soll eben von XForms und dem - noch nicht fertig gestellten - XFrames übernommen werden.
Das "herkömmliche" HTML strukturierte Dokumente mit Hilfe der Blockelemente. Das gesamte Dokument wird unterteilt in Head und Body, der Body wiederum durch eine Abfolge von Strukturelementen (im einfachsten Fall) in eine Abfolge von Überschriften und Absätzen. Alternativ zu Absätzen können Tabellen oder Formulare auftreten - eine Verschachtelung dieser Strukturelemente ist aber nur bedingt erwünscht bzw. möglich.
Betrachtet man ein simples HTML-Dokument, so sieht man, dass die Überschriftenhierarchie explizit genannt werden muss, während die Zugehörigkeit eines Absatzes zu einer Überschrift eher "implizit", nämlich durch seine Position nach einer Überschrift erfolgt
Den letzten Absatz des Beispieles würde man vermutlich der dritten Überschrift zuordnen, jedoch gibt es keine Möglichkeit, dies unmissverständlich zu tun.
XHTML 2.0 eliminiert nun weitestgehend alle diejenigen Elemente, die nicht strukturelle Bedeutung besitzen. Einzige Ausnahmen sind die Tags < sub > und < sup > für höher- bzw. tiefergestellte Zeichen, denen allerdings auch logische Bedeutung zugebilligt werden kann.
Als Gegenzug kann die Darstellung des Dokumentenaufbaus jetzt als Abfolge von Abschnitten (sections) angesehen werden, welche jeweils mit Überschriften versehen werden sollten. Hierarchien innerhalb von Dokumenten können so besser dargestellt werden. Dafür wird der
-Tag neu eingeführt.
Bei einer hierarchischen Untergliederung des Dokuments wird dem <body> somit zunächst eine Sektion untergeordnet (oder mehrere, falls das Dokument in mehrere hierarchisch gleichrangige Abschnitte zerfallen soll!). Diese Sektion kann wieder mehrere Sektionen enthalten, die ihr dann hierarchisch untergeordnet sind. Diese Unterteilung kann prinzipiell beliebig tief weitergehen.
Für Überschriften innerhalb solcher Absatz-Sektionen wird alternativ der allgemeine Tag <h> angeboten, dessen Grad allein von der Position der übergeordneten Dokumentenhierarchie abhängig ist.
Ebenfalls neu ist der <line>-Tag, welcher innerhalb eines < p >-Absatzes einzelne Zeilen kennzeichnet und somit den in HTML sehr gebräuchlichen
Konzept-Verallgemeinerung
In die Seite eingebetteten Medien werden konsequent durch den < object >-Tag dargestellt, ebenso Bilder. Ein konsequent verwirklichter Einsatz von < object> bietet bei “gewöhnlichen” Bildern ebenfalls Vorteile, wie das untere Beispiel zeigt.
< object data="hund.jpg" type="image/jpeg"> Ein großer Hund < / object>
Ist die Anzeige des Original-Bildes nicht möglich, so haben wir doch einen Container, der im Inneren Strukturen enthalten kann. Dieser < object>-Container kann selbst weitere < object>-Container enthalten. Da die Verarbeitung einer solchen Struktur stufenweise von außen nach innen erfolgt und stoppt, sobald eine Stufe erfolgreich verarbeitet werden kann, können Inhalte, die sich tiefer in der Struktur befinden, unter Umständen nie dargestellt werden.
Ein Voice-Browser beispielsweise könnte im obigen Beispiel den Alternativtext vorlesen - dank Markup vielleicht sogar mit korrekter Betonung!
Ein ähnliches Verhalten wäre auch für PDAs oder Browser mit abgeschalteter Bilddarstellung zu erwarten. Weiterhin wird der für alle Tags verwendbare “common” Attributsatz erweitert; so daß jeder beliebige Tag durch das href-Attribut als Startpunkt eines Verweises dienen kann.
Verbreitung
XHTML 2.0 bringt HTML zurück zu seinen Wurzeln, indem sämtliche Präsentations-Elemente in CSS ausgegliedert wurden und das Dokument selbst nun wieder rein modular aufgebaut ist. Dies gibt eine größere Flexibilität. Suchmaschinen-Dienste können XHTML-Dokumente besser erfassen und indizieren. Unterschiedliche Endgeräte erhalten die selben HTML-Inhalte und werden nur über verschiedene CSS-Styles angepasst, so dass keine verschiedenen Webseiten-Varianten programmiert und gepflegt werden müssen. Neue Techniken, wie beispielsweise Voice-Browsing sind so indirekt bereits vorbereitet.
Aktuell bildet XHTML Basic die Grundlage des XHTML MobileProfils, welches eine strikte Untermenge von XHTML 1.0 aber eine Obermenge von XHTMLBasic darstellt und einige Präsentations-Elemente sowie die Unterstützung interner Style-Sheets besitzt. Das XHTML Mobile Profile ist die Spezifikation des WAP-Forums für die Authoring-Language für WAP 2.0 und wird in den verbreiteten Browsern, von u.a. Nokia, dem Access Compact NetFront 3.0 (Nachfolger des iMode-Browser) und den Samsung Gerätebrowsern unterstützt. Ein Trend zur Nutzung reiner XHTML-Browser ist dabei nach [10] deutlich erkennbar.