free webpage counters
ETUSIVU materiaalit

6. XML:n rakenneosat


Seuraavaksi tarkastellaan XML:n rakennetta esimerkin avulla:


<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<!DOCTYPE dokumentti [
<!ENTITY copy "Tämän on tehnyt Jari Sarja">
]>
<dokumentti>
<henkilo>
<nimi>Jari Sarja</nimi>
<sposti>jari.sarja@sarja.fi</sposti>
<pituus yksikko="cm">179</pituus>
<suosikkitagi>&lt;P&gt;</suosikkitagi>
</henkilo>
<henkilo>
<nimi>Otto von Töttenberg</nimi>
<sposti>otto@hotentottimaili.fi</sposti>
<pituus yksikko="cm">170</pituus>
<suosikkitagi>&lt;B&gt;</suosikkitagi>
</henkilo>
<loppuun>&copy;</loppuun>
</dokumentti>
<!-- Tämä esimerkki on muunnos M.Erikssonin esimerkistä -->


Esittelyosa

XML-dokumentin ensimmäisellä rivillä täytyy määritellä XML-versio, jota käytetään. Tällä hetkellä on olemassa ainoastaan versio 1.0, mutta tulevaisuudessa W3C saattaa kehitellä uusia versioita.

<?xml version="1.0"?>


Tämä yllä oleva määrittely on yksinkertaisin ja kertoo siis käytettävän version. <? ja ?> määrittelevät, että kaikki se mitä on siinä välillä on n.k. processing instructions (PIs). Kyse on on ohjeista sille ohjelmalle, joka käsittelee dokumenttia. Versionumeron on oltava lainausmerkkien sisällä , version="1.0". Tällä hetkellä ainoa käytettävissä oleva XML-kielen versio on 1.0, jonka oletusmerkistö on Unicode.


<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>

Yllä olevaan määrittelyyn on lisätty kaksi attribuuttia, josta encoding kertoo XML-ohjelmalle mitä merkistöä (character set) dokumentissa käytetään. Mikäli kirjoitat suomeksi tai jollain muulla länsieurooppalaisella kielellä, on suositeltavaa käyttää merkistöä Latin-1 (ISO-8859-1).

Standalone kertoo sen, että onko dokumentti valmis sellaisenaan vai tuodaanko siihen vielä tietoja toisesta tiedostosta.

Kommentit

XML-dokumenttiin voi kirjoittaa kommentteja samalla tavalla kuin HTML-dokumenttiin, käytössä ovat tagit <!-- ja -->. Kommenttien tarkoitus on ainoastaan, että niihin sisällytetään tietoa. XML:ssä ei siis voi tehdä kuten HTML:ssä, että kyseisten koodien väliin sijoitetaan JavaScript tai VBScript koodia.

<!-- Tämä esimerkki on muunnos M.Erikssonin esimerkistä -->


Juurielementti

Kussakin XML-dokumentissa saa olla vain yksi juurielementti ja kaikkien muiden elementtien on oltava täysin sen sisällä.


<dokumentti>
<!-- Siinä juurielementti -->
</dokumentti>

Tässä esimerkissä juurielementin nimi oli siis "dokumentti".

Elementit

XML:ssä elementti koostuu normaalisti kolmesta asiasta: alkutunnisteesta, sisällöstä ja lopputunnisteesta.

<henkilo>
<nimi>Jari Sarja</nimi>
<sposti>jari.sarja@sarja.fi</sposti>
</henkilo>


Hyvin muodostetussa XML-dokumentissa elementit muodostavat hierarkian, jolloin jokaisella elementillä on vain yksi emoelementti. Tässä esimerkissä elementit nimi ja sposti ovat henkilö-elementin lapsia (children). Henkilö elementti on vanhempi (parent).

Huom!

XML tekee eron suurten ja pienten kirjaimien välillä. Et siis voi kirjoittaa näin:
<Nimi>Jari Sarja</nimi>
Lisäksi on huomioitava, että tagit eivät saa mennä päällekkäin.
Ei siis näin:
<nimi>Jari<osoite></nimi>Putkinotkontie 4</osoite>
vaan näin:
<nimi>Jari</nimi><osoite>Putkinotkontie 4</osoite>



Entiteetit

Entiteetit sisältävät yleensä tekstiä, mutta sisältö voi myös olla ääntä tai kuvaa. Entiteettien tarkoitus on helpottaa kirjoittamista. Tässä esimerkissä olin määritellyt entiteetin: copy, jonka liitin sitten loppuun komennolla &copy;.

<!DOCTYPE dokumentti [
<!ENTITY copy "Tämän on tehnyt Jari Sarja">
]>
<loppuun>&copy;</loppuun>

XML:ssä on joukko ennalta määriteltyjä entiteettejä:
& = &amp;
' = &apos;
> = &gt;
> = &lt;
" = &guot;

Nämä ovat merkkejä, jotka tulisi korvata. Muutoin se sekoittuvat merkkausmerkkeihin.
Ei siis näin paina <enter>
vaan paina &gt;enter&lt;


<suosikkitagi>&lt;P&gt;</suosikkitagi>

Attribuutit

Attribuutin tehtävänä on kertoa lisää tietoa elementistä. Attribuutit luetellaan aina elementin alkutunnisteessa. Attribuutit koostuvat nimestä ja sen arvosta. Arvo annetaan aina lainausmerkkien sisällä. Yhdellä elementillä voi olla useita arvoja.

<pituus yksikko="cm">179</pituus>


Tehtävä 6.

Kokeile sivun alussa olevaa esimerkkiä omalla koneellasi.
Perehdy merkkauksiin ja niiden merkityksiin.