Auf der Zeichenebene sieht die Sache schon interessanter aus. Wir haben Zeichenelemente aufgeteilt in logische und in physikalische Elemente (als Parameter-Entities %logical; und %physical;). Innerhalb eines Blocks sind folgendermaßen definierte Zeichen zugelassen:
<!ENTITY % zeichen " (#PCDATA | (%logical; | %physical;)?)+ " >
Zu den physikalischen Elementtypen zählen wir Hervorhebungen und solche Elemente, die aus typografischen Überlegungen eingeführt wurden. Letzteres ist zum Beispiel acro zur Auszeichnung von Akronymen.
Welchen Umfang die Gruppe der logischen Elemente besitzt, ist noch nicht endgültig abzusehen. Das liegt daran, dass die AWLINET-DTD nicht nur eine Beschreibung für dieses Buch sein soll, sondern für alle Bücher in der Internet-Reihe von AWL. Für ein XML-Buch wären natürlich Elementtypen wie element, attribut, pi usw. geeignet. Allerdings würde ein Autor, der ein Buch über eine objektorientierte Programmiersprache schreibt, wahrscheinlich Typen wie methode property erwarten. Dies kann man so regeln, dass man tatsächlich spezielle Elementtypen der genannten Art definiert oder man versucht, eine kleine Zahl allgemeiner Typen zu finden, die sich über ein Attribut an die jeweilige Situation anpassen lassen.
Wie gesagt, die Entscheidung ist noch nicht abschließend gefallen. Als Arbeitsgrundlage haben wir die Attributvariante gewählt.
<!ELEMENT keyword (#PCDATA) > <!ATTLIST keyword class NAMES #IMPLIED >
Das von HTML entliehene Attribut class dient zur genaueren Bestimmung des Schlüsselworts. In diesem Buch haben wir Elemente und Attribute in der Form <keyword class="elem">...</keyword> bzw. <keyword class="att">...</keyword> ausgezeichnet. Ein anderer Autor könnte <keyword class="methode">...</keyword> verwenden.
Natürlich hat diese Vorgehensweise Nachteile, die wir in Kapitel 13 schon angesprochen haben, aber wegen der leichten Handhabung haben wir uns zunächst für diesen Weg entschieden.