Station - Eine Grammatik für DiagramML
Korrekte DiagramML-Dokumente
Im letzten Abschnitt haben wir die Sprache DiagramML informell anhand eines Beispiel-XML-Dokuments beschrieben. Eine solche informelle Beschreibung lässt oft noch viele Fragen offen. Überzeuge dich selbst und schaue dir die folgenden XML-Dokumente an. Welche dieser XML-Dokumente sind korrekte DiagramML-Dokumente? Warum ist es so schwer, das zu entscheiden?
Eine Dokumenttypdefinition schafft hier Klarheit. Mit der folgenden DTD wird die Struktur von DiagramML-Dokumenten genau vorgeschrieben.
<!ELEMENT diagramm (stabdiagramm)>
<!ELEMENT stabdiagramm (breite, einheit, abstand, farbe, wert*)>
<!ELEMENT breite (#PCDATA)>
<!ELEMENT einheit (#PCDATA)>
<!ELEMENT abstand (#PCDATA)>
<!ELEMENT farbe (#PCDATA)>
<!ELEMENT wert (#PCDATA)>
Aufgabe 1
Überprüfe mit Hilfe der DTD, welche der oben gegebenen XML-Dokumente valide sind und somit zur Sprache DiagramML gehören.
Dokumenttypdefinition als Grammatik
Eine Dokumenttypdefinition legt die gewünschte Struktur von XML-Dokumenten präzise fest. Das kann man auch so sehen: Eine DTD legt eine Sprache fest. Die Sprache besteht dann aus allen XML-Dokumenten, die valide bzgl. der DTD sind.
Im vorliegenden Anwendungsbereich legt die DTD diagramm.dtd
eine XML-basierte Sprache
fest, die wir DiagramML nennen. Diese Sprache besteht aus allen XML-Dokumenten, die die
in der DTD diagramm.dtd
festgelegte Struktur haben.
Eine Dokumenttypdefinition kann somit als Grammatik einer XML-basierten Sprache angesehen werden.