Kapitel 7 HTML geht fremd: X-HTML

7.1 X-HTML 1.0 Document Type Definition 300

Bereits in der ersten Auflage dieses Buches haben wir eine komplette HTML 4.0 DTD auf Basis von XML angeboten. Es war schon damals abzusehen, dass das W3C HTML in Richtung XML weiter entwickeln wird. Inzwischen wird das so genannte X-HTML als offizieller Nachfolger von HTML gehandelt. Am 10. Dezember 1999 hat das W3C eine entsprechende Proposed Recommendation herausgegeben. Veränderungen zum bereits bestehenden und weit verbreiteten HTML 4.0-Standard sind dabei kaum festzustellen und so spricht die offizielle Empfehlung auch nur von einer »Umformulierung« von HTML 4.0.

Drei gültige DTDs stehen für XHTML zur Verfügung, genau wie bei HTML existieren die folgenden drei Unterteilungen:

  1. XHTML-1.0-Strict

Für Dokumente, die den strengen XHTML-Regeln genügen. Aus älteren HTML-Versionen bekannte aber nicht mehr empfohlene Elemente wurden nicht mehr verwendet.

  1. XHTML-1.0-Transitional

Übergangsweise lässt diese DTD auch noch ältere Elemente zu. Die meisten aktuellen HTML-Dokumente dürften sich ohne weitere Konvertierung oder Veränderung an diese XHTML-DTD anpassen lassen.

  1. XHTML-1.0-Frameset

Dokumente, die die Frametechnik verwenden, sollten nach der Frameset-DTD definiert werden.

7.1 X-HTML 1.0 Document Type Definition

In den folgenden Abschnitten finden Sie eine (fast) komplette Document Type Definition des Standards X-HTML 1.0. Es handelt sich hierbei um die HTML 1.0 Strict DTD. Sie schließt alle Attribute und Elemente ein, die das W3C in seinem offiziellen Standard vorsieht. Da es sich um eine »strenge« (strict) Definition des X-HTML 1.0 Standards handelt, sind Befehle ausgeschlossen, die das W3C in der aktuellen Definition nicht mehr vorsieht, obwohl diese aus älteren HTML-Versionen bekannt sind. Übergangsweise sind auch ältere Befehle noch zugelassen, Autoren sollten sich allerdings an die vorliegenden Vorgaben halten.

XHTML 1.0 schließt Mechanismen für Stylesheets, Scripting, eingebettete Objekte, verbesserte Unterstützung für andere Schreibrichtungen (von Rechts nach Links), sowie erweiterte Funktionen für Menschen mit Körperbehinderungen ein.

Die vorliegende Version entstand am 9.12.1999 als Arbeitsvorlage:

<!--
   Extensible HTML version 1.0 Strict DTD
   Namespace = http://www.w3.org/1999/xhtml
   For further information, see: http://www.w3.org/TR/xhtml1
   Copyright (c) 1998-1999 W3C (MIT, INRIA, Keio),
   All Rights Reserved.
   $Revision: 1.2 $
   $Date: 1999/12/09 19:32:37 $
-->

Weitere Informationen über diese Document Type Definition erhalten Sie im Internet unter:

http://www.w3.org/1999/xhtml

Informationen über den Sprachstandard HTML 4.0 sind außerdem abrufbar unter:

http://www.w3.org/TR/REC-html40

7.1.1 XHTML in eigenen Dokumente

Wenn Sie diese DTD in eigene XML- oder HTML-Dokumente einbinden möchten, kann das mit einer der folgenden DOCTYPE-Definition erfolgen:

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/1999/PR-xhtml1-19991210/DTD/
xhtml1-strict.dtd>

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/1999/PR-xhtml1-19991210/DTD/
xhtml1-transitional.dtd>

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/1999/PR-xhtml1-19991210/DTD/
xhtml1-frameset.dtd>

Eine einfache XHTML-Datei könnte dann folgendermaßen aussehen:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/1999/PR-xhtml1-19991210/DTD/
     xhtml1-strict.dtd">
<html
     xmlns="http://www.w3.org/1999/xhtml"
     xml:lang="de" lang="de">
 <head>
    <title>Erste Seite</title>
  </head>
  <body>
    <p>Ein einfaches XHTML-Dokument</p>
  </body>
</html>

