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><P></suosikkitagi> </henkilo> <henkilo> <nimi>Otto von Töttenberg</nimi> <sposti>otto@hotentottimaili.fi</sposti> <pituus yksikko="cm">170</pituus> <suosikkitagi><B></suosikkitagi> </henkilo> <loppuun>©</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.
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 ©.
<!DOCTYPE dokumentti [ <!ENTITY copy "Tämän on tehnyt Jari Sarja"> ]> <loppuun>©</loppuun>
|
XML:ssä on joukko ennalta määriteltyjä entiteettejä: & = & ' = ' > = > > = < " = &guot;
Nämä ovat merkkejä, jotka tulisi korvata. Muutoin se sekoittuvat merkkausmerkkeihin. Ei siis näin paina <enter> vaan paina >enter<
<suosikkitagi><P></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.
|