Konzepte Content-Repräsentation & Markup-Sprachen

7.2 Elementtyp-Deklarationen

Die Bildungsregel für das Wurzelelement eines XHTML-Dokuments wird in der verwendeten DTD wie in Beispiel 2 festgeschrieben:

Beispiel 2. Elementtyp-Deklaration mit Sequenz-Operator

      <!ELEMENT html (head, body)>
    

Die mit der Zeichenkette “<!” eingeleitete Markup-Deklaration in diesem Beispiel stellt eine sogenannte Elementtyp-Deklaration dar, mit der ein neuer Elementtyp eingeführt wird. Auf das Schlüsselwort ELEMENT folgt der sogenannte Generic Identifier (also der “Name”) des Elementtyps. Er bildet gleichermaßen die linke Seite einer Regel und den Bezeichner für die neue Hierarchieebene, die bei der Regelanwendung im Dokument eingeführt wird. Hier wird also eine Bildungsregel für Elemente mit dem Namen html definiert.

Der Angabe des Generic Identifier (GI) folgt eine Beschreibung des erlaubten Element-Inhalts, das sogenannte Content Model für diesen Elementtyp. Dies entspricht im wesentlichen der rechten Seite der in Lerneinheit 6 gezeigten Bildungsregeln, allerdings mit dem Unterschied, daß das formale Content Model in XML und SGML wesentlich eingeschränkter ist, um eine effiziente automatische Verarbeitung zu gewährleisten.

Eine der einfachsten Möglichkeiten für die Definition erlaubter Element-Inhalte zeigt obiges Beispiel mit dem Content Model (head,body): Ein html-Element muß gemäß dieser Regel aus einem head-Element gefolgt von einem body-Element bestehen. Dies wird mit Hilfe des sogenannten Sequenz-Operators (“,”) beschrieben. Er ist so definiert, daß ein Element mit dem Content Model (A,B) dem Content Model A gefolgt vom Content Model B entsprechen muß. Oben angeführte Regel würde graphisch nach der in Lerneinheit 6 verwendeten Konvention also wie in Abbildung 2 dargestellt.

Abbildung 2. Bildliche Darstellung der Bildungsregel für den Elementtyp HTML

Für die Definition alternativer Modelle sieht die DTD-Syntax einen speziellen Operator vor. Mit diesem Auswahl-, bzw. Choice-Operator (“|”) lassen sich mehrere mögliche Modelle angeben, von denen im Dokument genau eines verwendet werden muß. Der Inhalt eines Elements mit dem Content Model (A|B) muß demnach dem Content Model A oder dem Content Model B entsprechen.

Beispiel 3 zeigt die Verwendung des Auswahl-Operators in einer Elementtyp-Deklaration für einen Querverweis. In dieser sehr vereinfachten Anwendung wird zwischen Verweisen innerhalb und außerhalb des aktuellen Dokuments unterschieden. Die Verweise (Links) werden durch entsprechende Elementtypen repräsentiert und können unterschiedliche Content Models o.ä. besitzen:

Beispiel 3. Elementtyp-Deklaration mit Auswahl-Operator

      <!ELEMENT link (ilink|ulink)>
    

In SGML existiert ein weiterer Operator “&”, mit dem sich das Auftreten von Elementen in beliebiger Reihenfolge beschreiben läßt. Ein Element genügt dem Content Model (A&B) also dann, wenn es dem Content Model A gefolgt von B, oder aber B gefolgt von A entspricht. In XML muß dieser Sachverhalt als Kombination von Auswahl und Sequenz als ((A,B)|(B,A)) dargestellt werden.

