XML
Wikipedia
XML-kieli (lyhenne sanoista eXtensible Markup Language) on merkintäkieli, jolla tiedon merkitys on kuvattavissa tiedon sekaan. XML-kieltä käytetään sekä formaattina tiedonvälitykseen järjestelmien välillä että formaattina dokumenttien tallentamiseen. XML-kieli on rakenteellinen kuvauskieli, joka auttaa jäsentämään laajoja tietomassoja selkeämmin.
XML-dokumenttien käsittelyyn on tarjolla myös paljon erilaisia työkaluja. Nämä työkalut toimivat samalla tavalla riippumatta siitä kuvaako XML-dokumentti WWW-sivua tai muita tietoja.
XML muistuttaa HTML-kieltä, jolla WWW-sivut kirjoitetaan, ja ne kummatkin ovat SGML-kielen yksinkertaistettuja osajoukkoja. XML-kieli ei kuitenkaan ole tarkoitettu sivunkuvauskieleksi kuten HTML, vaan sillä kuvataan tiedon rakenne ilman ennalta määrättyjä koodeja. XML-kielellä voi muodostaa uusia koodeja, joiden avulla voidaan luoda dokumentteja hyvinkin erilaisiin ja erityisiin tarkoituksiin. XHTML on HTML-kielen versio, joka on siivottu puhtaaksi XML-kieleksi.
Sisällysluettelo |
[muokkaa] XML-dokumentin ulkoasu
XML-dokumentti on tekstiä; tavallisesti UTF-8-muotoista. Muitakin koodauksia voidaan käyttää (mm. aiemmin merkittävä ISO 8859-1).
XML-dokumentti koostuu elementeistä. elementti koostuu alkumerkistä ja loppumerkistä. Elementtejä voi olla rajattomasti sisäkkäin:
<elementti attribuutti="arvo"> ... </elementti>
Oikeellinen XML-dokumentti koostuu ylimmällä tasolla täsmälleen yhdestä elementistä.
Isot ja pienet kirjaimet katsotaan elementtien nimissä erillisiksi merkeiksi. Esimerkiksi <Esimerkki> ja </Esimerkki> muodostavat oikein muotoillun parin, kun taas <Esimerkki> ja </esimerkki> eivät näin tee.
[muokkaa] XML-dokumentin oikeellisuus
Jotta dokumenttia voidaan pitää hyvin muotoiltuna, sen täytyy täyttää vähintään seuraavat vaatimukset:
- Dokumentissa on tasan yksi juurielementti.
- Ei-tyhjillä elementeillä on sekä alku- että loppumerkki. Tyhjät elementit voidaan merkitä erikseen.
- Jokainen attribuutti on lainausmerkkien sisällä.
- Elementit voivat olla sisäkkäisiä, mutta ne eivät mene ristiin toisten elementtien kanssa.
[muokkaa] Määritellyn kielen kielioppisäännöt
XML usein määrittelee johonkin sovellukseen käytetyn tiedon rakenteen. Tätä rakennetta usein sanotaan kieleksi. Jos kieli on määritelty jollakin XML-kuvauskielellä, XML-dokumentin kielen mukaisuus voidaan tarkastaa automaattisella työkalulla.
XML-kuvauskieli määrittelee esimerkiksi elementit, niiden väliset suhteet ja arvojen arvoalueet.
Yksinkertaisin kuvauskieli on DTD (Document Type Definition). Esimerkkinä DTD-määrittelystä voimme määritellä luettelon henkilöistä:
<!ELEMENT luettelohenkiloista (henkilo*)> <!ELEMENT henkilo (nimi, syntymaaika?, sukupuoli?, sosiaaliturvatunnus?)> <!ELEMENT nimi (#PCDATA)> <!ELEMENT syntymaaika (#PCDATA)> <!ELEMENT sukupuoli (#PCDATA)> <!ELEMENT sosiaaliturvatunnus (#PCDATA)>
Monimutkaisempia ja uudempia määrittelykieliä ovat XML-skeema ja RELAX NG. Ne ovat itsessään XML-dokumentteja. Näiden avulla voidaan esimerkiksi asettaa rajoituksia numeroiden arvoalueille.
[muokkaa] Yleisiä XML-työkaluja
XML-kielet kuvaavat dokumentin loogista rakennetta, eivät niiden esittämistä. Niinpä samasta XML-dokumentista voidaankin luoda useita erilaisia esityksiä. Samasta varastotilanteen kuvaavasta XML-tiedosta voidaan tuottaa esimerkiksi sekä varastotilanteen kuvaavat WWW-sivut että tulostettavat rahtikirjat.
Yksi ratkaisu XML-sivujen muuntamiseen erilaisiin tuostusformaatteihin on HTML:n kanssa usein käytetty CSS. CSS ei kuitenkaan itse ole XML:n mukainen kieli. Siksi on ehkä tyylikkäämpää käyttää XML:n mukaista XSLT-muunnoskieltä.
XSLT-kielen kanssa määritellään XPath-osoitinkieli, jolla voidaan määritellä helposti osajoukkoja XML-dokumentista.
FO-sivunkuvauskieli on yleinen XML-formaatti, johon dokumentteja voidaan muuntaa helpompaa tulostamista varten. Se siis vastaa jossain määrin HTML-dokumentin ulkoasuominaisuuksia.
[muokkaa] XML:n käytön tuomia etuja
XML-dokumenttien käytöllä tavoitellaan mm.
- sisältöjen yhdenmukaisempaa tallennusmuotoa
- sisältövirheiden välttämistä
- tiedon hakemisen helpottamista
- sisällön monikäyttöisyyden ja monikanavajulkaisemisen parantamista
- käsittelyvaiheiden automatisointia
- riippumattomuutta tietystä ohjelmistotoimittajasta
- tiedon pitkäaikaissäilyvyyden parantamista
- integraatioiden helpottamista