Vergleich der Tabellenmodelle

(Auszug aus "DocBook-XML: Medienneutrales und plattformunabhängiges Publizieren" von Thomas Schraitle)

Die Unterschiede zwischen den Tabellenmodellen liegen teilweise historisch zugrunde, teilweise auch in der praktischen Anwendung. Das Exchange-Tabellenmodell besitzt gegenüber dem CALS-Modell einige Vereinfachungen, die es für manche Einsatzgebiete besser handhabbar machen.

Das CALS-Tabellenmodell

Dieses Tabellenmodell gibt es sowohl in DocBook 4 als auch in DocBook 5. In einer CALS-Tabelle muss sich mindestens ein Element tgroup befinden, das die folgenden Elemente enthalten kann:

thead, tfoot

Kopf- und Fußzeile (beide optional)

tbody

Tabellenkörper, der die eigentlichen Tabelleneinträge enthält

Somit sieht eine rudimentäre Tabelle wie folgt aus:

Beispiel: Aufbau einer Tabelle

<table>
  <title>...</title>
  <tgroup cols="X">
    <thead><!-- ... --></thead>
    <tfoot><!-- ... --></tfoot>
    <tbody><!-- ... --></tbody>
  </tgroup>
  <!-- evtl. weitere tgroup -->
</table>

Zeile 1: Eine Tabelle beginnt erwartungsgemäß mit table.
Zeile 2: Titel der Tabelle
Zeile 3: Gruppe, die Kopf- und Fußzeilen und die jeweiligen Einträge enthält; die Spaltenanzahl der Tabelle muss im Attribut cols angegeben werden. DocBook 5 erlaubt nur positive Ganzzahlen größer Null.
Zeilen 4 und 5: Optionale Kopf- und Fußzeilen werden am Anfang von tgroup angegeben (siehe Festlegen von Kopf- und Fußzeilen in CALS-Tabellen).
Zeile 6: Die eigentlichen Tabelleneinträge werden an dieser Stelle über das Element tbody vorgenommen.
Zeile 8: Eine Tabelle kann mehrere tgroup-Elemente besitzen (mit jeweils unterschiedlicher Spaltenanzahl und unterschiedlichen Kopf- und Fußzeilen).

Im Element tbody fügen Sie die Zeilen einer Tabelle über row ein. Die Spalten markieren Sie mittels entry. Ein einzelner Tabelleneintrag, der zwei Spalten besitzt, sieht somit wie folgt aus:

<row>
  <entry>1. Spalteneintrag</entry>
  <entry>2. Spalteneintrag</entry>
</row>

Anmerkung: Anzahl der entry-Elemente
Jeder Tabelleneintrag muss genau soviele entry-Elemente enthalten, wie das cols-Attribut in tgroup vorgibt. Weicht die Anzahl der entry-Elemente ab, führt dies zu Verschiebungen in der Tabelle.

Diese Regel gilt nicht, wenn Sie Zellen oder Spalten zusammenlegen.

Das OASIS Exchange XML-Tabellenmodell

Dieses Tabellenmodell gibt es nur in DocBook 4. Das Exchange-Tabellenmodell besitzt gegenüber dem CALS-Modell einige Vereinfachungen:

  • Das Element tfoot gibt es nur unter CALS.
  • Innerhalb von thead ist nur im CALS-Tabellenmodell das Element colspec erlaubt.
  • In CALS ist es möglich, mehrere Spalten mit dem Element spanspec zusammenzufassen, im Exchange-Tabellenmodell ist dies nicht vorgesehen.
  • Verschachtelte Tabellen sind nur im CALS-Tabellenmodell mit dem Element entrytbl möglich.
  • Einige Attribute gibt es nur unter CALS wie tgroupstyle in tgroup oder rotate in entry.

Da dies nur marginale Unterschiede sind, wird auf ein Beispiel verzichtet. Möchten Sie das Tabellenmodell für Ihr XML-Dokument ändern, finden Sie eine Erklärung in "Tabellenmodelle von DocBook".

Das (X)HTML-Tabellenmodell

Das (X)HTML-Tabellenmodell gibt es sowohl in DocBook 4 als auch in DocBook 5. Es wurde in DocBook aufgenommen, um Anwender mit Erfahrung in (X)HTML besser zu unterstützen. Es erlaubt zwei Notationen, wobei die zweite sehr ähnlich zum CALS-Modell ist. "Einfache" Tabellen verwenden die Elemente tr (Tabellenzeile), th (Kopfzeile) und td (Tabellendaten):

Beispiel: (X)HTML-Tabelle mit tr, th und td

<table>
  <caption>...</caption>
  <tr>
    <th>Kopf 1</th>
    <th>Kopf 2</th>
  </tr>
  <tr>
    <td>...</td>
    <td>...</td>
  </tr>
</table>

Der vorige Code ist nützlich, wenn Sie einfache Daten besitzen oder vorhandene (X)HTML-Tabellen unverändert übernehmen möchten. Haben Sie jedoch viele Daten und soll die Kopf- oder Fußzeile entsprechend bei einem Umbruch wiederholt werden, kann die Kopf- bzw. Fußzeile explizit ausgewiesen werden. Dies sieht dann ähnlich wie beim CALS-Modell aus:

Beispiel: (X)HTML-Tabelle mit Kopfzeile

<table>
  <caption>Titel</caption>
  <thead>
    <tr>
      <th>...</th>
      <th>...</th>
    </tr>
  </thead>
  <!-- tfoot, falls gewünscht -->
  <tbody>
    <tr>
      <td>...</td>
      <td>...</td>
    </tr>
    <!-- Weitere tr-Elemente -->
  </tbody>
</table>

Beachten Sie, dass Sie die Reihenfolge thead, tfoot, tbody einhalten. Kopf- und Fußzeile dürfen pro Tabelle nur einmal vorkommen. Dagegen darf tbody beliebig oft enthalten sein, mindestens jedoch einmal.

Weitere Informationen zu (X)HTML-Tabellen finden Sie unter Nach Funktion geordnete HTML- und XHTML-Elemente: Tabellen.

  

<< zurück vor >>
Tipp der data2type-Redaktion:
Zum Thema DocBook bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © 2009 Millin Verlag
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "DocBook-XML: Medienneutrales und plattformunabhängiges Publizieren" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

Millin Verlag, Siebengebirgsring 36, 53797 Lohmar, info(at)millin.de