Kapitel 4. XML-Dokumente erstellen

Inhaltsverzeichnis
4.1. XHTML
4.2. Die DocBook DTD

In diesem Kapitel werden die beiden vom FDP eingesetzten Auszeichnungssprachen XHTML und DocBook behandelt. Hierbei beschränkt sich dieses Kapitel auf die Elemente, die bei der täglichen Arbeit am ehesten zum Einsatz kommen werden.

Beide Sprachen besitzen eine große Anzahl von Elementen. Das erschwert es, das richtige Element in der richtigen Situation auszuwählen. Aus diesem Grund werden zu jedem Element auch immer Beispiele angeboten, die den richtigen Einsatz des Elements verdeutlichen sollen.

Es ist nicht das Ziel dieses Kapitels möglichst viele Elemente beider Sprachen zu behandeln – dies wäre nur eine Wiederholung der eigentlichen Sprachreferenz. Sofern es Unklarheiten zur Verwendung einzelner Elemente und Auszeichnung von bestimmten Sachverhalten gibt, können diese an FreeBSD documentation project geschickt werden.

Fluß- kontra Blockelemente:

Wenn im Folgenden von Flußelementen die Rede ist, sind damit Elemente gemeint, die in einem Blockelement auftreten können und keinen Zeilenumbruch hervorrufen. Blockelemente hingegen erzeugen unter anderem einen Zeilenumbruch[11].

4.1. XHTML

XHTML ist die XML Version der HyperText Markup Language, der Auszeichnungssprache der Wahl im World Wide Web. Weitere Informationen zu XHTML finden sich unter http://www.w3.org/.

XHTML kommt bei der Erstellung der Webseiten des FreeBSD-Projektes zum Einsatz. Für technische Dokumentationen sollte XHTML jedoch nicht eingesetzt werden, da DocBook eine größere und bessere Auswahl an Elementen bietet. Folglich sollte XHTML nur für die FreeBSD-Webseiten verwendet werden.

