23. November 2021
Was sind Schemasprachen für die technische Dokumentation?
Schemasprachen definieren Regelwerke für XML Dokumente und beschreiben Struktur und Inhalt dieser Dokumente syntaktisch. Das definierte Regelwerk stellt somit sicher, dass das XML Dokument valide ist, also aus korrekten, einheitlichen und maschinenlesbaren Informationseinheiten besteht.
Es gibt grammatik- und regelbasierte Schemasprachen: DTD, XML Schema und Relax NG gehören zu den grammatikbasierten Schemasprachen. Mit ihnen lassen sich Elemente und Attribute definieren und Datentypen festlegen. Aus den definierten Inhaltsmodellen ergibt sich in welcher Reihenfolge, Häufigkeit und Hierarchie ein Element verwendet werden darf. Schematron ist dagegen eine regelbasierte Schemasprache. Mit ihr lassen sich zusätzliche Konventionen formulieren, die die grammatikalischen Regeln einer XML-Anwendung ergänzen.
Die wichtigsten Schemasprachen im Detail
DTD (Document Type Definition) einfach erklärt
Eine Dokumenttypdefinition (engl. document type definition), abgekürzt DTD, ist ein Regelwerk, das die logische Struktur eines Dokuments mit Elementen, Attributen, Entitäten und Notationen beschreibt. In einer DTD wird die Reihenfolge, die Anordnung und die Art des Inhalts festgelegt. Die Anzahl und die Qualität der Elemente bestimmt den Detailgrad einer DTD und damit den Grad der Semantik. DTD ist die verbreitetste Syntax von Dokumententypen.
XML Schema (XSD): Struktur und Datentypen definieren
XML Schema, abgekürzt XSD (XML Schema Definition), wird ebenfalls zur Definition von Strukturen in XML-Dokumenten verwendet. Anders als bei einer DTD wird die Struktur hier selbst als XML-Dokument beschrieben. XML Schema ist primär für den Austausch zwischen Applikationen (z.B. Webservices) und datenintensiven Workflows gedacht. DTDs eignen sich dagegen besser für textlastige Anwendungen.
Relax NG: Die flexible Alternative
Die Regular Language Description for XML New Generation, kurz RELAX NG, ist ebenfalls eine Schemasprache zur Definition der Struktur von XML-Dokumenten und ein internationaler Standard ISO/IEC 1975-2 innerhalb der Document Schema Definition Language. Genau wie XML Schema verwendet auch RELAX NG im Gegensatz zu einer DTD keine eigene Syntax, sondern (wahlweise) XML-basiertes Vokabular. RELAX NG ist mächtiger als DTD aber weniger komplex als XML Schema und auch geeignet, wenn es um die Validierung von Elementen und Attributen in XML-Dokumenten geht. RELAX NG entstand aus dem Wunsch die Nachteile von DTD und XML Schema zu beseitigen: die neue Schemasprache sollte XML-Syntax verwenden und leichtgewichtig sein. Das ist mit RELAX NG gelungen.
Schematron: Regeln für die XML-Validierung
Schematron ist eine Schemasprache, die keine formale Grammatik verwendet und damit nicht zur Definition (wie DTD und XML Schema), sondern zur Validierung von XML-Dokumenten dient. Es werden Regeln definiert, die in den grammatikbasierten Schemasprachen nicht möglich sind. Seit Mai 2006 ist Schematron 1.6 ein offizieller ISO/IEC-Standard. Schematron stellt eine Ergänzung zu herkömmlichen Schemasprachen dar. Mittlerweile wird Schematron von den gängigen XML-Editoren unterstützt. So stellt beispielsweise der Oxygen Editor eine Schematron Quick Fix Funktionalität zur Verfügung, die Regelverletzungen automatisch erkennt und korrigiert.
Was unterscheidet XML Schema von einer DTD?
| Kriterium | DTD (Document Type Definition) | XML Schema (XSD) |
|---|---|---|
| Datentypen | Keine bzw. sehr eingeschränkte Unterstützung für Datentypen | Umfangreiche Unterstützung für Datentypen (z. B. String, Integer, Datum) |
| Kardinalitäten & Bedingungen | Nur einfache Strukturdefinition möglich | Erweiterbar durch Integritätsbedingungen und detaillierte Kardinalitäten |
| Namespaces | Keine Unterstützung für Namespaces | Unterstützt Namespaces zur Vermeidung von Namenskonflikten |
| Syntax | Eigene, nicht-XML-basierte Syntax | XML-basierte Syntax |
| Validierung | Benötigt eigenen Parser | Kann mit standardmäßigen XML-Parsern validiert werden |
| Vererbung / Typ-Hierarchien | Nicht möglich | Unterstützung von Vererbung und Typ-Hierarchien |
| Reihenfolge von Elementen | Streng definiert | Auch reihenfolgeunabhängige Strukturen möglich |
| Semantik | Geringe Ausdrucksstärke | Höhere semantische Ausdruckskraft |
| Komplexität / Mächtigkeit | Einfacher, aber weniger leistungsfähig | Mächtiger und ausdrucksstärker, besonders für Datenstrukturen |
| Transformierbarkeit | Grundlage für XML Schema | Jede DTD kann in ein XML Schema überführt werden (umgekehrt nicht immer möglich) |
Schemasprachen im Vergleich: DTD & Schematron vs. XML Schema
Wir geben Ihnen einen Einblick in die verschiedenen Schemasprachen und ordnen die unterschiedlichen Begriffe ein. Wir widmen uns der Frage, ob es überhaupt die richtige Schemasprache für die Technische Dokumentation gibt und zeigen in zwei Praxisbeispielen verschiedene Szenarien für den Einsatz von Schemasprachen und den Einsatz von Schematron zur Validierung.
Maximilian Gärber