Referaat XML keelest
Sissejuhatus
SGML — ISO 8879; Information processing. Text and office systems. Standard Generalized Markup Language .
SGML on välja töötatud juba 60ndatel aastatel teksti redigeerimiseks, vormindamiseks ja ühiskasutuseks eri süsteemide vahel. SGML standardiseeriti 1986 aastal (ISO8879).
Ta on sisuliselt metametakeel, mille terminites saab defineerida teisi andmete sisu, struktuuri ja esituse keeli. Kuna SGML on üsna mahukas, siis otsustati 90ndate alguses SGMLlt lüüa maha saba (keerukad konstruktsioonid) ja defineerida lihtne rahvavariant. Nii tekkis HTML. HTML vallutas maailma: tekkis ülemaailmne WWW-võrk. Nüüd on infotehnoloogiamaailmale see saba (HTML) ette söödetud ja ta on selle üsna hästi omandanud. On tekkinud HTMLiseerijate armee ja on loodud www-kirjastamise infrastruktuuri alged. Nüüd oli õige aeg teha uus SGMLi lõige ja 10. veebruaril 1998 see tehtigi — W3C Konsortsium avaldas dokumendi "Extensible Markup Language (XML) 1.0"
XML ja SGML
XML (Extensible Markup Language) on laiendatav märgistuskeel, mis on SGML-i(Standard Generalized Markup Language) alamhulgaks nagu HTML-gi.
[1]. XML on juba tunduvalt kopsakam tükk SGMLst.
XMLi on aktsepteerinud ja asunud aktiivselt välja töötama seda formaati toetavat tarkvara enamik Interneti võtmetegijaid: Adobe, Hewlett-Packard, IBM, Microsoft, Netscape Communications, Sun Microsystems ning struktuursete dokumentide ja elektroonse kirjastamise eksperdid üle kogu maailma. XML viib lõpuni informatsiooni/andmete sõltumatuse välisteguritest. SGML Xml kõrvalt ei kao, sest tal on mitmeid eeliseid:
XMLi eesmärgiks on võimaldada üldistatud SGML teksti serveerida, vastu võtta ja töödelda veebis samal moel nagu see on võimalik praegu HTML tekstidega. XML on projekteeritud lihtsustamaks SGML kasutamist ja tagamaks SGML ja HTML risttöödeldavust. Oluline erinevus on veel selles, et XML-is on lubatud kasutada Unicode ja ISO/IEC 10646 märgistikku (nii tekstis kui märgistuses) see tähendab muu hulgas ka seda, et on võimalik defineerida mitmekeelseid WWW-lehekülgi.
XML dokumentide lugemiseks ja juurdepääsu tagamiseks dokumentide sisule ning struktuurile kasutatakse tarkvara moodulit mida nimetatakse XML-protsessoriks.
XML on mõeldud andmete kirjeldamiseks. Selleks kasutab ta DTD (Document Type Definition) abi. Pole päris sama asi mis HTML, kuna HTML tegeleb rohkem sellega kuidas andmeid formaatida ja kujutada.
XML-i tagid (märgised) ei ole eeldefineeritud nagu HTML-is see tähendab seda, et XML-i kirjutaja peab need ise välja mõtlema. Xml dokument näeb lihtne välja.
Vaatame kolme tüüpi dokumente: formateerimata, formaateerituid ja struktuurseid. Nende eristamiseks vaatame, kuidas neis esitatakse lühike aadressinfo.
Formateerimata tekst kujul:
Haapsalu Kolledţ
Staadioni 13
Haapsalu
EE90503
on tavaliselt kõigile lugemisel selge, kuid raskusi tekib tema interpreteerimisel andmebaasina. Ei ole selge, kus lõpevad väljad, otsingul pole võimalik näidata dokumendi komponente. Esitus allub raskustega infotöötlusele.
Formateeritud tekst võib väliselt sarnaneda ülaltooduga, kuid tavaliselt on temasse arvutikujul peidetud palju metainfot, mis teevad selle kasutamise infotöötluseks praktiliselt kõlbmatuks. Näiteks kuulus MS Word kulutas ülaltoodud info säilitamiseks oma formaadis 19456 baiti. Sellist "dokumenti" oskavad kasutada ainult MS produktid. MS Word lubab tõsi küll salvestada info ratsinaalsemates formaatides, nagu RTF ja HTML. RTF formaadis on see dokumendike küll 10 korda lühem - 2109 baiti, väljundtekst on vaadeldav ka mõtestatud märkidena, kuid vaevalt on
Struktuursed formaadid on tavaliselt ökonoomsemad, info on vahetult kasutatav järgnevaks infotöötluseks, tekstilõikudel on eristatav semantiline tähendus. Nii võiks meie aadressinfo XML formaadis näha välja umbes nii:
<aadress>
<asutus>Haapsalu kolledz</asutus>
<tn>Staadioni 13<tn>
<linn>Haapsalu</linn>
<kood>EE90503</kood>
</aadress>
Ainult 128 baiti, 155 korda ökonoomsem Wordist, kuid semantiliselt võrdlematult tugevam! Ja seda teksti saad kasutada vahetult lihtsalt mistahes arvutis ja ta on tunnetatav isegi silmaga, rääkimata programmidest.
XML dokumendi struktuur on selgelt hoomatav. Ta sisaldab tekstilõike algusmärgise ja lõppmärgise vahel. Märgendid moodustavad hierarhilise struktuuri. Kaasaegsetes arvutisüsteemides püütakse üha enam säilitada “virtuaalseid” dokumente. Infovahetusel monteeritakse neist tarbijale vajalik komplekt ja transformeeritakse see “reaalseks”. XML on ideaalne riist virtuaaalsete dokumentide ideoloogia realiseerimiseks. XML tagab potentsiaalselt tunduvalt soliidsemad vormindamismehhanismid. Lisaks võib ära tuua xml dokumendi tüübideklaratsiooninäite:
XML-dokumendid võivad ja peavad algama XML-deklaratsiooniga, mis spetsifitseerib kasutatava XMLi versiooni.
<?xml version="1.0"?>
<greeting>Hello, world!</greeting>
Versiooni numbrit "1.0" peab kasutama viitamaks kooskõlale selle spetsifikatsiooni selle versiooniga; kui dokument ei ole kooskõlas spetsifikatsiooni selle versiooniga, on väärtuse "1.0" kasutamine viga. XML-töögrupi tahe on anda selle spetsifikatsiooni hilisematele versioonidele väärtusest "1.0" erinevaid numbreid, kuid see tahe ei viita kohustusele töötada välja mõni XMLi versioon tulevikus, aga ometi, kui mingi versioon töötatakse välja, siis kasutatakse sama nummerdusskeemi. Kuni tulevikuversioonid pole välistatud, on see konstruktsioon ette nähtud vahendina lubamaks vajaduse tekkimisel automaatset versioonituvastust. Protsessorid võivad anda veasignaali, kui nad saavad dokumendi, mis on märgistatud versiooninumbriga, mida nad ei toeta.
Xml dokumendi füüsiline struktuur
XML dokument võib sisaldada ühte või mitut säilituskirjet. Neid kutsutakse
üksusteks; neil kõigil on sisu ja nad kõik on (välja arvatud dokumendiüksus
ja väline DTD identifitseeritud nimega. Igal XML-dokumendil on üks üksus, mida
kutsutakse dokumendiüksuseks , mis on XML-protsessori jaoks stardipunktiks ja
mis võib sisaldada kogu dokumendi.
Üksused võivad olla kas parsitud või parsimata.Parsitud üksuste sisule viidatakse nagu tema asendustekstile replacement text); seda teksti (text) käsitletakse dokumendi lahutamatu osana.
Parsimata üksus on ressurss, mille sisuks võib ja võib ka mitte olla, tekst ja kui ta on tekst, siis ta võib olla mitte XML-tekst. Igal parsimata üksusel on temaga assotsieeruv notatsioon , mis on identifitseeritav nimega. XML ei kitsenda parsimata üksuste sisu, välja arvatud nõue, et XML-protsessor teeb üksuste identifikaatorid ja notatsiooni kättesaadavaks rakendusele.
Parsitud üksused kutsutakse välja kasutades üksuseviita; parsimata üksused atribuutide ENTITY või ENTITIES väärtustes esitatud nimede järgi.
Üldüksused on dokumendi sisus kasutatavad üksused. Selles spetsifikatsioonis on üldüksustele mõnikord viidatud kvalifitseerimata terminiga üksus (entity), seda juhul kui see ei tekita kahemõttelisust. Parameeterüksused on parsitud üksused kasutamiseks DTDs. Need kaks üksuse tüüpi kasutavad erinevas vormis viitamist ja tuvastatakse erinevates kontekstides. Liiatigi haaravad nad erinevad nimeruumid; sama nimega parameeterüksus ja üldüksus on kaks eri üksust.
Xml protsessorite kasutamine
Valideerivate XML-protsessorite käitumine väga täpselt ette määratav; ta peab lugema iga dokumendi osakese ja raporteerima kõigist trimmisuse ja kehtivuse rikkumistest. Mittevalideerivalt protsessorilt nõutakse vähem; tal pole vaja lugeda dokumentüksusest erinevaid dokumendiosasid. XML-protsessori kasutajate jaoks võivad olla olulised kaks efekti:
Erinevate XML-protsessorite vahel risttöötlemise usaldatavuse maksimeerimiseks ei tohiks mittevalideerivaid protsessoreid kasutavad rakendused usaldada selliste protsessorite mistahes mittenõutavat käitumist Rakendused, mis nõuavad selliseid omadusi nagu atribuutide vaikeväärtuste kasutamine või välistes üksustes deklareeritud sisemiste üksuste kasutamine, peaksid kasutama valideerivaid XML-protsessoreid.
Lühendatud Xml –i näide.
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<?xml:stylesheet type="text/xsl" href="mydoc.xsl"?>
<!-- generated by Majix from G:\public_html\XML\elallkiri.rtf on Thu May 11 10:18:49 GMT+03:00 2000 using template MyDoc-->
<!DOCTYPE mydoc PUBLIC "-//TetraSix//DTD mydoc v1.1//EN" "mydoc.dtd" [ <!ENTITY tab ' '> ]>
<mydoc>
<info>
<title>Elektroonilised allkirjad</title>
<author>Ahto Buldas</author>
<operator>Uuno Puus</operator>
<company>Eesti Vabariik</company>
</info> <h1><ht>Elektroonilised allkirjad</ht></h1>
<p></p>
<p>Elektroonilise infovahetuse teket võib võrrelda kirja kui sellise tekkimisega igiammustel aegadel. Kiri nii nagu ka elektrooniline info loodi efektiivsemaks kommunikeerumiseks.
</p>
<p></p>
<list style='bullet'> <item><p>kergesti kopeeritavad, nii et koopiat on võimatu eristada originaalist,</p> </item> </list>
<p></p>
<list style='bullet'> <item><p>kergesti ja jälgi jätmata modifitseeritavad, sest elektrondokument dokument ei moodusta füüsilist tervikut - tema osad on seotud üksnes loogilisel viisil. </p> </item> </list>
<p>
volitamine on <c color='red'>isikupõhine,</c> elektrooniline volitamine aga <c color='red'>võtmepõhine</c>.
</p>
<p>Ahto Buldas</p>
<p>Küberneetika AS teadur</p>
<p> </p>
</mydoc>
Lõpetuseks
SGML/XML tehnoloogia hoovõtuaeg on läbi. Kõik tehnilsed eeldused üleminekuks paberdokumendilt digitaaldokumendile on olemas või lõppstaadiumis (riistad, võrgud, protokollid, formaadid). Kuni siiani puudusid kokkulepped rakendustaseme infovahetuse formaatides. Nüüdseks on võtmetegijad oma otsuse teinud ja uue aastatuhande künnisel kukub viimane tilk ja maailm on üleminekuks digitaalsele asjaajamisele valmis. Sellel protsessil pole tagasiteed. Kui keskajal asendati pärast trükikunsti leiutamist ümberkirjutajate infrastuktuur trükikodadega 50 aastaga, siis nüüd toimub analoogne protsess (luuakse digitaalset asjaajamist toetavad õigusaktid, tekib valmisolek väljatöötavates firmades, kasutajafirmades, ärimaailmas, riigisektororis, mittetulundusühingutes, …) 5-10 aastaga. See tähendab, et me ilmselt näeme seda ajastut, rohkemgi veel, me peame selle ajastu looma.
Kirjandus: