miercuri, 7 noiembrie 2007

XML

             Istorie XML – (eXtensible Markup Language) este un limbaj de adnotare/structurare a datelor. Istoria aparitiei sale porneste de la SGML (Standard Generalized Markup Language) aparut in anii 80. Acest limbaj isi propunea la aparitie sa creeze documente ce pot fi analizate de catre masini prin introducerea de marcaje (sau taguri). SGML nu a fost un succes deoarece era foarte complex si astfel crearea de programe care sa-l analizeze. In anii 90 la CERN a aparut HTML-ul (HyperText Markup Language). La baza acestui limbaj a fost SGML-ul si scopul sau a fost marcarea documentelor astfel incat sa poata fi transmise prin retea. Una din ideile acestui document este ca browserele trebuie sa ignore marcajele si atributele pe care nu le inteleg. Aceasta idee a avut ca efect din cate cred eu aparitia unui limbaj mai simplu care sa poata fi parsat rapid de catre browsere. Si astfel s-a dezvoltat HTML-ul.
             Succesul avut de Web a cauzat o dezvoltare rapida a browserelor care analizau marcajele HTML. Astfel au aparut o gama larga de marcaje si atribute care puteau fi scrise fara prea multe constrangeri. Browserele au trebuit sa tina cont de aceste constrangeri si au devenit foarte complexe. Pe de alta parte s-a sesizat utilizarea HTML-ului pentru adnotarea documentelor si o slabiciune de-a sa – faptul ca nu se pot adauga marcaje noi.
               In acest context in decembrie 1997 W3C (World Wide Web Consortium ) a lansat ca recomandare propusa versiunea 1.0 de XML. In acest document se afirma ca XML este un subset al SGML care pastreaza caracteristici cum ar fi posibilitatea crearii de marcaje, posibilitatea de validare, posibilitatea de a fi citit si inteles de catre oameni. Totodata se afirma ca XML este creat pentru a fi folosit pentru adnotari, schimb de date, publicare documente si prelucreare automata de catre clienti (agenti) inteligenti. Pastrand un subset al SGML impreuna cu un set de constrangeri documentele XML vor putea fi prelucrate foarte rapid de catre parsere neavand limitele date de complexitatea SGML.
             Cazuri de utilizare Am vazut pana acum ca XML-ul este un limbaj care permite structurarea si adnotarea datelor intr-un mod lizibil atat de catre oameni cat si de catre calculatoare. Avand aceste calitati putem oarecum deduce unde se poate folosi in mod practic si unde este mai putin recomandat.
             Poate cel mai evident caz de utilizare este cel al fisierelor de configurare. In momentul de fata foarte multe aplicatii isi pastreaza fisierele de configurare in XML. Motivele sunt cele enuntate mai sus – parsare rapida pentru calculatoare, usor de citit de catre oameni, structura logica a datelor.
             Un alt caz in care se foloseste XML si in care se pare ca va deveni un standard este cel al stocarii informatiilor din fisiere tip office. Daca in momentul de fata formatul fisierelor din cadrul Microsoft Office este necunoscut (desi se fac presiuni sa se dezvaluie), dezvoltatorii de solutii office open-source au standardizat un format numit Open Document. Acest format presupune salvarea oricarui document de tip office – document, foaie de calcul (spreadsheet), prezentare – intr-un format XML. Informatia este stocata in mai multe fisiere care sunt arhivate si astfel utilizatorul poate vedea numai un singur fisier de tip *.sxw sau *.odt, etc. De ce s-a alex XML pentru un astfel de format? Pentru ca ofera avantajele structurarii informatiei si mai ales pentru ca s-au dezvoltat deja foarte multe alte limbaje si standarde pe baza lui. Aceste limbaje (XHTML, SVG, XSL, SMIL, XLink, XForms, MathML, Dublin Core) sunt folosite si ele in acest format si deoarece toate au la baza XML interoperabilitatea este garantata. XML are si un dezavantaj care este dat de faptul ca introduce informatie redundanta (overhead). Informatia redundanta este reprezentata de numele marcajelor care se repeta in document. Aceasta problema a fost rezolvata de cei de la Open Office prin arhivarea fisierelor XML intr-o arhiva zip. Astfel s-a rezolvat problema spatiului suplimentar aparut prin introducerea unei mici pierderi in viteza.
             Concluzii XML-ul este un limbaj cu o sintaxa simpla si care permite doar structurarea datelor intr-o maniera proprie prin definirea propriilor taguri. Aceasta facilitate de structurare a datelor a permis folosirea sa pentru a dezvolta limbaje noi precum si pentru a fi folosit in noi standarde de stocare a datelor. Nu in ultimul rand XML-ul poate fi folosit pentru a schimba date intre aplicatiile care au nevoie de a comunica intr-un limbaj comun.
Chiar si in ciuda dezavantajelor pe care le are (overhead) calitatile XML mai sus mentionate ii permit sa fie folosit cu succes in multe domenii si sa fie piatra de temelie pentru si mai multe domenii.