Beachten Sie, dass nach der DOCTYPE-Definition zusätzlich die zugehörige Namespace-Definition (xmlns) mitangegeben werden muss. Außerdem muss ein korrektes XHTML-Dokument unbedingt einen vollständigen, d.h. korrekt terminierten <html>-Container besitzen.

Unterschiede in der Schreibweise müssen im Gegensatz zu konventionellen HTML-Dokumenten unbedingt genau beachtet werden. D.h. Element- und Attributbezeichnungen werden grundsätzlich klein geschrieben. Alle Elemente müssen terminiert werden. Werden Attributen Werte übergeben, so müssen diese unbedingt in Anführungszeichen gefasst sein.

7.1.2 Allgemeine Attribute

Die folgenden Attribute gelten für alle HTML-Elemente und können optional verwendet werden.

id

Über das Attribut id wird das Element mit einer für das Dokument eindeutigen Kennzeichnung versehen. Über diese id lässt sich anschließend beispielsweise mithilfe einer Skriptsprache gezielt auf einzelne Elemente zugreifen, um z.B. deren Werte auszulesen oder zu verändern.

class
Über das Attribut class lässt sich das Element einer Gruppe (Klasse) zuordnen. Geben Sie dazu 
einen frei wählbaren Klassennamen als Wert an. Diese Gruppierungen erlauben Ihnen anschließend 
einen leichten Zugriff auf alle zugehörigen Elemente. So können Sie später beispielsweise mithilfe 
von Cascading StyleSheets oder anderen Sprachen leicht die Eigenschaften aller Elemente einer 
Klasse verändern oder Werte auslesen.
style

Das Attribut style lässt sich dazu nutzen, um Stilvorgaben insbesondere das Aussehen des Elements zu verändern. Als Wert des Attributs übergeben Sie die entsprechenden Optionen einer StyleSheet-Sprache (meist CSS).

title

Geben Sie dem Anwender weitere Informationen über das verwendete Element, indem Sie mithilfe des title-Befehls einen aussagekräftigen Titel festlegen. Insbesondere Anwendern, die auf eine Sprachausgabe angewiesen sind, wird so die Navigation durch Ihre Seiten erleichtert.

<!ENTITY % coreattrs
 "id          ID             #IMPLIED
  class       CDATA          #IMPLIED
  style       %StyleSheet;   #IMPLIED
  title       %Text;         #IMPLIED"
  >
lang

Gibt den Sprachcode an in dem das Dokument verfasst ist. Dieses Attribut existiert nur noch zur Abwärtskompatibilität und sollte durch das folgende xml:lang ersetzt werden. Dieses Attribut gibt die Sprache des Zieldokuments an. Das ist insbesondere für die Indizierung in Suchmaschinen wichtig. Verwenden Sie die Sprachcodes nach ISO 639, z.B. "de" für Deutsch oder "en" für Englisch oder "en-US" für amerikanisches Englisch.

xml:lang

Mit diesem Attribut geben Sie in XML-bekannter Schreibweise die Sprachinformation für ein Dokument an.

dir

Bezeichnet die Schreibrichtung des ausgegebenen Textes (entweder von links nach rechts, oder von rechts nach links). Dieses Attribut ist für die Bestimmung der Laufrichtung des Textes notwendig. Zwei Werte können alternativ übergeben werden:

ltr

Dieser Wert bestimmt die Laufrichtung des Textes von Links nach Rechts (Abkürzung für »left to right«). Diese Laufrichtung ist im Browser voreingestellt.

rtl

Soll der Text entgegen der Standardlaufrichtung von rechten Bildschirmrand zum linken Rand laufen, dann wählen Sie den Wert rtl (Abkürzung für »right to left«).

<!ENTITY % i18n
 "lang        %LanguageCode; #IMPLIED
  xml:lang    %LanguageCode; #IMPLIED
  dir         (ltr|rtl)      #IMPLIED"
  >

7.1.3 Ereignisse

onclick

Dieses Ereignis findet statt, wenn mit der Maus das benannte Element angeklickt wird. Durch diese Aktion wird ein angegebenes Skript ausgeführt.

ondblclick

Dieses Ereignis findet statt, wenn mit der Maus das benannte Element doppelt angeklickt wird. Durch diese Aktion wird ein angegebenes Skript ausgeführt.

onkeydown

