Intr-un DTD, atributele sunt declarate cu o declarație ATTLIST.
Declararea Atribute
O declarație de atribut are următoarea sintaxă:
<!ATTLIST element-name attribute-name attribute-type attribute-value>
DTD example:
<!ATTLIST payment type CDATA "check">
XML example:
<payment type="check" />
attribute-type de attribute-type poate fi una dintre următoarele:
Tip | Descriere |
---|---|
CDATA | Valoarea este de date cu caracter |
( en1 | en2 |..) | Valoarea trebuie să fie una dintr-o listă recenzată |
ID | Valoarea este un ID unic |
IDREF | Valoarea este id-ul de un alt element |
IDREFS | Valoarea este o listă de alte ID-uri |
NMTOKEN | Valoarea este un nume valid XML |
NMTOKENS | Valoarea este o listă de nume XML valide |
ENTITY | Valoarea este o entitate |
ENTITIES | Valoarea este o listă a entităților |
NOTATION | Valoarea este un nume de notație |
xml: | Valoarea este o valoare predefinită XML |
attribute-value poate fi una dintre următoarele:
Valoare | Explicaţie |
---|---|
value | Valoarea implicită a atributului |
#REQUIRED | Este nevoie de acest atribut |
#IMPLIED | Atributul este opțională |
#FIXED value | Valoarea atributului este fix |
Un atribut Valoare implicită
DTD:
<!ELEMENT square EMPTY>
<!ATTLIST square width CDATA "0">
Valid XML:
<square width="100" />
In exemplul de mai sus, "square" elementul este definit ca fiind un element gol cu o "width" atribut de tip CDATA. Dacă nu este specificată nici o lățime, are o valoare prestabilită de 0.
#NECESAR
Sintaxă
<!ATTLIST element-name attribute-name attribute-type #REQUIRED>
Exemplu
DTD:
<!ATTLIST person number CDATA #REQUIRED>
Valid XML:
<person number="5677" />
Invalid XML:
<person />
Utilizați cuvântul cheie #REQUIRED, dacă nu aveți o opțiune pentru o valoare prestabilită, dar totuși doriți să forțeze atributul să fie prezent.
#IMPLIED
Sintaxă
<!ATTLIST element-name attribute-name attribute-type #IMPLIED>
Exemplu
DTD:
<!ATTLIST contact fax CDATA #IMPLIED>
Valid XML:
<contact fax="555-667788" />
Valid XML:
<contact />
Utilizați cuvântul cheie #IMPLIED, dacă nu doriți să forțați autorului pentru a include un atribut, și nu aveți o opțiune pentru o valoare prestabilită.
#FIX
Sintaxă
<!ATTLIST element-name attribute-name attribute-type #FIXED "value">
Exemplu
DTD:
<!ATTLIST sender company CDATA #FIXED "Microsoft">
Valid XML:
<sender company="Microsoft" />
Invalid XML:
<sender company="w3ii" />
Utilizați cuvântul cheie #FIXED atunci când doriți un atribut să aibă o valoare fixă, fără a permite autorului să-l schimbe. În cazul în care un autor include o altă valoare, parserul XML va returna o eroare.
Valorile atributelor recenzată
Sintaxă
<!ATTLIST element-name attribute-name (en1|en2|..) default-value>
Exemplu
DTD:
<!ATTLIST payment type (check|cash) "cash">
XML example:
<payment type="check" />
or
<payment type="cash" />
Utilizați valorile atributelor enumerate mai sus atunci când doriți ca valoarea atributului să fie una dintr-un set fix de valori juridice.