W DTD, atrybuty są deklarowane z deklaracją ATTLIST.
Deklarowanie atrybutów
Deklaracja atrybut ma następującą składnię:
<!ATTLIST element-name attribute-name attribute-type attribute-value>
DTD example:
<!ATTLIST payment type CDATA "check">
XML example:
<payment type="check" />
attribute-type może być jedną z następujących czynności:
Rodzaj | Opis |
---|---|
CDATA | Wartością jest dane znakowe |
( en1 | en2 |..) | Wartość musi być jedną z listy wyliczeniowej |
ID | Wartością jest unikatowy identyfikator |
IDREF | Wartością jest identyfikator innego elementu |
IDREFS | Wartością jest lista innych identyfikatorów |
NMTOKEN | Wartość ta jest poprawna nazwa XML |
NMTOKENS | Wartością jest lista poprawnych nazw XML |
ENTITY | Wartością jest podmiotem |
ENTITIES | Wartością jest lista podmiotów |
NOTATION | Wartością jest nazwa notacji |
xml: | Wartość ta jest z góry określona wartość xml |
attribute-value może być jedną z następujących czynności:
Wartość | Wyjaśnienie |
---|---|
value | Domyślna wartość atrybutu |
#REQUIRED | Wymagany jest atrybut |
#IMPLIED | Ten atrybut jest opcjonalny |
#FIXED value | Wartość atrybutu jest stała |
Wartość domyślna Atrybut
DTD:
<!ELEMENT square EMPTY>
<!ATTLIST square width CDATA "0">
Valid XML:
<square width="100" />
W powyższym przykładzie, "square" element jest zdefiniowany jako pusty element z "width" atrybutu typu CDATA. Jeśli nie jest określona szerokość, ma domyślną wartość 0.
#WYMAGANY
Składnia
<!ATTLIST element-name attribute-name attribute-type #REQUIRED>
Przykład
DTD:
<!ATTLIST person number CDATA #REQUIRED>
Valid XML:
<person number="5677" />
Invalid XML:
<person />
Użyj słowa kluczowego REQUIRED jeśli nie ma opcji do wartości domyślnej, ale nadal chcą zmusić atrybut być obecny.
#UKRYTY
Składnia
<!ATTLIST element-name attribute-name attribute-type #IMPLIED>
Przykład
DTD:
<!ATTLIST contact fax CDATA #IMPLIED>
Valid XML:
<contact fax="555-667788" />
Valid XML:
<contact />
Użyj słowa kluczowego #IMPLIED jeśli nie chcą zmusić autora zawierać atrybut, i nie ma opcji na wartość domyślną.
#NAPRAWIONY
Składnia
<!ATTLIST element-name attribute-name attribute-type #FIXED "value">
Przykład
DTD:
<!ATTLIST sender company CDATA #FIXED "Microsoft">
Valid XML:
<sender company="Microsoft" />
Invalid XML:
<sender company="w3ii" />
Użyj słowa kluczowego #FIXED kiedy chcesz atrybut mieć stałą wartość, nie pozwalając autorowi, aby go zmienić. Jeśli autor zawiera inną wartość, parser XML zwróci błąd.
Wyliczone wartości atrybutów
Składnia
<!ATTLIST element-name attribute-name (en1|en2|..) default-value>
Przykład
DTD:
<!ATTLIST payment type (check|cash) "cash">
XML example:
<payment type="check" />
or
<payment type="cash" />
Użyj wyliczonych wartości atrybutów, gdy chcemy wartość atrybutu być jednym z ustalonym zestawem wartości prawnych.