ATTLIST (Attributliste)
Mit der ATTLIST
-Anweisung kann jedes einzelne Attribut aufgelistet und deklariert werden, das zu einem Element gehören kann. Zuerst wird der Name der Elemente angegeben, auf die die Attributliste angewendet werden soll. Anschließend wird jedes Attribut nach Name aufgelistet und angegeben, ob dieses Attribut erforderlich ist. Außerdem wird angegeben, welche Zeichendaten als Wert enthalten sein dürfen.
Syntax
<!ATTLIST elementName attributeName dataType default >
Parameter
- elementName
Der Name des Elements, auf das die Attributliste angewendet wird.
- attributeName
Der Name eines Attributs. Dieser Parameter kann so oft wie erforderlich wiederholt werden, um alle bei Verwendung mitelementName
verfügbaren Attribute aufzulisten.
dataType
Der Datentyp des imattributeName
-Parameter genannten Attributs. Der Datentyp muss einem der folgenden Typen entsprechen:CDATA – Das Attribut enthält nur Zeichendaten.
ID – Der Wert des Attributs muss eindeutig sein. Er kann nicht in anderen Elementen oder Attributen wiederholt werden, die in diesem Dokument verwendet werden.
IDREF – Das Attribut verweist auf den Wert eines anderen Attributs im Dokument, das vom Typ ID ist.
ENTITY – Der Attributwert muss dem Namen einer externen und nicht verarbeiteten ENTITY entsprechen, die außerdem in derselben DTD deklariert ist.
ENTITIES – Der Attributwert enthält mehrere Namen von externen und nicht analysierten Entitäten, die in der DTD deklariert sind.
NMTOKEN – Der Attributwert muss ein Namenstoken sein. In Namenstoken sind Zeichendatenwerte zulässig, für diese gibt es jedoch mehr Einschränkungen als für CDATA. Ein Namenstoken kann Buchstaben, Zahlen, Interpunktionszeichen (z. B. Punkte, Bindestriche, Unterstriche und Doppelpunkte) enthalten. In einem Namenstokenwert kann jedoch kein Leerraumzeichen enthalten sein.
NMTOKENS – Der Attributwert enthält mehrere Namenstoken. Weitere Informationen erhalten Sie in der Beschreibung zu "NMTOKEN" und "Enumerated".
Enumerated – Die Attributwerte sind auf die Werte innerhalb einer Enumerationsliste beschränkt. Es erfolgt nur für die Werte eine gültige Analyse, die mit den aufgelisteten Werten übereinstimmen. Alle enumerierten Datentypen werden in Klammern eingeschlossen. Dabei werden die einzelnen Werte durch einen vertikalen Balken ("|") getrennt.
default
Der Standardwert für das Attribut, das inattributeName
genannt wird. In der folgenden Tabelle sind die möglichen Standardwerte beschrieben.Standards Beschreibung #REQUIRED
Das Attribut muss im XML-Dokument angezeigt werden, oder es wird ein Parserfehler erzeugt. Um einen Parserfehler in einigen Fällen zu vermeiden, können Sie optional das Feld
defaultValue
verwenden, das direkt auf dieses Schlüsselwort folgt.#IMPLIED
Das Attribut kann im XML-Dokument stehen. Wenn es ausgelassen wird, wird kein Parserfehler erzeugt. Optional können Sie in einigen Fällen auch das Feld
defaultValue
hinter diesem Schlüsselwort verwenden.#FIXED
Der Attributwert ist in der DTD festgelegt und kann im XML-Dokument nicht geändert oder überschrieben werden. Wenn dieses Schlüsselwort verwendet wird, muss das Feld
defaultValue
, das direkt auf dieses Schlüsselwort folgt, auch verwendet werden, um den festgelegten Attributwert zu deklarieren.defaultValue
Ein Standardwert oder ein festgelegter Wert. Der Parser fügt diesen Wert in das XML-Dokument ein, wenn dieses Attribut fehlt oder im XML-Dokument nicht verwendet wird. Alle Werte müssen in Anführungszeichen (einfache oder doppelte Anführungszeichen) eingeschlossen werden.
Hinweis: |
---|
Für jede in der DTD vorgenommene ATTLIST -Deklaration muss nur ein Vorkommen von elementName verwendet werden.Die Parameter attributeName , dataType und default definieren die einzelnen Attribute in der Liste und können so oft wie erforderlich wiederholt werden, um alle Attribute aufzulisten und zu definieren, die für die Verwendung mit elementName verfügbar sind.
|
Beispiel
In diesem Beispiel wird Folgendes für das <book>
-Element deklariert:
Ein optionales
publisher
-Attribut, in dem nur Zeichendaten enthalten sein können.Ein festes
reseller
-Attribut, dessen Wert auf"MyStore".
festgelegt istEin erforderliches
ISBN
-Attribut, in dem ein eindeutiger Identifizierungswert für jedes<book>
-Element im XML-Dokument enthalten sein muss.Ein erforderliches
InPrint
-Attribut, in dem entweder der Wert"yes"
oder"no"
enthalten sein muss. Als Standard wird der Wert"yes"
erzwungen, wenn der Wert nicht explizit im XML-Dokument festgelegt wurde.