Dieses Ereignis findet statt, wenn man sich über dem bezeichneten Element befindet und gleichzeitig ein Taste gedrückt wird. Durch diese Aktion wird ein angegebenes Skript ausgeführt.

onkeypress

Dieses Ereignis findet statt, wenn man sich über dem bezeichneten Element befindet und gleichzeitig ein Taste drückt und wieder loslässt. Durch diese Aktion wird ein angegebenes Skript ausgeführt.

onkeyup

Dieses Ereignis findet statt, wenn man sich über dem bezeichneten Element befindet und eine gedrückte Taste losgelassen wird. Durch diese Aktion wird ein angegebenes Skript ausgeführt.

onmousedown

Dieses Ereignis findet statt, wenn man sich über dem bezeichneten Element befindet und gleichzeitig eine Maustaste gedrückt wird. Durch diese Aktion wird ein angegebenes Skript ausgeführt.

onmousemove

Dieses Ereignis findet statt, wenn man sich mit der Maus über das benannte Element bewegt. Durch diese Aktion wird ein angegebenes Skript ausgeführt.

onmousedown

Dieses Ereignis findet statt, wenn man sich mit der Maus von dem benannten Element fort bewegt. Durch diese Aktion wird ein angegebenes Skript ausgeführt.

onmouseup

Dieses Ereignis findet statt, wenn man sich über dem bezeichneten Element befindet und eine gedrückte Maustaste losgelassen wird. Durch diese Aktion wird ein angegebenes Skript ausgeführt.

<!ENTITY % events
 "onclick     %Script;       #IMPLIED
  ondblclick  %Script;       #IMPLIED
  onmousedown %Script;       #IMPLIED
  onmouseup   %Script;       #IMPLIED
  onmouseover %Script;       #IMPLIED
  onmousemove %Script;       #IMPLIED
  onmouseout  %Script;       #IMPLIED
  onkeypress  %Script;       #IMPLIED
  onkeydown   %Script;       #IMPLIED
  onkeyup     %Script;       #IMPLIED"
  >

7.1.4 Attribute für Elemente, die den Focus erhalten können

accesskey

Das Attribut accesskey ermöglicht den Zugriff auf ein Element über die Tastatur. Durch die Definition eines Tastaturkürzels, wird beim Drücken der entsprechenden Taste ein mit dem Kürzel verbundenes Dokument geladen. So führt z.B. die Angabe accesskey="A" dazu, dass nach dem Drücken der Taste »A« durch den Anwender das Element aktiviert wird.

tabindex

Dieses Attribut weist einem Element durch die Verwendung von positiven oder negativen Ganzzahlen eine Reihenfolgeposition zu. Elemente, die mit diesem Attribut versehen sind, können mit der Tabulatortaste nacheinander ausgewählt werden. Dies erleichtert insbesondere Personen, die keine Maus einsetzen können, die Bedienung.

onfocus

Das Ereignis onfocus tritt ein, wenn das aktuelle Element den Focus erhält. Wenn der Anwender also per Mausklick oder Tastatur auf dieses Feld geht und dieses so zum aktiven Element wird.

onblur

Das Ereignis onblur tritt dann ein, wenn ein Eingabeelement seinen Focus verliert. Der Anwender hat sich also per Mausklick oder Tastatur zum nächsten Feld bewegt. Über dieses Ereignis könnte zum Beispiel ein Skript aufgerufen werden, das die eingegebenen Werte überprüft und weiterverarbeitet.

<!ENTITY % focus
 "accesskey   %Character;    #IMPLIED
  tabindex    %Number;       #IMPLIED
  onfocus     %Script;       #IMPLIED
  onblur      %Script;       #IMPLIED"
  >

7.1.5 Dokumentenstruktur

html

Ein HTML-Dokument besteht mindestens aus den umschließenden html-Tags. Zusätzlich wird in der Regel noch ein Dokumentenkopf mit head definiert, auf den dann der Textkörper mit body folgt. Das Element html ist allerdings nur optional zu verwenden. Auch ohne diesen Befehl können Sie gültige HTML-Dokumente erzeugen.

<!ELEMENT html (head, body)>
<!ATTLIST html
  %i18n;
  xmlns %URI; #FIXED 'http://www.w3.org/1999/xhtml'
  >
head

