Attribute
Um Attribute bzw. Listen von Attributen und deren möglichen Werte zu deklarieren, wird der Ausdruck <!ATTLIST Elementname Attribute>
verwendet. Der Platzhalter Elementname
wird dabei durch den Namen des Elements ersetzt, d. h. Attribute bzw.
Attributlisten sind immer einem Element zugeordnet. Gibt es ein Attribut, welches in mehreren Elementen vorkommen kann, so
muss dieses auch mehrmals deklariert werden. Der Platzhalter Attribute
wird durch die Definition eines oder mehrerer
Attribute ersetzt. Verfügt ein Element über keine Attribute, so wird der ATTLIST
-Ausdruck weggelassen. Um ein
Attribut zu definieren, benötigen Sie drei Informationen: Attributname, Typ und Vorgabe. Für den Typ gibt es ein paar
unterschiedliche Werte. In der Praxis werden jedoch nur wenige davon eingesetzt: CDATA
(Wert enthält Zeicheninhalt),
ID
(Wert ist eine eindeutige ID), IDREF
(Wert ist die ID eines anderen Attributwerts), IDREFS
(Wert enthält IDs von anderen Attributwerten, getrennt durch Leerzeichen) und Aufzählungen. Aufzählungen werden in runden
Klammern angegeben und durch Senkrechtstriche |
getrennt. Der letzte Wert bei der Deklaration eines Attributs ist
die Vorgabe. Als Vorgabewerte stehen #REQUIRED
(Attribut ist erforderlich), #IMPLIED
(Attribut
ist optional), #FIXED "Festwert"
(Attribut hat einen fest definierten Wert) und "Standardwert"
(Attribut
hat einen Standardwert, welcher verwendet wird, wenn das Attribut weggelassen wird) zur Verfügung. Hierzu nun ein Beispiel:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <!DOCTYPE adressbuch [ <!ELEMENT adressbuch (kontakt)*> <!ELEMENT kontakt (name,telefon,email)> <!ATTLIST kontakt typ (privat|arbeit) "privat" geschlecht (m|w) #REQUIRED alter CDATA #IMPLIED > <!ELEMENT name (#PCDATA)> <!ELEMENT telefon (#PCDATA)> <!ELEMENT email (#PCDATA)> ]> <adressbuch> <kontakt typ="privat" geschlecht="m" alter="17"> <name>Max Mustermann</name> <telefon>01234 / 56789</telefon> <email>m.mustermann@example.com</email> </kontakt> <kontakt geschlecht="w" alter="24"> <name>Maria Musterfrau</name> <telefon>01235 / 46789</telefon> <email>m.musterfrau@example.com</email> </kontakt> <kontakt typ="arbeit" geschlecht="m"> <name>Peter Müller</name> <telefon>09876 / 54321</telefon> <email>mueller@example.com</email> </kontakt> </adressbuch>