Die HTML-Spezifikation liegt bis jetzt in mehreren Versionen vor: 1, 2, 3.0, 3.2, 4.0 sowie eine XML konforme Version namens XHTML in seiner neuesten Version XHTML 1.0 (verfügbar als strict und transitional Variante.

Die XHTML-DTDs sind über den Port textproc/xhtml verfügbar und werden automatisch als Teil des Metaports textproc/docproj installiert.

4.1.1. Formale Öffentliche Bezeichner

Da es mehrere Version von XHTML gibt, existieren auch mehrere FÖPs, zu denen ein XHTML-Dokument konform erklärt werden kann. Die Mehrzahl der sich auf der FreeBSD-Webseite befindenden XHTML-Seiten sind zu der lockeren Version von XHTML 1.0 konform.

PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

4.1.2. Die Elemente head und body

Ein XHTML-Dokument unterteilt sich normalerweise in zwei Bereiche: head und body. Der Kopf (head) enthält Metadaten wie den Dokumententitel und Angaben zum Autor. Der Rumpf (body) umfasst den eigentlichen Dokumenteninhalt, der für den Leser bestimmt ist. In einem XHTML-Dokument werden diese Bereiche über die Elemente head und body voneinander abgegrenzt. Beide sind Kinder des Wurzelelementes html.

Beispiel 4.1. Die Struktur eines XHTML-Dokumentes
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Der Dokumententitel</title>
  </head>

  <body>

    …

  </body>
</html>

4.1.3. Blockelemente

4.1.3.1. Überschriften

XHTML kennt sechs verschiedene Elemente, mit denen Überschriften ausgezeichnet werden können. Das bekannteste Element ist h1, das sich am Anfang der Überschriftenhierarchie befindet. h1 folgen die Überschriftenelemente h2 bis h6. Der Inhalt von hN stellt den Text der Überschrift dar.

Beispiel 4.2. h1, h2

Fügen Sie in eine der existierenden Übungsdateien folgendes ein:

<h1>Erstes Kapitel</h1>

<!-- Hier steht die Einführung -->

<h2>Das ist die Überschrift des ersten Kapitels</h2>

<!-- Hier steht der Inhalt des ersten Kapitels -->

<h3>Das ist die Überschrift des ersten Unterkapitels</h3>

<!-- Hier steht der Inhalt des ersten Unterkapitels -->

<h2>Das ist die Überschrift des zweiten Kapitels</h2>

<!-- Hier steht der Inhalt des zweiten Kapitels -->

Eine XHTML-Seite sollte immer nur eine Überschrift h1 haben. Dieser Überschrift können beliebig viele Kapitel mit einer Überschrift h2 folgen, die selbst wiederum eine beliebige Anzahl von Kapiteln mit einer Überschrift h3 enthalten können. Diese Verschachtelung setzt sich bis zu Kapiteln mit einer h6-Überschrift fort. Es sollte vermieden werden, Elemente in der Überschriftenhierarchie auszulassen.

Beispiel 4.3. Falsche Verschachtelung von Überschriften

Fügen Sie in eine der existierenden Übungsdateien folgendes ein:

<h1>Erstes Kapitel</h1>

<!-- Allgemeines zum Dokument -->

<h3>Unterkapitel</h3>

<!-- h3 folgt direkt auf h1. h2 wurde ausgelassen -->

4.1.3.2. Absätze

Absätze können in XHTML mit Hilfe des Elementes p ausgezeichnet werden.

Beispiel 4.4. Absätze mit dem Element p

Fügen Sie in eine der existierenden Übungsdateien folgendes ein:

<p>Das hier, das ist ein Absatz. Absätze können
  andere Elemente enthalten.</p>

4.1.3.3. Blockzitate

Ein Blockzitat ist ein etwas umfangreicheres Zitat aus einem anderen Text, das nicht zum aktuellen Absatz gehört.

Beispiel 4.5. Blockzitat

Fügen Sie in eine der existierenden Übungsdateien folgendes ein:

<blockquote>
  <p>Artikel 1: Menschenwürde; Grundrechtsbindung der
    staatlichen Gewalt</p>

  <ol>
    <li>
      <p>Die Würde des Menschen ist unantastbar. Sie zu achten
        und zu schützen ist Verpflichtung aller staatlichen
        Gewalten.</p>
    </li>
    <li>
      <p>Das Deutsche Volk bekennt sich darum zu unverletzlichen
        und unveräußerlichen Menschenrechten als Grundlage jeder
        menschlichen Gemeinschaft, des Friedens und der
        Gerechtigkeit in der Welt.</p>
    </li>
    <li>
      <p>Die nachfolgenden Grundrechte binden Gesetzgebung,
        vollziehende Gewalt und Rechtsprechung als
        unmittelbar geltendes Recht.</p>
    </li>
  </ol>
</blockquote>

4.1.3.4. Listen

XHTML kennt drei Arten von Listen: sortierte, unsortierte und Definitionslisten. Ein Eintrag in einer sortierten Liste wird üblicherweise mit einer Nummer versehen, Einträge in unsortierten Listen hingegen mit einem Aufzählungspunkt. Definitionslisten wiederum bestehen aus zwei Teilen: Der erste enthält den Begriff der definiert werden soll und der zweite dessen Erläuterung.

Sortierte Listen werden mit dem Element ol (für ordered list) ausgezeichnet, unsortierte Listen mit ul (für unordered list) und Definitionslisten mit dl.

Listenpunkte sortierter und unsortierter Listen werden mit dem Element li ausgezeichnet, welches Text oder andere Blockelemente enthalten kann. Begriffe, die in einer Definitionslisten enthalten sind, werden mit dem Element dt (für definition term) ausgezeichnet. Die Erklärung zu diesem Begriff wird mit Hilfe des Elementes dd (für definition description) markiert. So wie li, kann das Element dd ebenfalls andere Blockelemente aufnehmen.

Beispiel 4.6. Listen mit ul und ol erstellen

Fügen Sie in eine der existierenden Übungsdateien folgendes ein:

<p>Jetzt folgt eine unsortierte Liste. Wahrscheinlich werden
  die einzelnen Einträge mit einem vorangehenden Punkt dargestellt.</p>

<ul>
  <li>Erster Eintrag</li>

  <li>Zweiter Eintrag</li>

  <li>Dritter Eintrag</li>
</ul>

<p>Die zweite Liste ist sortiert und ihre Einträge bestehen aus mehreren Absätzen.
  Jeder Listeneintrag ist nummeriert.</p>

<ol>
  <li><p>Das ist der erste Eintrag mit nur einem Absatz.</p></li>

  <li><p>Das ist der erste Absatz des zweiten Eintrags.</p>

    <p>Und das ist der zweite Absatz des zweiten Eintrags.</p></li>

  <li><p>Der dritte Eintrag besteht ebenfalls nur aus einem Eintrag.</p></li>
</ol>

Beispiel 4.7. Definitionslisten mit dl erstellen

Fügen Sie in eine der existierenden Übungsdateien folgendes ein:

<dl>
  <dt>Erster Begriff</dt>

  <dd><p>Erster Absatz der Erklärung</p>

    <p>Zweiter Absatz der Erklärung.</p></dd>

  <dt>Zweiter Begriff</dt>

  <dd><p>Erster Absatz der Erklärung.</p></dd>

  <dt>Dritter Begriff</dt>

  <dd>Erster Absatz der Erklärung zum dritten Begriff.</dd>
</dl>

4.1.3.5. Vorformatierter Text

In einigen Fällen ist es gewollt, dass die Formatierung eines Textes im Quelldokument erhalten bleibt, damit der Leser diesen genau so sieht, wie ihn der Autor erstellt hat. In der XHTML-Spezifikation ist dafür das Element pre vorgesehen, welches dafür sorgt, dass Zeilenumbrüche erhalten bleiben und Leerzeichen nicht zusammengefasst werden. Browser verwenden für den Inhalt des Elementes pre üblicherweise eine Fixschrift.

Beispiel 4.8. Vorformatierten Text mit pre erstellen

Der Originaltext einer E-Mail läßt sich beispielsweise wie folgt einbinden:

<pre>  From: nik@FreeBSD.org
  To: freebsd-doc@FreeBSD.org
  Subject: Neue Version verfügbar

  Es ist eine neue Version der Fibel für neue Mitarbeiter am
  FreeBSD-Dokumentationsprojekt verfügbar:

    &lt;URL:http://people.FreeBSD.org/~nik/primer/index.html&gt;

  Kommentare und Anmerkungen sind willkommen.

  N</pre>

Beachten Sie, dass < und & nach wie vor als Sonderzeichen erkannt werden. Daher wird in diesem Beispiel auch &lt; an Stelle von < verwendet. Aus dem gleichen Grund wurde auch &gt; an Stelle von > verwendet. Achten Sie also stets auf Sonderzeichen, wenn Sie normalen Text aus E-Mails, Programmcode oder einer anderen Quelle kopieren.


4.1.3.6. Tabellen

Anmerkung:

Die meisten Textbrowser, beispielsweise Lynx, können Tabellen nicht besonders gut darstellen. Deshalb sollten Auszeichnungsalternativen in Betracht gezogen werden, um eine angemessene Darstellung sicherzustellen.

Tabellen lassen sich in XHTML mit Hilfe des Elements table auszeichnen. Eine Tabelle setzt sich aus einer oder mehreren Zeilen (tr) zusammen, von denen jede mindestens eine Zelle (td) enthält. Zellen können wiederum andere Blockelemente, wie Absätze oder Listen, enthalten. Auch können sie auch andere Tabellen aufnehmen, wobei die Verschachtelungstiefe unbegrenzt ist. Soll die Tabellenzelle nur einen Textabsatz enthalten, ist es nicht notwendig den Text mit einem p zu umschließen.

Beispiel 4.9. Einfache Tabelle mit table

Fügen Sie in eine der existierenden Übungsdateien folgendes ein:

<p>Eine einfache 2x2 Tabelle.</p>

<table>
  <tr>
    <td>Obere linke Zelle</td>

    <td>Obere rechte Zelle</td>
  </tr>

  <tr>
    <td>Untere linke Zelle</td>

    <td>Untere rechte Zelle</td>
  </tr>
</table>

XHTML kennt die Möglichkeit, dass sich eine Zelle mehrere Zeilen und/oder Spalten erstrecken kann. Sollen beispielsweise mehrere Spalten zusammenfassen werden, kann dies mit Hilfe des Attributes colspan erreicht werden, indem man ihm die Anzahl der zusammenzufassenden Spalten zuweist. Ähnliches gilt für die Zusammenfassung von Zeilen: Hierfür wird dem Attribut rowspan die Anzahl der zusammenzufassenden Zeilen zugewiesen.

Beispiel 4.10. Anwendung des Attributes rowspan
<p>Diese Tabelle besteht aus einer langen Zelle auf der
  linken Seite und zwei kleineren Zellen auf der rechten.</p>

<table>
  <tr>
    <td rowspan="2">Lang und dünn</td>
  </tr>

  <tr>
    <td>Obere Zelle</td>

    <td>Untere Zelle</td>
  </tr>
</table>

Beispiel 4.11. Anwendung des Attributes colspan
<p>Eine breite Zeile oben und zwei schmalere Zeilen
  darunter.</p>

<table>
  <tr>
    <td colspan="2">Obere Zelle</td>
  </tr>
  <tr>
    <td>Linke untere Zelle</td>

    <td>Rechte untere Zelle</td>
  </tr>
</table>

Beispiel 4.12. Gemeinsame Anwendung der Attrbute rowspan und colspan
<p>Eine Tabelle mit 3-mal-3 Zellen. Oben links
  werden 2 mal 2 Zelle zusammengezogen.</p>

<table>
  <tr>
    <td colspan="2" rowspan="2">Große obere linke Zelle</td>

    <td>Obere rechte Zelle</td>
  </tr>

  <tr>
    <td>Mittlere rechte Zelle</td>
  </tr>

  <tr>
    <td>Untere linke Zelle</td>

    <td>Untere mittlere Zelle</td>

    <td>Untere rechte Zelle</td>
  </tr>
</table>

4.1.4. Flußelemente

4.1.4.1. Hervorheben von Information

Sollen sich bestimmte Informationen von anderen optisch abheben, kann dies mit den HTML-Tags strong und em erreicht werden. strong stellt dabei eine stärkere Hervorhebung als em dar, wobei mit strong ausgezeichnete Elemente fett und mit em ausgezeichnete Elemente kursiv dargestellt werden. Allerdings ist diese Aussage nicht verlässlich, da die Darstellung vom Browser abhängig ist. In der Praxis ist es so, dass Webseiten nur strukturelle und semantische Informationen enthalten und Stylesheets später auf diese Informationen angewendet werden. Beachten Sie also die Semantik und nicht die Formatierung wenn Sie mit diesen Tags arbeiten.

Beispiel 4.13. Text mit em und strong hervorheben
<p><em>Dieses</em> Wort ist hervorgehoben,
  während <strong>dieses noch stärker hervorgehoben ist.</p>

4.1.4.2. Nicht-proportionale Schrift für Texte

Der Tag tt erlaubt es, Text in einer schreibmaschinenähnlichen Schrift darzustellen.

Beispiel 4.14. Nicht-proportionale Schrift mit tt
<p>Dieses Dokument wurde ursprünglich von
  Nik Clayton geschrieben. Nick Clayton kann unter der E-Mail-Adresse
  <tt>nik@FreeBSD.org</tt> erreicht werden.</p>

4.1.5. Links

Anmerkung:

Bei Links handelt es sich ebenfalls Flußelemente.

4.1.5.1. Auf andere Dokumente im WWW verweisen

Um auf ein anderes Dokument im WWW zu verweisen, müssen Sie die URL dieses Dokuments kennen.

Links auf andere Dokumente im WWW werden in HTML durch den Tag a und dessen Attribute href, das die Zieladresse enthält, angelegt. Der Inhalt des Elementes wird selbst zum Link und seine Darstellung erfolgt verschieden vom übrigen Text. Meist geschieht das durch eine andere Schriftfarbe oder dadurch, dass der Linktext unterstrichen wird.

Beispiel 4.15. <a href="..."> benutzen
<p>Weitere Informationen stehen auf der
  <a href="http://www.FreeBSD.org/">FreeBSD-Webseite</a> zur Verfügung.</p>

Beim Aufruf dieses Links wird das referenzierte Dokument vom Browser geladen und mit dessen Seitenanfang dargestellt.

4.1.5.2. Auf bestimmte Dokumentenabschnitte verweisen

XHTML unterstützt neben einfachen Links auch solche, die auf einen bestimmten Abschnitt innerhalb eines Dokumentes verweisen. Dazu müssen die Abschnitte, auf die verwiesen werden soll, mit Hilfe von sogenannten Ankern markiert werden. Diese Anker können ebenfalls mit Hilfe des Tags a gesetzt werden, nur das anstelle von href das Attribut name gesetzt werden muss.

Beispiel 4.16. Anwendung von <a id="...">
<p><a name="absatz1">Auf</a> diesen Absatz kann mit
  Hilfe seines Namens (<tt>absatz1</tt>) verwiesen werden.</p>

Um auf einen so gekennzeichneten Abschnitt zu verweisen, muss die URL des Dokumentes um das Zeichen # und den Namen des Zielankers erweitert werden.

Beispiel 4.17. Auf einen Abschnitt eines anderen Dokumentes verweisen

Für dieses Beispiel wird davon ausgegangen, dass der mit absatz1 gekennzeichnete Absatz sich in der XHTML-Datei foo.html befindet.

<p>Weitere Informationen können im
  <a href="foo.html#absatz1">ersten Absatz</a> der Datei
  <tt>foo.html</tt> gefunden werden.</p>



[11] Die englische Bezeichnung inline element wurde in Anlehnung an das Wort Fließtext mit Flußelement übersetzt.

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.

Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.