Der Befehl head (Kopf) dient der Sammlung von Informationen und Einstellungen, die notwendig sind, um ein Dokument zu charakterisieren. So kann mit dem Befehl head beispielsweise angegeben werden, welche Überschrift ein HTML-Dokument tragen soll, von wem es wann erstellt worden ist und welche Hyperlink-Verknüpfungen vorhanden sind.

<!ENTITY % head.misc "(script|style|meta|link|object)*">
<!ELEMENT head (%head.misc;,
     ((title, %head.misc;, (base, %head.misc;)?) |
      (base, %head.misc;, (title, %head.misc;))))>
<!ATTLIST head
  %i18n;
  profile     %URI;          #IMPLIED
  >
title

Der Befehl title (Überschrift) ist zwar nicht zwingend für ein HTML-Dokument vorgeschrieben, sollte aber unbedingt verwendet werden. Jeder Browser kann eine solche Überschrift erkennen und darstellen. Häufig dienen diese Überschriften auch der Bezeichnung von Bookmark-Einträgen. Sonderzeichenkodierungen können Sie innerhalb dieses Befehls in Form von Entities verwenden.

<!ELEMENT title (#PCDATA)>
<!ATTLIST title %i18n;>
base

Der Befehl base ist erforderlich, um die so genannte Basis-URI eines Dokuments festzulegen. Innerhalb dieses Dokuments können dann Verweise auf andere Dokumente festgelegt werden. Es ist zwingend vorgeschrieben, dass sich das BASE-Element im Dokument-Header an einer Stelle vor dem ersten Erscheinen einer relativen URI befinden muss.

<!ELEMENT base EMPTY>
<!ATTLIST base
  href        %URI;          #IMPLIED
  >
meta

Der Befehl meta wird genutzt, um Informationen zu einem HTML-Dokument zu beschreiben. So lassen sich mit diesem Befehl Dokumente beispielsweise für Suchmaschinen aufbereiten, indem Stichwörter zum Inhalt des Dokuments mit diesem Befehl angegeben werden können.

<!ELEMENT meta EMPTY>
<!ATTLIST meta
  %i18n;
  http-equiv  CDATA          #IMPLIED
  name        CDATA          #IMPLIED
  content     CDATA          #REQUIRED
  scheme      CDATA          #IMPLIED
  >
style

Der Befehl style wird dann benutzt, wenn im Header eines Dokuments Style-Informationen definiert werden sollen. Sämtlichen Elementen eines HTML-Dokuments, die durch das Attribut class einer Gruppe angehören, kann so ein bestimmtes Erscheinungsbild zugewiesen werden. Das Gleiche gilt für einzelne Elemente, die durch das Attribut id gekennzeichnet sind.

<!ELEMENT style (#PCDATA)>
<!ATTLIST style
  %i18n;
  type        %ContentType;  #REQUIRED
  media       %MediaDesc;    #IMPLIED
  title       %Text;         #IMPLIED
  xml:space   (preserve)     #FIXED 'preserve'
  >
script

Der Befehl script dient der Markierung von Inline-Skripten, die in ein HTML-Dokument eingebunden werden sollen. Normalerweise wird Text, der mit diesem Befehl markiert ist, nicht angezeigt. Es empfiehlt sich aber trotzdem Skripte als Kommentar zu markieren, um zu gewährleisten, dass der Text auch nicht von älteren Browsern angezeigt wird.

<!ELEMENT script (#PCDATA)>
<!ATTLIST script
  charset     %Charset;      #IMPLIED
  type        %ContentType;  #REQUIRED
  src         %URI;          #IMPLIED
  defer       (defer)        #IMPLIED
  xml:space   (preserve)     #FIXED 'preserve'
  >
noscript

Der Befehl noscript dient der Markierung von Texten, die alternativ dargestellt werden, wenn ein nicht skriptfähiger Browser eingesetzt wird.

<!ELEMENT noscript %Block;>
<!ATTLIST noscript
  %attrs;
  >
body

Der Befehl body (Körper) wird für jeden Bereich eines HTML-Dokuments außer dem Dokumentenkopf benötigt. Der Bereich zwischen öffnendem und schließendem Befehl wird als Container bezeichnet.

<!ELEMENT body %Block;>
<!ATTLIST body
  %attrs;
  onload          %Script;   #IMPLIED
  onunload        %Script;   #IMPLIED
  >

7.1.6 Verknüpfungen

a

Der Befehl a (Abkürzung für »anchor« / Anker) erfordert zwingend die Angabe des Attributs href. Über dieses Attribut wird dem Browser mitgeteilt zu welcher Zieladresse er springen muss, wenn der Hyperlink angeklickt wird.

<!ELEMENT a %a.content;>
<!ATTLIST a
  %attrs;
  charset     %Charset;      #IMPLIED
  type        %ContentType;  #IMPLIED
  name        NMTOKEN        #IMPLIED
  href        %URI;          #IMPLIED
  hreflang    %LanguageCode; #IMPLIED
  rel         %LinkTypes;    #IMPLIED
  rev         %LinkTypes;    #IMPLIED
  accesskey   %Character;    #IMPLIED
  shape       %Shape;        "rect"
  coords      %Coords;       #IMPLIED
  tabindex    %Number;       #IMPLIED
  onfocus     %Script;       #IMPLIED
  onblur      %Script;       #IMPLIED
  >

7.1.7 Allgemeine Befehle

br

Der Befehl br (Abkürzung für »Break« / Umbruch) wird dann eingesetzt, wenn Zeilen manuell umgebrochen werden sollen. In der Regel sorgt die Browser-Software für den Umbruch der Zeilen..

<!ELEMENT br EMPTY>   <!-- forced line break -->
<!ATTLIST br
  %coreattrs;
  >
object

Der Befehl object wird genutzt, um verschiedenste Objekte in ein HTML-Dokument einzubinden. Dabei kann es sich um Elemente wie Grafiken, Bilder, Kontrollen usw. handeln.

<!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*>
<!ATTLIST object
  %attrs;
  declare     (declare)      #IMPLIED
  classid     %URI;          #IMPLIED
  codebase    %URI;          #IMPLIED
  data        %URI;          #IMPLIED
  type        %ContentType;  #IMPLIED
  codetype    %ContentType;  #IMPLIED
  archive     %UriList;      #IMPLIED
  standby     %Text;         #IMPLIED
  height      %Length;       #IMPLIED
  width       %Length;       #IMPLIED
  usemap      %URI;          #IMPLIED
  name        NMTOKEN        #IMPLIED
  tabindex    %Number;       #IMPLIED
  >
param

Mit diesem Befehl ist es möglich, Kommandozeilenargumente an JAVA-Applets zu übergeben.

<!ELEMENT param EMPTY>
<!ATTLIST param
  id          ID             #IMPLIED
  name        CDATA          #IMPLIED
  value       CDATA          #IMPLIED
  valuetype   (data|ref|object) "data"
  type        %ContentType;  #IMPLIED
  >

7.1.8 Grafiken einfügen

img

Mit diesem Befehl ist es möglich, Grafiken und Bilder in ein HTML-Dokument einzubinden.

<!ELEMENT img EMPTY>
<!ATTLIST img
  %attrs;
  src         %URI;          #REQUIRED
  alt         %Text;         #REQUIRED
  longdesc    %URI;          #IMPLIED
  height      %Length;       #IMPLIED
  width       %Length;       #IMPLIED
  usemap      %URI;          #IMPLIED
  ismap       (ismap)        #IMPLIED
  >

7.1.9 Imagemaps

map

Mit dem Befehl map erstellen Sie eine client-seitige Imagemap. In einer solchen verweissensitiven Grafik können einzelne Bereiche als Link gekennzeichnet werden. Innerhalb des map-Containers müssen Sie die einzelnen Flächen der Grafik über den Befehl area als Link kennzeichnen. Geben Sie der Imagemap über das Attribut name unbedingt einen eindeutigen Namen.

<!ELEMENT map ((%block; | form | %misc;)+ | area+)>
<!ATTLIST map
  %i18n;
  %events;
  id          ID             #REQUIRED
  class       CDATA          #IMPLIED
  style       %StyleSheet;   #IMPLIED
  title       %Text;         #IMPLIED
  name        NMTOKEN        #IMPLIED
  >
area

Mit diesem Befehl werden einzelne Flächen einer Imagemap definiert, die sich dadurch auszeichnen, dass sie verweissensitiv sind. Der Befehl area wird beispielsweise zur Darstellung von Karten verwendet. Diese Karten werden als verweis-sensitive Grafiken dargestellt, in denen sich ein Anwender per Mausklick Details anzeigen lassen kann.

<!ELEMENT area EMPTY>
<!ATTLIST area
  %attrs;
  shape       %Shape;        "rect"
  coords      %Coords;       #IMPLIED
  href        %URI;          #IMPLIED
  nohref      (nohref)       #IMPLIED
  alt         %Text;         #REQUIRED
  tabindex    %Number;       #IMPLIED
  accesskey   %Character;    #IMPLIED
  onfocus     %Script;       #IMPLIED
  onblur      %Script;       #IMPLIED
  >

7.1.10 Formulare

form

Mit diesem Befehl werden interaktive Formulare für Web-Seiten erstellt. Diese Formulare können verschiedene Steuerelemente enthalten. Der Befehl form dient der Einleitung von Formularen, die sich auf HTML-Seiten befinden können. Für Anwender besteht dann die Möglichkeit Eingabefelder auszufüllen, Einträge auszuwählen oder Text einzugeben.

<!ELEMENT form %form.content;>
<!ATTLIST form
  %attrs;
  action      %URI;          #REQUIRED
  method      (get|post)     "get"
  enctype     %ContentType;
  "application/x-www-form-urlencoded"
  onsubmit    %Script;       #IMPLIED
  onreset     %Script;       #IMPLIED
  accept      %ContentTypes; #IMPLIED
  accept-charset %Charsets;  #IMPLIED
  >
input

Der Befehl input wird verwendet, um Steuerelemente festzulegen. mit dem Attribut type wird die Art des Steuerelements näher festgelegt. Der Befehl wird in einem Formular innerhalb des form-Containers verwendet.

<!ELEMENT input EMPTY>     <!-- form control -->
<!ATTLIST input
  %attrs;
  type        %InputType;    "text"
  name        CDATA          #IMPLIED
  value       CDATA          #IMPLIED
  checked     (checked)      #IMPLIED
  disabled    (disabled)     #IMPLIED
  readonly    (readonly)     #IMPLIED
  size        CDATA          #IMPLIED
  maxlength   %Number;       #IMPLIED
  src         %URI;          #IMPLIED
  alt         CDATA          #IMPLIED
  usemap      %URI;          #IMPLIED
  tabindex    %Number;       #IMPLIED
  accesskey   %Character;    #IMPLIED
  onfocus     %Script;       #IMPLIED
  onblur      %Script;       #IMPLIED
  onselect    %Script;       #IMPLIED
  onchange    %Script;       #IMPLIED
  accept      %ContentTypes; #IMPLIED
  >
select

Dieser Befehl dient dazu innerhalb von Formularen so genannte Auswahllisten oder Drop-Down-Listen festzulegen. Der Besucher der Website kann dann keine Texteingaben in diesem Feld vornehmen, sondern nur aus der Liste einen oder mehrere der vorgegebenen Einträge auswählen.

<!ELEMENT select (optgroup|option)+>
<!ATTLIST select
  %attrs;
  name        CDATA          #IMPLIED
  size        %Number;       #IMPLIED
  multiple    (multiple)     #IMPLIED
  disabled    (disabled)     #IMPLIED
  tabindex    %Number;       #IMPLIED
  onfocus     %Script;       #IMPLIED
  onblur      %Script;       #IMPLIED
  onchange    %Script;       #IMPLIED
  >

7.1.11 Tabellen

table

Der Befehl table dient der Definition von Tabellen. Innerhalb dieser Definition werden dann Elemente festgelegt, die das Aussehen einer Tabelle bestimmen.

<!ELEMENT table
     (caption?, (col*|colgroup*), thead?,
tfoot?, (tbody+|tr+))>
<!ELEMENT caption  %Inline;>
<!ELEMENT thead    (tr)+>
<!ELEMENT tfoot    (tr)+>
<!ELEMENT tbody    (tr)+>
<!ELEMENT colgroup (col)*>
<!ELEMENT col      EMPTY>
<!ELEMENT tr       (th|td)+>
<!ELEMENT th       %Flow;>
<!ELEMENT td       %Flow;>

<!ATTLIST table
  %attrs;
  summary     %Text;         #IMPLIED
  width       %Length;       #IMPLIED
  border      %Pixels;       #IMPLIED
  frame       %TFrame;       #IMPLIED
  rules       %TRules;       #IMPLIED
  cellspacing %Length;       #IMPLIED
  cellpadding %Length;       #IMPLIED
  >
colgroup

Der Befehl colgroup dient der Zusammenfassung bzw. Gruppierung von Tabellenspalten. Durch diese Zusammenfassungen können diesen Elementen beispielsweise gleiche Stilvorlagen zugewiesen werden. Sinnvoll ist dieses Feature auch bei der Zusammenstellung von Übersichten für verschiedene Produkte. Durch eine einheitliche Strukturierung wird eine maximale Überschaubarkeit gewährleistet.

<!ATTLIST colgroup
  %attrs;
  span        %Number;       "1"
  width       %MultiLength;  #IMPLIED
  %cellhalign;
  %cellvalign;
  >
col

Dieses Attribut dient der Festlegung der Spalten mit den dazugehörigen Breitenangaben eines Frames oder der Festlegung der Anzahl an Spalten eines Texteingabefeldes. Der Wert für die Breite des Frames kann in Pixeln oder prozentual auf die Gesamtbreite des Bildschirms bezogen erfolgen. Geben Sie die einzelnen Werte für die Breite der Spalten des Frames oder Textfeldes durch Kommata getrennt an.

<!ATTLIST col
  %attrs;
  span        %Number;       "1"
  width       %MultiLength;  #IMPLIED
  %cellhalign;
  %cellvalign;
  >
thead

Der Befehl thead (Abkürzung für »table head« / Tabellenkopf) wird verwendet, um Zeilen einem Tabellenkopf zuzuweisen. Durch diese Zuweisung ist es möglich, den Tabellenkopf bei einem Ausdruck auf jeder gedruckten Seite erscheinen zu lassen.

<!ATTLIST thead
  %attrs;
  %cellhalign;
  %cellvalign;
  >
tfoot

Der Befehl tfoot (Abkürzung für »table foot« / Tabellenfuß) wird verwendet, um Zeilen dem Fuß einer Tabelle zuzuweisen. Durch diese Zuweisung ist es möglich, den Tabellenfuß bei einem Ausdruck auf jeder gedruckten Seite erscheinen zu lassen.

<!ATTLIST tfoot
  %attrs;
  %cellhalign;
  %cellvalign;
  >
tbody

Der Befehl tbody (Abkürzung für »table body« / Tabellenkörper) wird verwendet, um Zeilen einem Tabellenhauptteil zuzuweisen. Mit diesem Befehl lassen sich die in einer Tabelle enthaltenen Daten strukturieren. Beachten Sie, dass dieses Element bei dem Erstellen einer Tabelle zumindest einmal enthalten sein muss. Die Angaben zum Tabellenkopf werden noch nicht von allen Browsern ausgewertet.

<!ATTLIST tbody
  %attrs;
  %cellhalign;
  %cellvalign;
  >
tr

Mit dem Befehl tr werden Tabellenzeilen markiert und somit innerhalb einer Tabelle unterteilt und strukturiert. Eine Tabellenzeile selbst besteht aus einer Anzahl verschachtelter Tabellenzellen.

<!ATTLIST tr
  %attrs;
  %cellhalign;
  %cellvalign;
  >
th

Der Befehl th dient der Übergabe einer Liste von Überschriftzellen. In diesen Überschriftzellen sind neben dem Namen weitere Informationen über den Inhalt einer Zelle bzw. Spalte enthalten. In der Regel werden solche Überschriften zentriert und fett dargestellt.

<!ATTLIST th
  %attrs;
  abbr        %Text;         #IMPLIED
  axis        CDATA          #IMPLIED
  headers     IDREFS         #IMPLIED
  scope       %Scope;        #IMPLIED
  rowspan     %Number;       "1"
  colspan     %Number;       "1"
  %cellhalign;
  %cellvalign;
  >
td

Der Befehl td dient der Markierung von Datenzellen. Mit diesem Befehl wird festgelegt, dass der nachfolgende Text so formatiert werden soll, dass er die erste Spalte einer Tabelle darstellt.

<!ATTLIST td
  %attrs;
  abbr        %Text;         #IMPLIED
  axis        CDATA          #IMPLIED
  headers     IDREFS         #IMPLIED
  scope       %Scope;        #IMPLIED
  rowspan     %Number;       "1"
  colspan     %Number;       "1"
  %cellhalign;
  %cellvalign;
  >