Vsaka XML oznaka lahko ima atribute, ki jo dodatno opišejo.
Podatke lahko v XML datoteko zapišemo kot atribute ali pa kot oznake:
| Datum je zapisan kot atribut | Datum je zapisan z oznako |
<pismo datum="01.10.2000">
...
</pismo>
|
<pismo>
<datum>01.10.2000</datum>
...
</pismo>
|
Razlika? Hm, pravzaprav razlike ni, čeprav se nagibajte k oznakam.
Smisel XML-a je ravno v oznakah in ne v atributih. Osebno vam priporočam atribute tedaj, ko le-ti ne prinesejo nove informacije uporabniku, temveč računalniku. Primer:
| Oznaka |
<slika>moja_slika.gif</slika>
|
Ta oznaka nam očitno določa neko sliko. Za nas je nepomembno, kako je ta slika zapisana, računalniku pa seveda ni vseeno, zato mu pomagajmo:
| Oznaka z atributom |
<slika tip="gif">moja_slika.gif</slika>
|
Sedaj pa lahko programska oprema s pomočjo atributa tip določi tip slike!
Želel pa bi vas opozoriti še na nekaj! Poglejte si gornji primer in mi povejte, kdaj je bilo napisano pismo - aha, prvi november 2000. Res? Američani bi rekli 10 januar 2000! Bodite pozorni na takšne stvari!
Pa bi znali poiskati rešitev?
| XML dokument z jasno določenim datumom (slovenskim bralcem) |
<pismo>
<datum>
<dan>1</dan>
<mesec>10</mesec>
<leto>2000</leto>
</datum>
...
</pismo>
|
Seveda Američanom ta rešitev tudi ne bi pomenila veliko, zato vam priporočam (poglejte si priporočila pri poimenovanju oznak) raje tole:
| XML dokument z jasno določenim datumom (vsem bralcem) |
<date>
<day>1</day>
<month>10</month>
<year>2000</year>
</date>
|
Seveda pa je med atributi in oznakami nekaj popolnoma shemantičnih razlik, ki jih morate upoštevati:
Atribut se lahko znotraj oznake pojavi samo enkrat.
Oznaka pa se lahko znotraj druge oznake pojavi večkrat
(spomnite se, da se je lahko oznaka <pismo> pojavila
večkrat znotraj oznake <pisma>!).
Sprememba atributov zahteva večje posege v programsko opremo že delujočih sistemov. Atributi ne strukturirajo podatkov, oznake pa jih (spomnite se relacij mati/hči in sestra/sestra).