Elementele XML pot avea atribute, la fel ca HTML.
Atributele sunt proiectate să conțină date referitoare la un anumit element.
Atributele XML trebuie determinate
Valorile atributelor trebuie să fie întotdeauna citat. Fie între ghilimele simple sau duble pot fi utilizate.
Pentru sexul unei persoane, <person> element poate fi scris astfel:
<person gender="female">
sau ca aceasta:
<person gender='female'>
Dacă valoarea atributului în sine conține ghilimele duble puteți utiliza ghilimele simple, cum ar fi în acest exemplu:
<gangster name='George "Shotgun" Ziegler'>
sau puteți utiliza entități de caractere:
<gangster name="George "Shotgun" Ziegler">
Elementele XML vs. Atributele
Aruncati o privire la aceste exemple:
<person gender="female">
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
<person>
<gender>female</gender>
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
În primul exemplu de gen este un atribut. În ultima, de gen este un element. Ambele exemple furnizează aceleași informații.
Nu există reguli cu privire la momentul de a utiliza atributele sau când să utilizeze elemente în XML.
My Way preferat
Următoarele trei documente XML conțin exact aceleași informații:
Un atribut de date este utilizat în primul exemplu:
<note date="2008-01-10">
<to>Tove</to>
<from>Jani</from>
</note>
A <date> element este folosit în al doilea exemplu:
<note>
<date>2008-01-10</date>
<to>Tove</to>
<from>Jani</from>
</note>
O extinsă <date> element este utilizat în al treilea exemplu: (THIS IS MY FAVORITE) :
<note>
<date>
<year>2008</year>
<month>01</month>
<day>10</day>
</date>
<to>Tove</to>
<from>Jani</from>
</note>
Evitați Atributele XML?
Unele lucruri să ia în considerare atunci când se utilizează atribute sunt:
- atribute nu poate conține mai multe valori (elements can)
- atribute nu pot conține structuri de arbori (elements can)
- atribute nu sunt ușor extensibile (for future changes)
Nu ajunge ca acest lucru:
<note day="10" month="01" year="2008"
to="Tove" from="Jani" heading="Reminder"
body="Don't forget me this weekend!">
</note>
Atributele XML pentru metadate
Uneori, referințele de identificare sunt atribuite elemente. Aceste ID - uri pot fi folosite pentru a identifica elementele XML în același mod ca id atribut în HTML. Acest exemplu demonstrează acest lucru:
<messages>
<note id="501">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
<note id="502">
<to>Jani</to>
<from>Tove</from>
<heading>Re: Reminder</heading>
<body>I will not</body>
</note>
</messages>
id atributele de mai sus sunt pentru a identifica diferitele note. Nu este o parte a notei propriu-zise.
Ceea ce încerc să spun aici este că metadate (data about data) ar trebui să fie stocate ca atribute, iar datele în sine ar trebui să fie stocate ca elemente.