Erstellen einer XML-Grammatik mit DTDs

In früheren Artikeln wurde die Weiterentwicklung des Editors für Formbriefe in Richtung Verwendung von XML geschildert und die Document Type Definitions (DTDs) als ein primäres Design-Element vorgestellt. In diesem Artikel werden einige der bei der Erstellung von DTDs hinsichtlich des Designs getroffene Entscheidungen beleuchtet und Wege aufgezeigt, wie dieses Projekt noch verbessert werden kann.

Listing A zeigt unsere komplette DTD für die Beschreibung der Formbrief-Vorlagen. Es sind Elementtypen zur Text-Formatierung und für mögliche Benutzereingaben enthalten. Listing B zeigt ein Beispiel für eine vollständige Briefvorlage-Datei, in der die hier beschriebenen Elemente und Methoden angewandt werden.

Root-Elemente
Unsere Dokumente verwenden entweder den Elementtyp Brief oder den Elementtyp Formular als Root-Element. Der Unterschied liegt in den Standardrändern und dem Einfügen eines Briefkopfs. Hier die gegenwärtigen Definitionen:


<!ELEMENT letter ANY><!ELEMENT form ANY><!ATTLIST form
dest CDATA #IMPLIED
top CDATA "0"
bottom CDATA "0"
left CDATA "0"
right CDATA "0"
logo_x CDATA "0"
logo_y CDATA "0"
orient ( land | port ) "port">

Beachten Sie, dass nur das Formular-Element eine Festlegung von Rändern und Ausrichtung sowie das Einfügen eines Logos erlaubt. Diese Werte sind im Brief nicht veränderbar. Wir hätten daher diese festen Werte als Teil der DTD definieren können. Auf diese Weise können alle Standardwerte an einer Stelle erfasst werden, außerdem übernimmt so der Parser einen weiteren Teil der Arbeit:


<!ATTLIST letter
top CDATA #FIXED "12"
bottom CDATA #FIXED "6"
left CDATA #FIXED "15"
right CDATA #FIXED "15"
logo_x CDATA #FIXED "6.25"
logo_y CDATA #FIXED "2"
orient CDATA #FIXED "port">

Die Spezifikation #FIXED bedeutet, dass ein bestimmtes Attribut den angegebenen Wert aufweisen muss. Im Allgemeinen enthalten Dokumente keine eigenen Attribute sondern verwenden die Standard-Werte.

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

Gefahren im Foxit PDF-Reader

Check Point warnt vor offener Schwachstelle, die derzeit von Hackern für Phishing ausgenutzt wird.

3 Tagen ago

Bitdefender entdeckt Sicherheitslücken in Überwachungskameras

Video-Babyphones sind ebenfalls betroffen. Cyberkriminelle nehmen vermehrt IoT-Hardware ins Visier.

3 Tagen ago

Top-Malware in Deutschland: CloudEye zurück an der Spitze

Der Downloader hat hierzulande im April einen Anteil von 18,58 Prozent. Im Bereich Ransomware ist…

3 Tagen ago

Podcast: „Die Zero Trust-Architektur ist gekommen, um zu bleiben“

Unternehmen greifen von überall aus auf die Cloud und Applikationen zu. Dementsprechend reicht das Burg-Prinzip…

3 Tagen ago

Google schließt weitere Zero-Day-Lücke in Chrome

Hacker nutzen eine jetzt gepatchte Schwachstelle im Google-Browser bereits aktiv aus. Die neue Chrome-Version stopft…

3 Tagen ago

Hacker greifen Zero-Day-Lücke in Windows mit Banking-Trojaner QakBot an

Microsoft bietet seit Anfang der Woche einen Patch für die Lücke. Kaspersky-Forscher gehen davon aus,…

3 Tagen ago