Schemadschungel

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

Offiziell unterstützt das DocBook-Komitee DTD und RELAX NG. W3C-Schema ist lediglich aus Komfortgründen hinzugefügt worden. Alle Schemasprachen sind identisch hinsichtlich Struktur und Namen der Elemente und Attribute, unterscheiden sich jedoch in ihrer Ausdrucksfähigkeit (dazu gleich mehr).

Bevor Sie beginnen, entscheiden Sie sich für ein Schema, das Sie als Grundlage Ihrer Dokumente verwenden möchten. DocBook gibt es in den folgenden Varianten:

DTD (Document Type Definition)

Als älteste und verbreiteste Schemasprache ist die DTD bei XML-Editoren oder Parsern bestens unterstützt. Bis zur Version 4.5 wurde DocBook als DTD formuliert, ab 5.0 als RELAX NG-Schema.
Eine DTD ist eine grammatikbasierte (Anmerkung: Grammatikbasierte Schemasprachen konzentrieren sich auf die Struktur der Instanzdokumente und formulieren Regeln um diese Struktur zu beschränken ("Element A besteht aus …").) Schemasprache. Sie unterstützt keine Namensräume und besitzt ein nur auf Attribute anwendbares, schwach ausgebildetes Datentypsystem.
Verwenden Sie eine DTD, wenn Sie keine Datentypen benötigen und Programme besitzen, die nur DTDs kennen.

RELAX NG

RELAX NG ist eine leicht zu erlernende und zu schreibende grammatikbasierte Schemasprache. Sie unterstützt Datentypen sowohl in Elementinhalt als auch in Attributen. Von manchen XML-Experten wird sie als einfachere und zuverlässigere Sprache angesehen als W3C-Schema. Zusätzlich hat sie eine äquivalente, kompakte Schreibweise.
DocBook 5 wurde wegen dieser Fähigkeiten offiziell in RELAX NG formuliert. Verwenden Sie diese Sprache, wenn Ihre Programme RELAX NG unterstützen, Sie eine strengere Kontrolle Ihrer Dokumente benötigen und wenn Sie andere RELAX NG-Schemata in DocBook 5 integrieren möchten.

Schematron

Schematron nimmt eine Sonderstellung ein. Es ist eine regelbasierte (Anmerkung: Regelbasierte Schemasprachen spezifizieren Bedingungen zwischen Elementen und Attributen, die sich durch eine Regel oder Algorithmus formulieren lassen ("ist das Attribut version im Wurzelelement vorhanden?")) Schemasprache, mit Bezug zu XPath und XSLT. Es überprüft ein XML-Dokument durch so genannte kontextabhängige Zusicherungen (engl. assertions). Schematron wird seltener als eigenständige Schemasprache verwendet, sondern mehr als Ergänzung zu RELAX NG oder W3C Schema gesehen. Aufgrund der unterschiedlichen Syntax lassen sich Schematron und DTD nicht in derselben Datei zusammen nutzen.
Für DocBook 5 bedeutet dies, dass ein Dokument nicht separat mit Schematron validiert wird, sondern stets zusammen mit RELAX NG oder W3C-Schema. Beide DocBook 5-Schemata enthalten Schematron-Anweisungen innerhalb der DocBook-Elemente. Durch Schematron-Anweisungen werden Bedingungen überprüft, die durch RELAX NG oder W3C-Schema allein schwierig oder unmöglich auszudrücken sind. Beispielsweise erfordert DocBook 5 ein Attribut version im Wurzelelement. Mittels W3C- oder RELAX NG-Schema ist diese Bedingung zwar zu überprüfen, jedoch ist es eine sehr mühsame Angelegenheit alle möglichen Kombinationen abzudecken. Für diesen Zweck wird Schematron eingesetzt.

W3C-Schema

Die W3C XML Schemasprache ist eine sehr stark typisierte Schemasprache. Sie beschreibt Dokumente aus einem objektorientierten Blickwinkel. W3C-Schema enthält Grundtypen aus denen sich komplexere Datentypen zusammenstellen lassen. Des Weiteren erlaubt diese Schemasprache namensraumsensitive Element- und Attributdeklarationen.
Verwenden Sie W3C-Schema dann, wenn Sie Programme besitzen, die RELAX NG-Schema nicht kennen, jedoch die selben Möglichkeiten wie bei einem RELAX NG-Schema benötigen.

Anmerkung: Unterschiede in der Validierung
Es gibt Validierungsunterschiede, die weniger in DocBook selbst, als in der jeweiligen Schemasprache liegen (beispielsweise bei Datentypen). Dies kann dazu führen, dass Dokumente bei der Validierung mit einer DTD gültig sind, jedoch nicht mit einem RELAX NG oder W3C-Schema – und umgekehrt. Aus diesem Grund validieren Sie ein DocBook 5 stets mit dem RELAX NG- oder W3C-Schema.

Welche Schemasprache und welche Version sollten Sie wählen? Da Dokumentation, Systemumgebung, Zielsetzung und Anforderungen zu unterschiedlich sind, gibt es keinen allgemeingültigen, "richtigen" Weg. Die zwei Aspekte Version und Schemasprache sind in der folgenden Liste beschrieben:

Version: 4.x oder 5.x?

DocBook 5 bietet gegenüber DocBook 4 einige Vorteile, die in Unterschiede zwischen DocBook 4 und 5 gezeigt werden. Für neue Projekte sollten Sie Version 5 bevorzugen, da Version 4 nicht mehr weiterentwickelt wird. Das bedeutet, neue Elemente werden nur in der Version 5 und später eingefügt. Bei älteren Projekten stellt sich die Frage, ob Sie die Vorteile der neueren Version nutzen möchten und Ihre alten Dokumente migrieren.

Schemasprache: DTD, RELAX NG oder W3C-Schema?

Da Ihre Dokumente nicht losgelöst von der Verarbeitung sind, bestimmen Ihre eingesetzen Programme zu einem gewissen Teil die Schemasprache. Wenn Ihr XML-Editor kein RELAX NG unterstützt, ist es sinnlos als Basis für Ihre Dokumente RELAX NG zu wählen. Sind Sie jedoch frei von diesen Einschränkungen sind die modernen Schemasprachen RELAX NG oder W3C-Schema meist die bessere Wahl. Sie erlauben eine exaktere Kontrolle Ihres Inhalts anhand von Datentypen oder "Kontrollanweisungen" in Form von Schematron. Zudem ist es mit RELAX NG sehr einfach, DocBook an Ihre Bedürfnisse anzupassen.

  

<< 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