Extensible Markup Language
Extensible Markup Language XML este un limbaj care permite definirea unor documente intr-un mod structurat. Alte modalitati de definire a limbajului XML stabilesc faptul ca acesta este un meta-limbaj utilizat in activitatea de marcare structurala a documentelor sau o structura ierarhica de date stocata in fisiere text, care utilizeaza un limbaj de marcare.
Acestea sunt doar cateva definitii ale limbajului XML care pot fi gasite la o simpla cautare pe Web. Ca si punct de plecare in studierea acestui limbaj prezinta interes definitia propusa de grupul de lucru XML Working Group al W3C in specificatiile oficiale ale versiunii XML 1.0.
Extensible Markup Language este un subset al limbajului SGML. Scopul lui este acela de a permite utilizarea SGML pe web in maniera in care este utilizat in momentul de fata HTML. XML a fost proiectat pentru a facilita implementarea si pentru a asigura interoperabilitatea, atat cu SGML, cat si cu HTML.
XML este un standard utilizat pentru definirea de formate cu privire la resursele electronice, care a aparut ca si recomandare a Consortiului W3C (World Wide Web Consortium) in anul 1998. Acest standard pentru structurarea informatiei are la baza o alta recomandare W3C, si anume SGML (Standard Generalized Markup Language), de la care a preluat o serie de caracteristici definitorii, precum:
• caracterul descriptiv: prin intermediul unor marcaje speciale (descriptive) sunt reprezentate parti ale documentelor;
• independenta datelor: descrierea datelor si a metadatelor intr-o maniera simpla si eficienta, independenta de platforma;
• tipul de document: utilizarea unui set de reguli care defineste structura unui document.
Limbajul XML propune o intreagă lista de avantaje, dintre care pot fi amintite următoarele:
• auto-descriptiv: descrie atat continutul (datele), cat si structura unui document;
• meta-limbaj: permite definirea de noi limbaje;
• extensibil: permite atat utilizarea propriilor marcaje, cat si utilizarea unor marcaje care au fost deja definite;
• facilitati pentru utilizare internationala: ofera suport pentru UNICODE si independenta de codificare si limbaj;
• portabil: permite utilizarea datelor indiferent de platforma hardware sau de sistemul de operare, motiv pentru care este una din cele mai populare tehnologii pentru schimbul de date.
Pentru acest standard, XML Working Group a stabilit urmatoarele deziderate:
• XML trebuie sa fie simplu de utilizat pe Internet;
• XML trebuie sa suporte o mare verietate de aplicatii;
• XML trebuie sa fie compatibil cu SGML;
• programele care proceseaza documente XML trebuie sa fie usor de scris;
• numarul facilitatiilor optionale din XML sunt reduse la minimum, ideal, la zero;
• utilizatorii trebuie sa citeasca usor documentele XML;
• proiectarea XML trebuie sa se desfasoare rapid;
• modelul XML trebuie sa fie formal si concis;
• documentele XML trebuie sa fie usor de creat;
• caracterul concis in marcajele XML prezinta importanta minima.
XML joaca un rol important si in transferul de date pe Web sau intre diverse alte medii. Schimbul de date in format electronic pe Web reprezinta unul din principalele domenii de aplicabilitate ale standardului XML.
O aplicatie XML reprezinta un limbaj derivat din standardul XML. Termenul de aplicatie, in acest caz, este sinonim cu termeni precum: standard, vocabular, subset, extensie, instanta, limbaj derivat sau protocol. Popularitatea limbajului XML rezida si din numarul mare de aplicatii dezvoltate de-a lungul existentei sale. Astfel de aplicatii sunt dezvoltate in mod constant de organizatii, pentru cele mai diverse domenii: structurare documente, stocare rapoarte, grafica vectoriala, schimb de informatii, descriere structuri moleculare, tranzactii comerciale.
O aplicatie XML este descrisa prin crearea unei definitii a tipului de document (DTD – Document Type Definition) sau prin atasarea unei scheme XML, acestea fiind componenete optionale ale documentelor XML. Astfel de componente (DTD, XML Schema) definesc elementele care pot fi utilizate intr-un document, ordinea in care aceste elemente sunt introduse, atributele corespunzatoare elementelor, dar si alte caracteristici ale documentului. Daca un document XML detine componente de tip DTD sau XML Schema, spunem ca acel document este autodescriptiv.
Standardul XML a fost dezvoltat pentru a permite descrierea, stocarea si transferul datelor. Acest lucru este posibil prin intermediul documentelor XML. Avand in vedere faptul ca un document XML este scris intr-un fisier text, crearea lui poate fi realizata folosind de la cele mai simple editoare de text, precum Notepad, SimpleText, TextEdit, Gedit, Emacs, vi sau EditPlus, pana la editoare XML specializate, precum Altova XMLSpy sau oXygen.
Documente XML
Pentru a ilusta modul in care limbajul XML permite structurarea informatiei poate fi definit un document XML pentru gestionarea studentilor unui curs.
<?xml version="1.0" encoding="UTF-8"?> | |
<!-- Studenti inscrisi la cursul Sisteme de Baze de Date --> | |
<lista_studenti> | |
<student> | |
<nume>Virgil Popescu</nume> | |
<email>virgil.popescu@virtualcampus.ro</email> | |
<grupa>1.1</grupa> | |
<medie>9.5</medie> | |
</student> | |
<student> | |
<nume>Catalin Calinovici</nume> | |
<email>catalin.calinovici@virtualcampus.ro</email> | |
<grupa>1.1</grupa> | |
<medie>7.2</medie> | |
</student> | |
<student> | |
<nume>Oana Demeter</nume> | |
<email>oana.demeter@virtualcampus.ro</email> | |
<grupa>1.2</grupa> | |
<medie>8.4</medie> | |
</student> | |
<student> | |
<nume>Irina Almajan</nume> | |
<email>irina.almajan@virtualcampus.ro</email> | |
<grupa>1.2</grupa> | |
<medie>9.1</medie> | |
</student> | |
</lista_studenti> |
Un document XML reprezinta o structura ierarhica (arbore) caracterizata prin constituenti de tip radacina, nod si frunza. Orice parte a arborelui care contine elemente de tip copil se numeste ramura. Orice parte a arborelui care nu contine elemente de tip copil se numeste frunza.
Intr-o structura ierarhica constituentii au urmatoarele semnificatii:
• radacina: orice ierarhie are un singur element radacina (root), care caracterizeaza intreaga ierarhie;
• noduri element: grupuri logice definite prin intermediul unui nume;
• noduri atribut: sunt asociate nodurilor element; detin un nume si o valoare;
• noduri text: stocheaza continut (date);
• noduri comentariu: metainformatii; sunt ignorate la procesare;
• instructiuni de procesare: instructiuni specifice unor procesoare.
Documentele XML sunt create cu ajutorul unui editor, sunt citite (procesate) prin intermediul unui procesor XML (parser XML) si sunt afisate folosind un browser.
Editoare care pot fi utilizate pentru crearea documentelor XML au fost amintite mai inainte. In general, un procesor XML citeste documentul si verifica daca acesta este bine format, dar poate verifica si validitatea documentului. Daca raspunsul la aceste teste este afirmativ, procesorul converteste documentul XML la un arbore de elemente. Arborele poate fi vizualizat prin intermediul unui browser, precum Google Chrome sau Mozilla Firefox. Majoritatea clientilor Web au integrate procesore XML.
Procesoarele XML sunt destul de raspandite (Xerces, XML4J, eXpat, MSXML, XP, Libxml2, SimpleXML, JDOM, Crimson, VTD-XML, XOM, Woodstox) si de cele mai multe ori sunt integrate in diverse aplicatii. Cand o astfel de aplicatie acceseaza un document XML, procesorul XML citeste documentul, il verifica din punct de vedere al formarii si/sau validitatii, creeaza o structura de date si trimite datele inapoi aplicatiei. Cele mai multe procesoare XML verifica daca documentul XML este bine format, nu si daca este valid. In cazul in care verificarile nu se realizeaza cu succes, procesorul XML returneaza erorile detectate.
Un document XML poate fi vizualizat prin intermediul clientilor web la fel ca si o pagina web normala. Daca documentul XML nu contine referinte externe, care asigura formatarea (CSS, XSLT), clientii web vor afisa continutul acestuia. Unele aplicatii de tip client utilizeaza un mecanism de diferentiere prin culoare a componentelor documentului XML, pentru a ajuta la identificarea lor. Mai mult, afisarea elementelor documentului XML se va face sub forma unui arbore expandabil pentru a reflecta structura logica a documentului si pentru a permite vizualizarea diferitelor nivele informationale.
Structura logica de baza a unui document XML este alcatuita din prolog si element radacina. Prologul unui document XML poate include o declaratie XML, o declaratie a tipului de document, instructiuni de procesare, comentarii si spatii.
In general, prima linie intr-un document XML este reprezentata de o declaratie XML. Aceasta declaratie nu este obligatorie (pentru versiunea 1.0), dar in cazul in care este prezenta precizeaza o serie de caracteristici cu privire la continutul documentului respectiv: informatii despre versiunea standardului XML, codificarea pentru setul de caractere si informatii despre autonomia documentului. Declaratia XML poate avea urmatoarea forma:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
Daca un document XML detine o declaratie XML, in cadrul acesteia trebuie specificata versiunea (1.0 sau 1.1).
Atributul corespunzator codificarii setului de caractere poate lua urmatoarele valori: UTF-8, UTF-16 sau orice alte valori care reprezinta submultimi ale setului UNICODE. Acest atribut este optional, daca valoare lui este UTF-8 sau UTF-16.
Atributul standalone precizeaza daca in documentul XML pot exista referinte spre definitii ale unor componente din alte documente. Valorile posibile sunt yes (implicit), respectiv no. Daca apar definitii ale unor componente in documente externe, atributul standalone va avea valoarea no, iar aceste definitii trebuie identificate de procesorul XML (parser-ul XML) inainte de procesarea documentului XML.