ATTLIST-Deklaration


... [ Seminar XML (DTD) ] ... [ Einleitung ] ... [ Fallbeispiel ] ...

ATTLIST: Attribute zu Elementen


Grundsätzliches

Eine Attributlisten-Deklaration legt fest, welche Attribute für einen Elementtyp existieren, von welchem Typ die Attributwerte sind, und ggf. enthält sie einen Vorgabe-Wert (default).

Beispiele mit Erklärung

<!ATTLIST img
  src         CDATA      #REQUIRED
  alt         CDATA      #REQUIRED
  height      CDATA      #IMPLIED 
  width       CDATA      #IMPLIED 
  >
<!ATTLIST h1  
  id          ID         #IMPLIED
  align       (left|center|right|justify) left
  >
Die beiden notwendigen (#REQUIRED) Attribute src und alt erwarten beide eine Zeichenkette als Wert (CDATA). Gleiche Wertetypen sind für die Höhen- und Breitenangabe erlaubt, jedoch müssen diese Werte nicht explizit angegeben werden. Das Anwendungsprogramm (bei HTML in der Regel der Web-Browser) muß ggf. die impliziten Werte (#IMPLIED) verwenden. Bei Grafiken heißt das, der Browser muß die Ausmaße selbst ermitteln.

Für den HTML-Elementtyp h1 sind im Beispiel zwei weitere Attributtypen zu sehen: id dient dazu, eine eindeutige Identifikation an einem Element anzubringen. Auf so ein Element kann mit einem Attribut vom Typ idref verwiesen werden (im Beispiel nicht zu sehen, weil HTML Querverweise leider nicht in dieser Form zuläßt). Das zweite Attribut von h1, align, ist vom Typ Aufzählungstyp. Der Wertebereich dieses Typs ist vollständig in den Klammern enthalten. Andere Werte als die dort gezeigten sind nicht zugelassen. Die Vorgabe ist in diesem Fall der Wert left.

Die wesentlichen Attributtypen sind damit genannt. Es gibt weitere, die etwas komplizierter sind und seltener zum Einsatz kommen.

Wie man sowohl in den obigen Beispielen als auch in dem Diagramm erkennt, sind Definitionen von mehreren Attributen möglich (daher auch der Name »Attributliste«).

Erwähnenswert ist noch, daß Attribute mehrfach definiert werden dürfen. Ein XML-Prozessor kombiniert dann die Definitionen nach Regeln, die im Anhang beschrieben sind. Vorsicht ist an dieser Stelle geboten, wenn Ihre DTDs und/oder Instanzen auch von SGML-Systemen eingelesen werden sollen, die die WebSGML-Ergänzung nicht implementiert haben. In (Kern-)SGML ist die mehrfache Definition von Attributen nicht zulässig. Sie sollten darauf also so weit möglich verzichten, um die Austauschbarkeit von Daten mit solchen Systemen zu gewährleisten.


spezielle Attribute

zwei speziellere Attribute will ich Ihnen nich vorenthalten, obwohl diese in der Praxis weit weniger Verwendung finden als von den Entwicklern gedacht.

NMTOKEN

Nhemen wir an, eine Zeichenfolge (wie PCDATA beispielsweise) ist für die Eingaben/benutzung innerhalb der Seite ein wenig zu allgemein, so kann man NMTOKEN verwenden. Hier werden die erlaubten Zeichen auf Buchstaben, Ziffern und die Zeichen Punkt, Doppelpunkt, Bindestrich (Minus) und Unterstich beschränkt. Also weder Leerzeichen noch andere Symbole sind zulässig.

NMTOKENS

Da NMTOKEN nun wiederum arg eingeschränkt war, wurde im Zuge der Entwicklung der NMTOKENS Typ eingeführt, welcher die NMTOKEN-Definition um Whitespace, also Leerzeichen, Zeilenumbrüche, etc.. erweitert.


... [ Seminar XML (DTD) ] ... [ Einleitung ] ... [ Fallbeispiel ] ...