O declaratia a unei liste de atribute permite specificarea atributelor unui element XML. Sintaxa generala utilizata pentru declararea unui set de atribute este urmatoarea, unde tip_atribut indica tipul de date utilizat pentru valoarea unui atribut.
<!ATTLIST nume_element nume_atribut1 tip_atribut1 valoare_implicita1 ... >
La nivelul unei declaratii a unei liste de atribute pot fi utilizate urmatoarele valori posibile pentru componenta tip atribut.
Tip atribut | Semnificatie |
---|---|
CDATA | atributul poate accepta doar date caracter |
ENTITY | valoarea atributului este o referinta la o entitate declarata in DTD |
ENTITIES | valoarea atributului este o lista de referinte la entitati |
ID | valoarea atributului identifica in mod unic o locatie din document |
IDREF | valoarea atributului contine ID-ul unui alt element din document |
IDREFS | valoarea atributului contine o lista de ID-uri ale unor elemente din document, separate prin spatiu |
NMTOKEN | valoarea consta dintr-un singur cuvant sau sir de caractere fara nici un spatiu |
NMTOKENS | valoarea poate contine multiple valori NMTOKEN, separate prin spatiu |
NOTATION | unul sau mai multe denumiri de notatii declarate in DTD |
Enumeration | o lista de valori posibile din care doar una poate fi selectata (valorile sunt separate prin caracterul |) |
Valorile implicite de la nivelul declaratiei unei liste de atribute intr-o definitie a tipului de document sunt urmatoarele:
• “valoare”: valoare implicita stabilita prin declaratie, in DTD; autorul documentului XML poate suprascrie aceasta valoare;
• #REQUIRED: autorul documentului XML trebuie sa stabileasca o valoare pentru fiecare aparitie a atributului;
• #IMPLIED: autorul documentului XML nu trebuie sa stabileasca o valoare pentru atribut si nu este asigurata o valoare implicita; autorul poate stabili o valoare pentru atribut;
• #FIXED “valoare”: autorul documentului XML nu trebuie sa stabileasca o valoare pentru atribut, deoarece aceasta este asigurata prin declaratie, in DTD; atributul are tot timpul aceeasi valoare.
Urmatoarele documente introduc exemple de utilizare a tipurilor de atribut pentru declararea atributelor unor elemente.
<?xml version="1.0"?> | |
<!-- Tip atribut: ID, IDREF --> | |
<!-- Valoare implicita: #REQUIRED, #IMPLIED --> | |
<!DOCTYPE familie [ | |
<!ELEMENT familie (persoana*)> | |
<!ELEMENT persoana (#PCDATA)> | |
<!ATTLIST persoana id ID #REQUIRED> | |
<!ATTLIST persoana tata IDREF #IMPLIED> | |
<!ATTLIST persoana mama IDREF #IMPLIED> | |
<!ATTLIST persoana parinti IDREFS #IMPLIED> | |
]> | |
<familie> | |
<persoana id="p1">Vasile</persoana> | |
<persoana id="p2">Ana</persoana> | |
<persoana id="p3" tata="p1" mama="p2">Ioana</persoana> | |
<persoana id="p4" parinti="p1 p2">Cristian</persoana> | |
</familie> |