XML: eXtensible Markup Language


  • Despre XML

        XML a fost creat pentru a defini strcturi de date, in ideea stocarii si transmiterii acestora. XML este un limbaj de descriere asemanator cu HTML. In cazul XML-ului, tagurile nu sunt predefinite, acestea fiind definite de utilizator. XML este un limbaj autodescriptiv fiind totodata o recomandare W3C Vezi W3C"
        Spre deosebire de HTML care ofera facilitati pentru afisare date, XML nu este destinat afisarii datelor, acesta fiind utilizat in special pentru stocarea si transmiterea datelor.

  • Exemple de XML

        Vom defini acum utilizand XML un instrument virtual. Pentru a defini un instrument virtual avem nevoie de o serie de parametri cum ar fi tip aparat, domeniu de masura, dimensiune, culoare, valori maxime, minime, unitate de masura, texte de inscriptionare etc.

        Exemplu XML


        Dupa cum se vede au fost definite o serie de tag-uri de catre utilizator. Se observa de asemenea imbricarea unor tag-uri in alte tag-uri. Astfel in interiorul tag-ului "Vimeter" au fost definite alte tag-uri care reprezinta atributele instrumentului virtual. Dupa cum se observa, utilizatorul poate sa-si defineasca propriile tag-uri.
        XML este extrem de util pentru transferul de date intre diverse aplicatii. Odata definit instrumentul virtual prin intermediul structurii XML, se pot transmite date spre alte aplicatii.

        Sa presupunem ca se trnsmite urmatorul XML:


        Pe baza datelor continute de xml, alta aplicatie ar putea realiza urmatorul instrument virtual:



        In cazul in care se doreste realizarea unei aplicatii dinamice intr-o pagina web in care sa se afiseze in mod dinamic un astfel de instrument virtual, este absolut necesar sa se separe codul HTML de date, datele fiind pastrate deci in structuri XML. Alta modalitate ar fi utilizarea bazelor de date pentru pastrarea datelor insa, pentru fiecare tip de baza de date exista modalitati si protocoale diferite pentru accesul la date, in schimb XML asigura un mod standard de acces la date.

  • Structura arborescenta XML

        Dupa cum s-a abservat din exemplele anterioare XML-ul are o structura arborescenta. In prima linie, se defineste versiunea si modul de codificare iar in linia a doua se descrie elementul "radacina" (in cazul de sus "vimeter"). Urmatoarele linii, descriu elementele "copil" sau "ramuri" (caption, cod, mood, aspect, etc.). Fiecare element poate avea "copii" (subelemente).

        Am putea redefini structura "vimeter" astfel:


        Se observa ca in noua structura XML, parametrii vimeter-ului au fost grupati in mai multe categorii (tip ,atribute,valori) Practic structura unui XML are forma:



        Utilizand structura ierarhica, putem descrie o instrumentatie virtula compusa din mai multe instrumente virtuale astfel:



  • Descriere corecta XML

        Pentru ca o structura XML sa fie corecta trebuie sa indeplineasca urmatoarele cerinte:

  • Afisare XML intr-o pagina html

        O structura XML nu este afisata ca atare intr-o pagina html. Sa presupunem ca avem structura de tip XML:



        Structura de sus, inclusa intr-o pagina hthl va fi afisata astfel:

    Manometer Bar-276 analog bar markmax="1" white magenta 288 316 vertical bar 27.5 0 50

  • Afisare XML intr-o pagina html utilizand CSS

        Dupa cum se vede in exemplul de sus, afisarea datelor dintr-un XML intr-o pagina HTML nu este prea aspectuoasa.
        Se poate utiliza CSS pentru a imbunatati modul de afisare al datelor provenite dintr-un XML.
        Vom defini un fisier CSS "vimeter_vo.css" cu urmatorul continut:



        Vom defini urmatorul XML:



        In acest caz, afisarea intr-o pagina web, are forma:



        Daca XML-ul este definit pe mai multe nivele descrierea CSS trebiuie sa se refere la acestea astfel se va realiza fisierul CSS "vimeter_v1.css" cu urmatorul continut:



        Urmatorul XML cu continutul:



        In acest caz, afisarea intr-o pagina web, are forma:



  • Afisare XML utilizand Java Script

        O structura XML poate fi utilizata si afisata utilizand Java Script. Java Script fiind un mediu de rogramare, dispune de o serie de metode prin care sa identifice datele continute de structura XML, deci afisarea nu se rezuma numai la afisarea XML-ului ci se pot crea diverse aplicatii in care sa se utilizeze datele continute de XML. Dupa cum se stie toate browser-ele de Internet interpreteaza in mod nativ codul JavaScript. Exista totusi diferente intre diverse browsere. Astfel majoritatea browser-elor in afara de Internet Explorer recunosc obiectul XMLHttpRequest() . Internet Explorer-ul recunoaste obiectul ActiveXObject("Microsoft.XMLHTTP") . Ambele obiecte dispun de metoda: responseXML

        Urmatoarea aplicatie realizata in html si JavaScript citeste si interpreteaza un XML indiferent de browser.


        Dupa cum se observa, in pagina principala , s-au definit trei span-uri cu id-urile:"caption","mod" si "valoare". Dupa cum se stie tag-ul span ofera posibilitatea de a defini un "carlig" in cadrul unui text sau a unui document, "carlig" spre care putem face ulterior referiri utilizand nume de id atribuit. Acestor span-uri li se atribuie prin metoda innerHTML valori citite dintr-un XML. XML-ul se precizaza prin metoda open care are unul din parametri chiar numele XML-ului. Prin metoda send se trimite efectiv cerere, iar prin metoda responseXML se face citirea. Dupa cum se observa in aplicatie, raspunsul este atribuit variabilei xmlDoc . Prin metoda: getElementsByTagName.childNodes.nodeValue , se pot extrage datele din raspunsul primit.



        Structura fisierului "vimeter_v0.xml" fiind:



        Citirea se face la fel daca utilizam o alta structura a fisierului si anume fisierul "vimeter_v1.xml":



        Avand un XML care contine mai multe instrumente virtuale : "vimeter_v2.xml":



        Aplicatia care citeste datele referitoare la frecventmetru de exemplu este:


        Pentru a afisa caracteristicile tuturor instrumentelor virtuale, vom folosi aplicatia:


        Am folosit deci o iteratie pentru a citi toate elementele. Avand n elemente descrise in XML, iteratia se reia de n ori.
        Dupa lansarea paginii cu sursa de mai sus, obtinem:


        Am putea imbunatatii applicatia si sa afisam pe rand instrumentele descrise in XML. In aceasta situatie sursa paginii devine:


        Dupa lansarea paginii cu sursa de mai sus, obtinem: