XML-Know How

Attributdeklarationen in der DTD

In der DTD werden die Attribute für dieses Element

<abschnitt id="x1234" sprache="de" autor="Chr. Schmitt" aktenzeichen="AB-6-45 RS-56-87-9-III XY-45-65/II">

wie folgt deklariert:

<!ATTLIST abschnitt
                  id ID #REQUIRED
                  sprache (de|en|fr) "de"
                  autor CDATA #REQUIRED
                  aktenzeichen IDREFS #IMPLIED
>

Die Deklaration steht in spitzen Klammern. Nach dem Deklarationsaufruf !ATTLIST (Attributliste) folgt der Name des Elements, für das Attribute deklariert werden sollen. Im Beispiel ist dies das Element abschnitt.

Dann folgen jeweils die Attributnamen (id, sprache, autor, aktenzeichen), die Angabe des Typs (ID, CDATA, IDREFS) bzw. bei Enumerations-Attributen (Auswahl der Werte beim Attribut sprache) die Wertvorgaben in Klammern und durch »|« getrennt: (deutsch|englisch|französisch) sowie der Standardwert in Anführungszeichen: "deutsch". Mit der letzten Zeichenfolge #REQUIRED bzw. #IMPLIED wird für jedes Attribut angegeben, ob das Attribut erforderlich oder fakultativ ist. Bei Enumerations-Attributen kann entweder #REQUIRED bzw. #IMPLIED stehen oder aber der Standardwert wie in diesem Beispiel.

Die ATTLIST-Deklaration gilt für jedes Element separat. Will man für alle Elemente ein Attribut ID, muss man für jedes Element eine ATTLIST mit der Deklaration des ID-Attributes anlegen.

Dabei muss die ATTLIST eines Elementes nicht neben der ELEMENT-Deklaration stehen. Da sie ja den Element-Namen beinhaltet und so eindeutig einem Element zugeordnet werden kann, darf sie in der DTD an beliebiger Stelle stehen.