Die gezeigten Sequenz- und Auswahloperatoren sind nicht auf zwei Operanden beschränkt; Sie können beliebig viele Content Models miteinander verknüpfen. Dies ist auch der Grund, warum der Und-Operator & nicht in XML übernommen worden ist: Während die Komplexität von Sequenzen und Auswahlen mit der Anzahl der kombinierten Content Models nicht wesentlich zunimmt, ergibt sich für jedes mit & hinzugefügte Element eine Vielzahl neuer Varianten, die von einem Validator überprüft werden müssen. So müssen für (A&B&C) sechs Möglichkeiten überprüft werden: ((A,B,C)|(B,A,C)|(B,C,A)|(C,B,A)|(C,A,B)|(A,C,B)) — für doppelt so viele mit & verbundene Bestandteile im Content Model (A&B&C&D&E&F) wächst die Zahl der Varianten bereits auf 720.

Zu beachten ist, daß das Ergebnis aller Infix-Operationen immer in Klammern eingeschlossen wird (grouping). Dadurch läßt es sich wiederum als Argument für andere Operationen verwenden, so daß sehr komplexe zusammengesetzte Content Models aus einzelnen Model Groups gebildet werden können.

Zur Bildung von Content Models in XML stehen neben Sequenz und Auswahl, noch weitere Operatoren zur Verfügung, mit denen sich die Häufigkeit des Auftretens von Elementen beschreiben läßt:

Die vorhandenen Häufigkeitsoperatoren “?”, “*” und “+” werden in Postfix-Notation — also direkt hinter dem jeweiligen Generic Identifier oder einer Model Group — angegeben und binden stärker als die bereits erläuterten Infix-Operatoren. Sie müssen daher nicht von Klammern eingeschlossen werden.

Ihr Auftreten bedeutet, daß das jeweilige Element höchstens einmal (?), beliebig oft (*) oder mindestens einmal (+) auftreten darf bzw. muß. Ist hinter einem Generic Identifier kein Postfix-Operator angegeben, so wird dadurch signalisiert, daß das Element an der Stelle genau einmal auftreten muß.

In einer (fiktiven) XHTML-DTD könnte als Elementtyp-Deklaration für body beispielsweise folgendes stehen:

      <!ELEMENT body (p+)>
    

Demnach müßte ein body-Element immer aus einem oder mehr Elementen des Typs p bestehen. Soll wahlweise eine Überschrift der obersten Gliederungsebene zu Beginn des Dokuments erlaubt werden, so könnte obige Regel folgendermaßen erweitert werden:

      <!ELEMENT body (h1?, p+)>
    

Ein Dokument, das diesem Modell entspricht, muß entweder mit einem p-Element beginnen oder mit h1 gefolgt von p. Folgen weitere Elemente, so müssen diese alle vom Typ p sein.

Durch zusammengesetzte Inhaltsbeschreibungen dieser Art lassen sich sehr komplexe Elementtyp-Deklarationen definieren. Allerdings sind in XML nicht alle diese Deklarationen erlaubt: Die Mächtigkeit der Sprachmittel stellt sehr hohe Anforderungen an die XML-Validierungswerkzeuge, so daß in manchen Fällen eine effiziente Überprüfung der Zugehörigkeit eines Dokuments zu einem vorgegebenen Dokumenttyp nicht möglich ist. Um dies zu verhindern, werden die erlaubten Elementtyp-Deklarationen in XML so eingeschränkt, daß die angedeuteten Problemfälle nicht auftreten können. Im Gegensatz zu den bisher gezeigten syntaktischen Konventionen lassen sich diese Einschränkungen jedoch nicht formal notieren, sondern können nur informell als zusätzliche Eigenschaften eines korrekten XML-Dokuments gefordert werden.

Der folgende Abschnitt gibt einen kurzen Einblick in die wichtigsten Zusatzbedingungen und erläutert die zugrundeliegenden Überlegungen. Zu beachten ist, daß lediglich die Sprachmittel eingeschränkt werden, nicht jedoch die Ausdrucksfähigkeit der Sprache — für alle Dokumentstrukturen lassen sich Beschreibungen finden, die gänzlich ohne problematische Konstrukte auskommen.

Kommentare (0)

Ihr Kommentar

Name