Unterschiede von Anpassungen zur DocBook-DTD

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

DocBook wurde zuerst als SGML-DTD, später als XML-DTD definiert. Jedoch besitzen beide DTD-Varianten einige Einschränkungen, weshalb Norman Walsh RELAX NG für die nächste Hauptversion von DocBook verwendet.

Anders als die DocBook-DTD wird DocBook 5 als eine Datei ausgeliefert. Entwickelt wird das Schema jedoch modular. (Für Interessierte: Im Subversion-Repository lassen sich diese Module einsehen.) Im Gegensatz zur DTD-Version verwendet RELAX NG-Version keine Parameter-Entities sondern Definitionsmuster. Beispielsweise wird das Element example in der DocBook 4-DTD wie folgt definiert:

<!ENTITY % local.example.attrib "">
<!ENTITY % example.role.attrib "%role.attrib;">
<!-- ... -->
<!ELEMENT example %ho; (blockinfo?, (%formalobject.title.content;),
            (%example.mix;)+)
            %formal.exclusion;>

Das Parameter-Entity %local.example.attrib; ermöglicht die Attribute von example zu erweitern. Bei DocBook 5 entfallen diesen lokalen Parameter-Entities, da Sie ein RELAX NG-Schema anpassen, indem Sie Definitionsmuster überschreiben oder erweitern. Namen beginnen in Version 5 alle mit dem Präfix db und einem Punkt. In der kompakten Syntax von RELAX NG sieht die obige Elementdeklaration zum Vergleich wie folgt aus:

db.example =
# Schematron-Regeln ausgeblendet
  element example {
      db.example.attlist,
      db.example.info, db.all.blocks+, db.caption?
}

In der XML-Schreibweise wird daraus:

<define name="db.example">
  <!-- Schematron-Regeln ausgeblendet -->
  <element name="example">
    <ref name="db.example.attlist"/>
    <ref name="db.example.info"/>
    <oneOrMore>
       <ref name="db.all.blocks"/>
    </oneOrMore>
    <optional>
       <ref name="db.caption"/>
    </optional>
  </element>
</define>

Inhaltsmodell und Attributdeklaration werden in RELAX NG im Gegensatz zu einer DTD zusammen angegeben. Bei einer DTD muss eine separate Deklaration mittels ATTLIST erfolgen.

  

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