Hitre šole na www.matjazev.net

Hitra šola XML




XML atributi

Vsaka XML oznaka lahko ima atribute, ki jo dodatno opišejo.


Atributi ali oznake?

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>
    

Vsebinske razlike med atributi in oznakami

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).


Hitro preverjanje znanja

  1. Napišite XML dokumet iz prejšnjega poglavja (oceno učenca) tako, da zapišete oceno kot atribut predmeta! ..... Odgovor
  2. Popravite XML dokument tako, da zapišete ocene iz matematike, fizike in biologije! ..... Odgovor
  3. Definirajte XML dokument tako, da lahko sprejme oceno iz poljubnega predmeta! ..... Odgovor






Kaj menite vi?