Die Definition der DTD setzt eine gute Kenntnis der zu beschreibenden Dokumentstruktur voraus. Zwei Dinge haben uns in diesem Fall geholfen:
Spezialitäten.
Eine Besonderheit sind die Icons in den Marginalspalten. Solche Formatierungswünsche stehen aber stets in Bezug zum Text. Es ist fast überflüssig zu erwähnen, dass das Beispiel-Icon neben einem Beispiel stehen soll. Für den Text bedeutet es, dass Beispiele als solche markiert werden müssen; wir brauchen also ein XML-Element dafür. Die Umsetzung ist recht einfach: Wir haben einen Elementtyp der folgenden Art auf Blockebene eingeführt:
<!ELEMENT bspblock (%block;)+>
Das Parameter-Entity %block fasst sämtliche Blöcke unserer
DTD zusammen. Als Inhalt eines Beispiels
haben wir damit weitere Blöcke zugelassen. In analoger
Weise sind die anderen Icons zu behandeln, die alle auf eine
bestimmte logische Textkomponente hinweisen.
Neben den Besonderheiten sind aber auch die gewöhnlichen Bestandteile des Buches genau zu identifizieren. Dazu zählen die Abschnittstruktur, Aufzählungen, Listen sowie Elemente auf Zeichenebene, also Hervorhebungen, Akronyme, Befehlsnamen und so weiter. All diese Dinge, die man auf den ersten Blick als selbstverständlich ansieht, muss man erkennen, beschreiben und in der DTD definieren. Falls dabei etwas vergessen wird, hat das Auswirkungen auf die spätere Texterstellung.
Mit der DTD zu diesem Buch befinden wir uns
in einer besonderen Situation: Wir schreiben die
DTD für uns selbst. Mit anderen Worten:
Entwickler und Anwender sind identisch. Dies erlaubt uns,
etwas schlampiger
bei den ersten Versionen zu
sein. Jeder Mangel fällt zuerst uns selbst auf und kann
dann behoben werden. Das hemmt zwar gelegentlich den
Schreibfluss etwas, wenn man gerade eine
schöpferische Phase hat und der SGML-Editor
die Arbeit mit dem Hinweis verweigert, dass es das
benötigte Element gar nicht gibt, aber mit ein wenig
Voraussicht und Erfahrung taucht dieses Problem nicht allzu
oft auf.