Tabellenkonzepte

Es werden die Tabellenkonzepte von HTML, CALS und XSL-FO gegenübergestellt.

Mit der Gegenüberstellung der Tabellenkonzepte von HTML und CALS einerseits sowie von XSL-FO andererseits, soll die Transformation der Tabellenstrukturen erleichtert und auf typische Schwierigkeiten dabei hingewiesen werden.

In der folgenden Tabelle werden die Elemente von CALS, HTML und XSL-FO gegenübergestellt. Die Entsprechungen und Unterschiede lassen sich so schnell überblicken.

HTML CALS XSL-FO
- <table> <fo:table-and-caption>
<caption> <caption> <fo:table-caption>
<table> <tgroup> <fo:table>
<col> <colspec> <fo:table-column>
<thead> <thead> <fo:table-header>
<tfoot> <tfoot> <fo:table-footer>
<tbody> <tbody> <fo:table-body>
<tr> <row> <fo:table-row>
<td>, <th> <entry> <fo:table-cell>

Da es eine große Menge an zulässigen Attributen für jedes dieser Elemente gibt, die zudem auf unterschiedlichen Ebenen der Tabellenstruktur verwendet werden dürfen, schließlich die Vorgabewerte in HTML und CALS häufig unklar sind, wird an dieser Stelle auf mögliche Fehlerquellen hingewiesen. Die Auflistung dieser möglichen Fehlerquellen ist selbstverständlich unvollständig.

  • Über- bzw. Unterschriften: Tabellen, die eine Tabellen-Über- oder Unterschrift haben, müssen in XSL-FO mit dem Element <table-and-caption> begonnen werden. Ohne eine solche Über- bzw. Unter­schrift wird mit <table> begonnen.

  • CALS <tgroup>: Entspricht in XSL-FO <fo:table>.

  • HTML <tbody>: Das Element kann entfallen, wenn die Tabelle lediglich eine Folge von Tabellenzeilen (<tr>) hat. Die Zeilen einer Tabelle sind in diesem Falle in <fo:table-body> einzukleiden.

  • Strukturen in Tabellenzellen: In HTML- sowie in CALS-Tabellen sind innerhalb der Tabellenzellen einfache Zeichendaten zulässig. In <fo:table-cell> müssen die Inhalte in einen Block eingekleidet wer­den.

  • Vorweggenommene Spalten-Spezifikationen: In HTML gibt es dafür <col> (wird aber selten genutzt), in CALS <colspec>, in XSL-FO <fo:table-column>. Da diese Spezifikationen, von den Tabellenzellen aus gesehen, nicht in direkter Aufwärts-Achse der Struktur liegen, ist es empfohlen, die entsprechenden Spezifikationen in HTML und CALS in das entsprechende XSL-FO-Konstrukt zu transformieren. Daraus liest der XSL-Formatierer die für die Spalten-Dimen­sio­nie­rung relevanten Informationen bei der Formatierung der Tabellenzellen. Zu beachten ist, dass in XSL-FO die Spezifikationen für jede Spalte eine Nummer bekommen muss (column-number), die in jeder Zelle zu referenzieren ist.

  • Überspannungen von Spalten (horizontale Überspannungen): In alten Versionen der CALS-Tabellenstruktur wird für die Überspannung von Spalten ein dem <colspec> entsprechendes Konzept verwendet (<spanspec>). Es wird CALS-Tabellen empfohlen, sich lediglich auf das vereinfachte Austausch-Tabellenmodell zu stützen. Wenn ansonsten die horizontalen Überspannungen auf Zellen-Ebene spezifiziert sind, dann ist die Transformation der Überspannungs-Information aus HTML oder CALS (colspan) zu XSL-FO (number-columns-spanned) unproblematisch.

  • Überspannungen von Zeilen (vertikale Überspannungen): Die Überspannung wird in allen drei Konzepten jeweils in den Tabellenzellen spezifiziert. In CALS heißt das Attribut morerows. Der Vorgabewert ist unklar. In der Praxis dürfte dem Wert 1 eine Überspannung über zwei Zeilen entsprechen. In HTML (rowspan) und XSL-FO (number-rows-spanned) entspricht der Wert 1 keiner Überspannung von Zeilen.

  • Vertikale Aliniierung in Tabellenzellen: Das Attribut valign in HTML und CALS entspricht im Wesentlichen dem Attribut display-align in XSL-FO. Letzteres Attribut ist in XSL-FO nur auf Zellenebene zulässig, in HTML und CALS auch auf den höheren Ebenen der Tabelle für alle Zellen, die unterhalb des Knotens liegen.

  • Horizontale Aliniierung in Tabellenzellen: Das Attribut align in HTML und CALS für die horizontale Ausrichtung der Inhalte in Tabellenzellen hat in der XSL-FO-Tabellenstruktur keine Entsprechung auf derselben Strukturebene. In XSL-FO ist die horizontale Ausrichtung in der Tabellenzelle an den Block zu binden, der den Zelleninhalt umschließt.

   

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

Copyright © dpunkt.verlag GmbH 2004
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XSL-FO in der Praxis" 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.

dpunkt.verlag GmbH, Ringstraße 19B, 69115 Heidelberg, fon 06221-14830, fax 06221-148399, hallo(at)dpunkt.de