DTDs und XSDs verstehen – Teil 1

Attributlisten

Zu den Elementen können Attributlisten zugeordnet werden, die weitere Informationen zu den Elementen enthalten. Ein Beispiel:

<!ATTLIST databaseinfo
dbid %dbid; #IMPLIED
replicaid %replicaid; #IMPLIED
odsversion %integer; #IMPLIED
diskspace %integer; #IMPLIED
numberofdocuments %integer; #IMPLIED
percentused %float; #IMPLIED
>

Bei den Attributen werden neben dem Namen zwingend der Datentyp und optional eine Information dazu angegeben, ob der Wert erforderlich ist. Im Beispiel wird für die Datentypen mit einem Makro gearbeitet, das auf eine Definition in einem anderen Bereich der DTD verweist. Solche Makros werden relativ häufig in größeren DTDs eingesetzt, um die Übersichtlichkeit zu erhöhen. Darauf werden wir im Zusammenhang mit den Entities noch eingehen.

Der Text #IMPLIED gibt an, dass es sich um ein optionales Attribut handelt. Die Anwendung hat einen Standardwert dafür, der eingesetzt wird – in den meisten Fällen 0 oder eine leere Zeichenkette. Mit #REQUIRED wird festgelegt, dass ein Wert angegeben werden muss. Eine weitere Optionist #FIXED text, mit der ein Standardwert angegeben werden kann. Falls das Dokument einen Wert enthält, muss dieser mit diesem Standardwert übereinstimmen. Wenn nur ein Text ohne #FIXED angegeben wird, kann dieser Standardwert durch einen anderen Wert im Dokument überschrieben werden.