Sunteți pe pagina 1din 55

CUPRINS ntroducere...3 Capitolul I: EXtensible Markup Language (XML)..4 1. XML - EXtensible Markup Language...4 1.1. Tehnologiile XML..

5
1.1.1. Elementele specifice limbajului XML8

1.2. Documente XML..9 1.2.1. Regulile de creare a documentului XML11 1.2.2. Documente bine formatate i documente valide.13 1.2.3. Sintaxa documentelor XML13 1.2.3.1. Simbolurile speciale.14 1.2.3.2. nceputul unui element i tag-ul de sfrit14 1.2.3.3. Atribute.16 1.2.3.4. Comentarii16 1.2.3.5. Referine la entiti...17 1.2.3.6. Instruciuni de prelucrare..18 1.2.3.7 Seciuni CDATA...19 1.2.3.8 Declaraia tipului de document..20 1.3. Namespaces...20 2. Definirea tipului de document (DTD)..21 3. Modelul obiectual al documentului (DOM).22 4. Spaii de nume..22 5. XML Schema...24 5.1 Definirea elementelor i atributelor...24 5.2. Deosebirele dintre XML Schema i DTD.26 6. Vizualizarea documentelor XML26 7. XML si bazele de date.27 8. Access XP si XML..29
1

9. Extensible Stylesheet Language XSL..29 9.1. XPath.31 9.2. Elemente XPath care includ condiii.33 9.3. Transformri XSLT...33 9.3.1. Root-ul stylesheet-ului XSLT...33 9.3.2. Elemente XSLT.34 10. Procesarea condiionat...35 Capitolul II: Parte practic...........................................................................................36 1. Comentariu saitului...36 2. Codul programului38 2.1. Prima pagin.......................................................................................................38
2.2. Pagina a doua...42

Concluzie.........................................................................................................................52 Bibliografie..54

ntroducere Extensible Markup Language, abreviat XML, descie o clas de obiecte numite documente XML i descrie parial comportamentul unor programe de computer care le proceseaz. XML este o aplicaie profil sau o form restrictiv a SGML-ului, Standard Generalized Markup Language [ISO8879]. Prin construcie, documentele XML se conformeaz documentelor SGML. Documentele XML sunt realizate din uniti de stocare numite entiti, ce conin date parsate sau neparsate. Datele parsate sunt realizate din caractere, unele dintre ele formnd date caracter iar altele ca marcaje. Marcajele codific o descriere a schemei de stocare a documentului i structura logic. XML furnizeaz un mecanism pentru a impune constrngeri asupra schemei de stocare i a structurii logice. Un modul software numit procesor XML este utilizat pentru a citi documente XML i pentru a da acces la structura i coninutul lor. Se consider c un procesor XML i face munca n spatele unui alt modul, numit aplicaie. Aceast specificaie descrie comportamentul cerut unui procesor XML n termeni ce spun cum trebuie s citeasc datele XML i ce informaii trebuie s-i furnizeze aplicaiei. n timp ce HTML este un limbaj markup singular, proiectat pentru satisfacerea unor anumite cerine, XML este o adevrat familie de limbaje markup: pornind de la XML utilizatorul poate defini alte limbaje markup; aceasta nseamn c aproape orice tip de date poate fi definit cu uurin n XML. n aceste condiii pe lng un mediu de comunicaie universal (Internetul), o interfa utilizator universal (browser-ul) i un limbaj de programare universal (Java) avem acum i un format de date universal - XML. XML este universal nu doar prin spectrul su de aplicaii, dar i prin uurina utilizrii. Faptul c este bazat pe text l face uor de utilizat pentru crearea de aplicaii i de unelte pentru dezvoltarea aplicaiilor; este de asemenea un standard deschis, motiv pentru care nu necesit licen i poate fi folosit pe toate platformele hardware/software. Ceea ce l face de asemenea universal este puterea sa. Datele sunt transmise i stocate n computere n diferite moduri: iniial ele erau stocate n fiiere cu lungime fix
3

sau formate delimitate i apoi s-au mutat n baze de date i adesea n formate binare complexe. XML este un format de date structurate, care permite stocarea datelor complexe, indiferent dac iniial erau de tip text, binare sau orientate-obiect. Capitolul I: EXtensible Markup Language (XML) 1. XML - EXtensible Markup Language XML (Extensible Markup Language), descendent al SGML (Standard Generalized Markup Language) este un meta-limbaj utilizat n activitatea de marcare structural a documentelor, a crei specificaie a fost dezvoltat ncepnd cu 1996 n cadrul Consoriului World Wide Web (W3C), de un grup de cercetare condus de Jon Bosak de la Sun Microsystems, la care au aderat ulterior o serie de grupuri de experi din comunitile academice (Text Encoding Initiative, NCSA, James Clark) i industriale (SUN, IBM, Netscape, Oracle, Adobe etc.). Prima versiune de XML a fost standardizat n 1998, fiind revizuit recent, n luna octombrie 2000. XML este o metod de descriere a informaiei astfel nct att computerele, ct mai ales oamenii s o poat nelege. Scopurile limbajului au fost cele legate de utilizarea lui n Internet, suportnd o varietate de aplicaii, dar pstrnd compatibilitatea cu SGML. n fapt, XML este compus dintr-o familie de limbaje menite a adapta conceptele curente de publicare a documentelor la Internet. XML este compus din:
1. XML (Extensible Markup Language) - subset al specificaiei SGML, conceput

pentruimplementare mai uoar, avnd n ultima perioad o dezvoltare extraordinar;


2. XLL (Extensible Linking Language) - set al mecanismelor hipertext bazate pe

HyTime i Text Encoding Initiative, concretizat n dou componente majore: XLink - conceput pentru descrierea legturilor dintre obiectele Internet; XPointer - compus dintr-o serie de termeni de localizare relativi la alte locaii;

3. XSL (eXtensible Stylesheet Language) - limbaj standard al foilor de stil, ca subset al DSSSL, permind ataarea de semantici elementelor XML i transformarea documentelor XML n alt tip de documente (XML, HTML, MathML etc.); 4. XUA (XML User Agent) - direcie de standardizare a navigatoarelor XML. Scopurile avute n vedere pentru XML sunt:
1. XML trebuie s fie simplu de utilizat pe Internet. 2. XML trebuie s suporte o mare verietate de aplicaii. 3. XML trebuie s fie compatibil cu SGML. 4. Trebuie s fie uor scrise programe ce vor procesa documente XML. 5. Numrul facilitiilor opionale din XML sunt reduse la minimum, ideal, la zero. 6. Documentele XML trebuie s fie citibile de ctre utilizatori i clare ntr-un mod

rezonabile.
7. Designul XML ar trebui s fie pregtit rapid. 8. Designul XML trebuie s fie formal i concis. 9. Documentele XML trebuie s fie uor de creat. 10. Caracterul lapidar din marcajele XML s fie de o importan minim.

1.1 Tehnologiile XML Dei tehnologiile XML i HTML (HyperText Markup Language) sunt descendente ale SGML, sunt complet diferite. Pentru cei care doreau s fac lucruri ce se puteau realiza prin SGML, ns fr a nva ntreg limbajul, a fost inventat HTMLul. HTML-ul este simplu de nvat i poate fi utilizat pe multe platforme, dar dei este foarte bun n a expune informaii, HTML-ul nu este la fel de bun n a le descrie. i din acest motiv s-a ajuns la XML: o metod universal pentru a reprezenta, descrie informaii. XML este o tehnologie complementar a HTML-ului, nu o nlocuire a sa. De exemplu, dac am considera un fragment de document HTML utilizat pentru a reprezenta informaii despre automobile, acesta ar putea fi de forma: <p><b>Descriere: </b></p> <p>Producator: BMW</p>
5

<p>Model: Z3</p> <p>Culoare: rosu</p> Din perspectiva unui calculator, nu este nici o indicaie asupra faptului c informaia ar fi structurat. n schimb, considernd aceeai informaie reprezentat prin XML, fragmentul de document ar fi: <Descriere> <Producator>BMW</Producator> <Model>Z3</Model> <Culoare>rosu</Culoare> </Descriere> n acest caz, privind acest fragment putem spune c Descriere conine Producator, Model i Culoare. Cunoscnd structura datelor, putem s facem anumite operaii asupra lor, s afim doar anumite date, s efectum diverse tipuri de cutri etc. De aceea, n multe cazuri, utilizarea XML-ului este necesar. Sistemul XML Un sistem XML este compus din patru pri generale: documentul XML, definiia, tipului de document (DTD = Document Type Definition), analizorul XML, i o parte unic, aplicaia XML. n termeni non-tehnici acestea pot fi numite coninut, definiia structurii, analizor i aplicaia.

Datele pe care le proceseaz un sistem XML sunt cele puse la dispoziie de documentul XML n care sunt descrise informaiile folosindu-se sintaxa XML. Pentru a se asigura faptul c informaia este reprezentat conform sintaxei XML, documentul este rulat de ctre un procesor XML numit analizor XML care verific corectitudinea sintactic i returneaz structura informaiei n memorie. Reprezentarea returnat va fi disponibil aplicaiei XML. Dac dorim ca informaiile dintr-un document s fie specificate ntr-un anumit mod, atunci i vom ataa documentului un DTD (Document Type Definition). DTD-ul conine de fapt un set de reguli prin care se specific modul n care dorim s fie structurat informaia din document. Dac se dorete, analizorul XML poate verifica i corectitudinea structural a unui document XML, prin parcurgerea acestuia vis--vis de DTD-ul asociat. Un analizor citete informaiile din documentul XML i le face disponibile aplicaiei XML. Se presupune c toate analizoarele XML ar trebui s aib acelai comportament, dar n realitate fiecare are propriile sale particulariti. Alegerea unui anumit analizor este important i depinde mai ales de limbajul n care va fi scris aplicaia XML. Unele sunt scrise pentru C++, altele pentru Java, etc. Dintre cele mai cunoscute i utilizate analizoare putem enumera: 1. IBM XML Parser pentru Java 2. DataChannel Parser pentru Java (XJParser) 3. Sun XML Parser pentru Java 4. Expat 5. MSXML (analizorul Microsoft de XML inclus n Internet Explorer 5 i versiunile ulterioare) care poate fi utilizat din diverse limbaje (Visual C++, Visual Basic, Visual J++, etc.) Aplicaiile XML proceseaz informaiile din documentele XML, dar aceasta nu nseamn c exist limite n ceea ce s-ar putea face cu o aplicaie. n general, pentru

aplicaii sunt utilizate analizoarele create de marile companii, deoarece scrierea unui analizor propriu necesit un efort deosebit. 1.1.1. Elementele specifice limbajului XML Asemanator cu fisierele in format HTML, pentru XML este folosit formatul text pentru stocarea informatiei, in acest mod asigurandu-se portabilitatea datelor pe orice platforma sau dispozitiv. In esenta, elementele implicate n tehnologia XML sunt urmatoarele: 1. Fisierul propriu-zis XML, care include setul de etichete si informatiile care sunt transmise prin intermediul acestuia
2.

Declaratia regulilor de validare i a tipurilor de date incluse n document realizate prin intermediul limbajului DTD (Data Type Declaration). Practic, prin intermediul limbajului DTD se va defini setul de etichete utilizat n marcarea documentului, precum i n situatia n care acestea sunt necesare, regulile de validare a datelor incluse n document. DTD are rolul de a valida coninutul i structura fiierului XML, utilizarea acestei

seciuni nefiind obligatorie n cazul acestui format. Spre deosebire de XML, n cazul documentelor SGML acest element este obligatoriu. Actualmente exista i o serie de DTD-uri dedicate unor domenii specializate, dintre acestea menionand: HL7 element specific domeniului sntaii sau MathML destinat definirii documentelor care includ ecuaii matematice. n acest mod, folosind aceste DTD-uri precreate, putem organiza informaia n domenii specifice mult mai simplu.
3. Pentru particularizarea modului n care vor fi afiate informaiile din fiierul XML n

browser, este necesar de utilizat foile de stil XSL. Foile de stil au un rol similar cu al declaraiilor de formatare din fiierele CSS (Cascading Style Sheet). n acest mod, vei putea stabili o structura tabelar de afiare a datelor, culorile i fonturile de formatare a informaiei, precum i alte elemente de formatare a dalelor incluse n fiierul XML.
8

Legat de fiierul XML, elementul principal al documentelor n acest format, este necesar de a face cteva precizari: 1.Prima linie a fiierului specific versiunea limbajului XML utilizat, precum i codificarea caracterelor folosite n fiier (n cazul nostru a fost utilizat setul de caractere Unicode). 2. In debutul fiierului XML, se mai pot realiza regulile de definire i formatare a datelor n limbajul DTD, acest element nefiind obligatoriu. n situaia n care dorii s ntroducei declaraiile DTD, avei doua variante: prima, consta n ntroducerea acestora direct n fiierul XML, iar cea de-a doua consta n nserarea declaraiilor DTD ntr-un fiier distinct purtnd aceasta extensie. 3. De asemenea, tot n debutul fiierului, mai pot fi incluse referine ctre foaia de stil XSL, n acest mod stabilindu-se modul de formatare a documentului. 4. Inceputul propriu-zis al fiierului XML este marcat de eticheta rdcina, aceasta avnd o funcie asemanatoare cu a etichetei <HTML> specificat limbajului HTML 5. Fiierul XML, asemanator cu cel HTML, este echilibrat n ceea ce privete etichetele urilizate. Astfel, pentru fiecare etichet de start va exista una similara care ncheie respectivul element . 1.2 Documente XML Un document XML este format din marcaje (tag-uri) i date caracter. Cuvntul marcaj (markup) a fost folosit iniial pentru a descrie anumite adnotri, note marginale n cadrul unui text cu intenia de a indica tehnoredactorului cum trebuie listat un anumit pasaj. Generaliznd, putem defini marcajul drept orice aciune de a interpreta explicit o poriune de text. Un marcaj este un ir de caractere delimitat de caracterele < i >. Datele caracter reprezint coninutul marcajelor. n XML, marcajele nu sunt folosite pentru afiarea datelor coninute, ci au alte scopuri printre care:

asigur o sintax simpl i standardizat pe care analizoarele XML o pot folosi pentru a utiliza informaia stocat asigur o metod de a descrie structura ierarhic a coninutului prin mprirea informaiei (datele caracter) n pri numite elemente care mai departe sunt descrise prin atribute. Structura ierarhic a ntregului document este pus n eviden prin utilizarea marcajelor.

Un document XML poate fi mprit n trei seciuni generale de colecii de marcaje: 1. Prolog 2. Declaraia tipului de document
3. Elementul rdcin

Fiecare dintre aceste seciuni poate fi mai departe mprit n structuri mai detaliate, o reprezentare general a structurii a unui document XML putnd fi urmrit n urmtoarea schem:

10

1.2.1. Regulile de creare a documentului XML n linii generale documentele XML trebuie s satisfac urmtoarele reguli: XML (Extensible Markup Language) este un limbaj nou de marcare descendent al SGML, care permite struturarea informaiei de diferite tipuri, folosind pentru aceasta un set liber de instruciuni. Astzi XML poate fi folosit n orice aplicaii, care au nevoie de structurare a informaiei de la sistemele geoinformaionale cu un volum enorm de informaie transmis pn la programele pentru calculatoare personale. Analiznd cu atenie lumea informaional actual se poate de evideniat o mulime de probleme, legate cu ccrearea i prelucrarea informaiei structurate, pentru rezolvarea crora poate fi folosit XML:

11

1. La nceputul documentului se plaseaz declaraia XML, n care se indic limbajul

de marcare, versiunea lui i informaia adugtoare; 2. Fiecare tag nceptor, ce definete o zon de date n document, obligatoriu trebuie s aib perechea sa de tag care nchide declaraia, adic, spre deosebire de HTML nu se permite omisia tagurilor; 3. n XML se ia n consideraie registru simbolurilor; 4. Toate valorile atributelor, ce se folosesc la definirea tagurilor, trebuie s fie incluse n ghilimele; 5. Consecutivitatea tagurilor i includerea unora n altele se verific cu strictee, din aceast cauz e nevoie de urmrit cu atenie ordinea deschiderii i nchiderii tagurilor; 6. Toat informaia ce se conine ntre tagul de nceput i sfrit, reprezint n XML datele i deci se iau n consideraie toate simbolurile de formatare (spaiile, trecerea rndurilor, tabularea nu se ignoreaz cum se face aceasta n HTML). Dac documentul XML respect toate regulile de mai sus, atunci el este corect din punct de vedere formal, i toate analizatoarele, care sunt destinate descifrrii documentelor XML, vor putea s lucreze corect cu acest document. Dar pe lng controlului formal la corespunderea documentului gramaticii limbajului, pot fi utilizate mijloace de control al coninutului i respectrii regulilor de folosire a tagurilor. Pentru asigurarea controlului corectitudinii documentelor XML, e necesar de utilizat analizatoare, care asigur un astfel de control, ele se mai numesc li verificatoare. Actual exist dou metode de control a corectitudinii documentului XML: DTD (Document Type Definition) i schemele de date (Semantic Schema). Spre deosebire de SGML, definirea regulilor DTD n XML nu este obligatoriu, ceea ce permite crearea oricror documente XML fr frmntri mari de cap pentru crearea DTD-urilor, ce au o sintax nu dintre cele mai simple.

12

1.2.2. Documente bine formatate i documente valide Documentele bine formatate sunt documentele corecte din punct de vedere sintactic. Spre deosebire de HTML, XML este mai strict n ceea ce privete sintaxa. Regulile ce trebuie respectate pentru ca un document s fie bine formatat, sunt:
1.

spre deosebire de HTML i SGML, XML este case sensitive. De aceea trebuie s fim ateni cnd scriem marcajele, astfel de greeli fiind destul de greu de detectat, mai ales cnd nu se folosete un editor de XML.

2. fiecare tag deschis trebuie nchis, n caz contrar analizorul XML va semnala eroare.
3.

incluziunile i excluziunile nu sunt permise. Primul tag deschis trebuie s fie ultimul care este nchis. Tag-urile trebuie nchise exact n ordinea invers a deschiderii lor, altfel va fi semnalat eroare.

4.

nu sunt acceptate elementele vide. Elementele vide au o sintax modificat: Exist dou categorii de documente XML: bine formatate i documente valide. Un

<element /> document XML valid este acel a crei structur este corect vis--vis de DTD-ul ataat. (pot fi valide doar documentele care au ataat un DTD). Un analizor efectueaz dou nivele de verificare a unui document XML. Dup verificarea corectitudinii sintactice, analizorul poate verifica dac coninutul documentului este conform setului de reguli din DTD. Dac coninutul respect aceste reguli atunci spunem despre documentul XML c este valid. Procesul de verificare dac un document este valid sau nu se numete validare. 1.2.3. Sintaxa documentelor XML Dup cum am mai menionat, un document XML este format din coninut (date caracter) ncapsulat n marcaje. Exist apte tipuri de marcaje ce pot fi folosite ntr-un document XML:
1. nceputul unui element i tag-ul de sfrit

2. Atribute
13

3. Comentarii
4. Referine la entiti

5. Instruciuni de procesare 6. Seciuni CDATA 7. Declaraia tipului de document 1.2.3.1. Simbolurile speciale Pentru a include n document un simbol, care se folosete pentru definirea unei construcii n limbaj (de exemplu, simbolul semnului mai mare sau mai mic), i a nu comite erori n procesul analizei documentului, este necesar de a folosi simbolul lui special sau identificatorul lui numeric. De exemplu, &lt; &gt; &quot; sau &#036; (forma zecimal de scriere), &#x1a; (forma hexazecimal de scriere) .a
.1.2.3.2 nceputul unui element i tag-ul de sfrit

Elementele sunt blocurile de baz ale unui document XML. Pot fi folosite att pentru a conine informaii, ct i pentru definirea structurii. Un element ncepe cu un tag de start i se termin cu corespunztorul tag de sfrit. Tag-ul de start este un singur cuvnt (nu sunt permise spaiile albe) ntre caracterele < i >. De exemplu, <H1> este tag de start , iar </H1> este tag de sfrit. Trebuie s inem minte c XML-ul este case sensitive, din acest motiv urmtoarele exemple fiind greite: <tag>exemplu</Tag> sau <Tag>exemplu</TAG>. De asemenea, trebuie s tim c numele unui element nu poate ncepe cu un numr i nici nu poate conine spaii, exemple incorecte fiind urmtoarele <2tag> sau <2 ceva> sau </ ceva>. Elementele nu sunt folosite doar pentru a conine informaii, ci i pentru a pune n eviden structura documentelor XML, dup cum se va vedea n urmtorul exemplu:

14

<agenda> <persoana> <nume>Grigore Alina</nume> <telefon>051/444444</telefon> <adresa> <strada>A.I. Cuza, nr. 10</strada> <bloc>A2</bloc> <scara>2</scara> <apartament>2</apartament> <cod_postal>1100</cod_postal> </adresa> </persoana> </agenda> n acest exemplu, se poate vedea c elementele <nume>, <telefon>, <strada>, <bloc>, <scara>, <apartament>,<cod_postal> conin informaii spre deosebire de elementele <agenda>, <persoana>, <adresa>, care sunt folosite doar pentru a defini structura datelor. Prin folosirea lor, datele sunt mai bine organizate, facilitnd eventualele operaii de cutare, afiare sau sortare a datelor. n XML pot fi folosite i elementele vide (care nu conin nimic), dar care au o sintax aparte. Dac de exemplu pentru o persoan nu avem numr de telefon, putem scrie <telefon></telefon> sau <telefon/> ambele variante fiind corecte. (este respectat regul cu privire la faptul c fiecare tag deschis trebuie nchis).

15

1.2.3.3 Atribute Atributele au rolul de a descrie elementele. Putem face o analogie ntre atribute care descriu elemente i adjective care descriu substantive. Atributele n XML sunt aceleai cu atributele din HTML. De exemplu, un atribut al elementului <table> ar fi align=center. Atributele sunt localizate n tag-ul de start al unui element, imediat dup numele elementului, (acum este evident de ce nu pot apare spaii albe n numele unui element), sunt urmate de semnul =, care este urmat de valoare atributului ntre ghilimele. Dac valoarea unui atribut nu este ntre ghilimele va fi semnalat eroare de ctre analizorul XML, la fel ca i n cazul n care pentru un atribut nu ar apare i valoarea acestuia. Pentru un element pot exista oricte atribute, att timp ct sunt declarate corect. Exemple incorecte sunt urmtoarele: <element culoare=alb> - valoarea atributului nu este ntre ghilimele; varianta corect este: <element culoare=alb> <element culoare> - pentru atributul culoare nu este specificat valoarea, variante corecte fiind: <element>, sau dac se specific i valoarea atributului: <element culoare=alb>. 1.2.3.4 Comentarii Comentariile sunt aceleai ca i n HTML. Sunt locuri n care scriem note pentru noi nine, care nu vor fi expuse utilizatorului. Comentariile sunt ideale pentru ane aminti despre micile detalii pe care tindem s le uitm n timp ce scriem. Comentariile vor fi scrise ntre <!-- i -->. Un exemplu de comentariu este urmtorul: <!-- Un exemplu de comentariu -->. Analizorul XML va ignora orice apare ntre tag-urile comentariu, ns trebuie s avem grij s nu apar -- n interiorul comentariilor. Comentariile pot fi orict de lungi, nu exist limite n ceea ce privete lungimea lor.

16

O alt utilitate a comentariilor este de a include n interiorul lor elemente pe care dorim ca analizorul s le ignore, de exemplu: <!-- urmeaz un element ce nu va fi citit de ctre analizorul XML <element>Coninut ce va fi ignorat</element> --> 1.2.3.5 Referine la entiti Referinele la entiti sunt de fapt pointeri ctre entiti. n XML, entitile sunt uniti de text, unde o unitate poate fi orice, de la un singur caracter la un ntreg document sau chiar o referin la un alt document. Sintaxa referinelor la entiti este: &nume_entitate; (&, urmat de numele entitii, urmat de ;) Una dintre cele mai frecvente utilizri ale referinelor la entiti este atunci cnd se dorete folosirea unor caractere care ar duce la apariia unor confuzii pentru analizorul XML i deci care nu ar trebui s apar n forma lor normal n text. n acest caz exist cinci entiti predefinite n XML:

n momentul n care analizorul XML ntlnete referina la o entitate n document, el o va substitui cu datele pe care aceasta le refer i va returna documentul cu nlocuirile fcute. De exemplu, dac am avea <comparaie> dolarul &gt; leul
17

</comparaie> dup analizarea textului de ctre analizorul XML, va rezulta: dolarul > leul deci referina la entitate a fost substituit cu semnificaia entitii respective. O alt utilizare frecvent a referinelor la entiti este n cazul n care avem n documentul XML fragmente de text care se repet. Pentru a nu scrie aceste pri de text de mai multe ori vom defini o entitate care va avea ca valoare acea parte de text i de fiecare dat cnd fragmentul respectiv apare n document vom folosi referina la entitate. Prin folosirea referinelor la entiti se vor obine documente mai scurte i se va scurta timpul de redactare. 1.2.3.6 Instruciuni de prelucrare Instruciunile de prelucrare sunt un tip special de marcaj care conin informaii despre anumite aplicaii ce urmeaz a fi executate. Sintaxa general a unei instruciuni de procesare ar fi urmtoarea: <?aplicaie instruciune=valoare ?> ncep cu <?, urmat de numele aplicaiei i de specificarea unor elemente ce in de acea aplicaie. Numele aplicaiei trebuie s fie diferit de xml sau XML, sau alte moduri de scriere a acestui cuvnt, deoarece cuvintele de acest tip sunt rezervate, urmnd a fi standardizate ntr-o versiune ulterioar. i declaraia XML este o instruciune de procesare, cu o semnificaie aparte. Documentele XML trebuie s nceap cu o declaraie XML care specific versiunea limbajului XML utilizat. Aceast declaraie poate lipsi, dar n cazul n care exist, ea trebuie s fie primul element al documentului i s fie unic. n general declaraia XML este <?xml version=1.0?>, dar ea poate conine i alte dou atribute n afar de atributul version care se refer la versiunea de XML folosit (n prezent singura versiune fiind 1.0 i orice alt valoare a atributului va duce la semnalarea unei erori): encoding care se refer la setul de caractere folosit i standalone, care poete lua valorile yes sau no, n funcie de lipsa sau existena n document a
18

unor referine ctre alte documente care s conin definiii ale unor marcaje, atribute sau entiti din document. 1.2.3.7 Seciuni CDATA Seciunile CDATA sunt utilizate pentru a include blocuri de text coninnd caractere care altfel ar fi recunoscute ca marcaje. Seciunile CDATA ncep cu irul <! [CDATA[ i se termin cu irul ]]>. Seciunile CDATA sunt folosite n general atunci cnd dorim ca datele incluse n interiorul lor s nu fie interpretate de ctre analizor, ci s fie considerate date caracter. Astfel de situaii se ntlnesc cnd dorim s includem caractere ca <, >, & etc. care ar putea crea confuzii analizorului XML i folosirea lor ar putea duce chiar la generarea de erori sau cnd dorim s includem marcaje care s fie considerate drept date caracter i s fie expuse utilizatorului ca atare. Spre exemplificare, considerm un fragment de document XML care conine informaii despre cum se poate crea un tabel n HTML: <exemplu> Un exemplu de creare a unui tabel n HTML: <![CDATA[ <table align=center> <tr> <td>Coloana 1</td> <td>Coloana 2</td> </tr> </table> ]]> </exemplu> Folosind seciunea CDATA, analizorul va ignora coninutul acesteia i datele vor fi expuse utilizatorului exact n forma n care sunt, i datele nu vor fi interpretate drept marcaje, ci drept date caracter.
19

O restricie de sintax este faptul c n interiorul seciunilor CDATA nu poate s apar irul ]]. nc un lucru de reinut este c seciunile CDATA nu pot fi incluse unele n altele. 1.2.3.8 Declaraia tipului de document Declaraia tipului de document este un marcaj special ce poate fi inclus n documentele XML cu rolul de a specifica existena i locaia definiiei tipului de document (DTD Document Type Definition). Trebuie s reinem c declaraia tipului de document i definiia tipului de document sunt noiuni diferite. DTD-ul este un set de reguli care definesc structura unui document XML, spre deosebire de declaraia tipului de document care are rolul de a spune analizorului ce DTD trebuie s foloseasc pentru verificare i validare. Sintaxa declaraiei tipului de document difer n funcie de tipul DTD-ului: intern sau extern. Considernd c avem un document XML numit doc.xml, modul de asociere dintre structura sa i setul de reguli specificate n reguli.dtd este insernd n documentul XML, imediat dup declaraia XML, urmtoarea declaraie a tipului de document: <!DOCTYPE root SYSTEM reguli.dtd> unde root este elementul rdcin al documentului XML, iar reguli.dtd este numele DTD-ului asociat documentului. n cazul n care DTD-ul este intern, declaraia tipului de document va avea urmtoarea form: <!DOCTYPE element_rdcin [ <!-- Setul de reguli--> ]> 1.3. Namespaces Cum a mai fost spus mai sus, cel mai mare plus a utilizrii XML este posibilitatea de a inventa i introduce taguri proprii. Dar nu este exclus faptul ca tagurile inventate de o persoan nu se vor intersecta cu inveniile altei persoane. Este posibil cazul, cnd unu shi acelai document va conine informaia pentru cteva analizatori odat. n acest caz

20

denumirea unor elemente sau atributelor lor pot s coincid, ce va genera o eroare n analizatorul XML, sau vizualizarea greit a documentului. Pentru a evita aceste situaii, trebuie de atribuit denumiri unice elementelor adugnd la numele lor un prefix universal, unic i irepetabil, pentru aceasta se folosete mecanismul Namespaces. Conform acestei specificri, pentru determinarea zonei de activitate a tagului e necesar de definit un atribut unical, ce descrie denumirea elementului, dup care analizatorul documentului va putea detecta, crui grup de nume el se atribuie. 2. Definirea tipului de document (DTD) Ca i n cazul SGML, tipul unui document XML reprezint modul n care vor fi specificate informaiile n acel document. Acest lucru se realizeaz prin intermediul DTD-ului (Document Type Definition), iar acest DTD poate fi intern sau extern. Documentele XML pot avea un DTD sau DTD-ul poate lipsi. Dac exist un DTD intern sau extern, atunci utilizatorul trebuie s se conformeze acestui DTD, iar n cazul n care lipsesc ambele, atunci utilizatorul poate construi documente respectnd un numr minim de constrngeri. DTD-ul intern se declar imediat dup declaraia XML sau, dac aceast declaraie nu exist, el va fi primul element exceptnd comentariile, spaiile de nume sau instruciunile de procesare. DTD-ul intern se declar utiliznd cuvntul cheie DOCTYPE n modul urmtor: <!DOCTYPE element_rdcin [ declaraie de elemente, atribute, entiti, instruciuni de procesare, notaii ]> DTD-ul extern este definit ntr-un alt fiier text care trebuie s se afle la o adres specificat. Declaraia este asemntoare, dar intervin cuvintele cheie SYSTEM sau PUBLIC:

21

<!DOCTYPE carte SYSTEM "http:/xxx.com/carte.dtd"> <!DOCTYPE carte PUBLIC "carte" "http:/xxx.com/carte.dtd"> Fiierul "carte.dtd" aflat la adresa specificat n declaraie conine definiiile elementelor care vor apare n document. Elementul carte trebuie s apar n DTD-ul specificat. Declaraia SYSTEM specific faptul c DTD-ul se afl la acea adres, iar PUBLIC nseamn c va fi generat un fiier care va conine acel DTD. 3. Modelul obiectual al documentului (DOM) Unul din cele mai puternice interface-uri de acces la coninutul documentelor XML este Document Object Model (DOM). Modelul obiectului a documentelor XML este prezentarea structurii lui interne n form de culare a unor obiecte. Pentru comoditate, aceste obiecte se organizeaz ntr-o structur oarecare arborescent de date n fiecare element al documentului poate reprezenta o ramur. n fiecare document XML obligatoriu este definit element principal, i restul documentului poate fi prezentat ca arborescen a elementului principal, care se numete rdcina arborelui documentului. DOM specificarea accesului de program i de platform independent la coninutul documentului. DOM reprezint o metod strandard de construcie a modelului oricrui document HTML i XML, cu ajutorul creia se poate de fcut cutarea fragmentelor necesare, de creat, de exclus i de modificat elementele lui. 4. Spaii de nume Pot apare confuzii atunci cnd se folosesc date din diverse surse elemente, care pot avea elemente cu acelai nume, dar cu semnificaii diferite, iar pentru evitarea acestor ambiguiti sunt folosite spaiile de nume, astfel nct numele de elemente vor fi identificate n mod unic, iar validarea se va realiza fr probleme.
22

Necesitatea folosirii spaiilor de nume se va vedea din exemplul urmtor: <carte autor = Eminescu titlu=Poezii editura=Nemira > </carte> i putem avea ntr-un alt document: <carte> <autor>Cosbuc</autor> <titlu>Poezii</titlu> <editura>Nemira</editura> </carte> Documentul care le utilizeaz pe precedentele i folosete spaii de nume pentru evitarea ambiguitilor ar putea fi urmtorul: <rezultat xmlns:x=http//xxx.com/doc1.dtd xmlns:y=http://yyy.com/doc2.dtd> <x:carte> <x:autor>Cosbuc<-x:autor> <x:titlu>Poezii<-x:titlu> <x:editura>Nemira<-x:editura> </x:carte> <y:carte y:autor=Eminescu y:titlu=Poezii y:editura=Nemira> </y:carte> </rezultat> xmlns face parte dintre cuvintele rezervate ale XML-ului, folosit pentru declararea spaiilor de nume, iar valoarea atributului su trebuie s fie un URL. Spaiile de nume se
23

pot declara explicit (ca prefix sau substitut pentru numele complet al unui spaiu de nume o declarare explicit este cea a spaiului de nume din exemplul anterior), sau implicit (un spaiu de nume pentru toate elementele domeniului lui de vizibilitate). Exemplu de declarare implicit: <carte xmlns=http://xxx.com/schema> <titlu>Poezii</titlu> <autor>Eminescu</autor> </carte> 5. XML Schema O schem reprezint o specificaie formal a gramaticii asociate unui limbaj definit n XML, util pentru validarea documentelor scrise n acel limbaj. Desigur, fiecrui document i puteam asocia, n mod explicit, un DTD folosit pentru validarea acestuia, reminiscen de la SGML. Schemele utilizeaz sintaxa XML i sunt mai natural de definit dect DTD-urile, specificaiile fiind nc n faza preliminar, bazate pe Document Content Description (DCD) i XML-Data, ambele n lucru la Consoriul Web. n prezent, schemele XML sunt suportate n form limitat de Internet Explorer 5 i Netscape 6. 5.1 Definirea elementelor i atributelor Ca i la DTD, cea mai important parte dintr-o schem XML o reprezint specificarea elementelor i atributelor care pot compune un document, incluznd tipul i ordinea lor de apariie. Elementele i atributele sunt definite n XML Schema prin tagurile <ElementType> i, respectiv, <AttributeType>, iar instanele lor prin <element> i <attribute>, respectiv. Aceast abordare este similar declaraiei typedef din limbajul C. Un exemplu: <?xml version="1.0"?> <Schema name="mySchema" xmlns="schemas-microsoft-com:xml-data"> <ElementType name="nume" content="textOnly" /> <ElementType name="prenume" content="textOnly" />
24

<ElementType name="adresa" content="textOnly" /> <ElementType name="persoana" order="many"> <element type="nume" maxOccurs="1" /> <element type="prenume" maxOccurs="1" /> <element type="adresa" /> <AttributeType name="id" required="yes" /> <attribute type="id" /> </ElementType> </Schema> Schema specificat n acest exemplu va fi referit prin numele "mySchema" stabilit prin intermediul atributului name al tag-ului <Schema>. Fiecare schem are asociat un spaiu de nume specificat prin xmlns. Atributul order din definiia unui tip de element dicteaz regulile de apariie a elementelor n cadrul unui element printe, putnd avea valorile: seq - sub-elementele apar n secvena specificat n cadrul schemei; many - sub-elementele pot apare n orice ordine, n orice cantitate; one - un singur sub-element din lista celor specificate poate fi utilizat; empty - nu se permite apariia nici unui sub-element (elementul va fi vid). Fiecrui <ElementType> i putem asocia atributul content care dicteaz tipul coninutului acestuia: textOnly - numai text, fr alte sub-elemente; eltOnly - doar sub-elemente; mixed - coninut eterogen, i sub-elemente, i text. Implicit, pentru content="eltOnly" se consider c order este setat pe seq, iar pentru content="mixed" atributul order are valoarea many.

25

5.2. Deosebirele dintre XML Schema i DTD ntre XML Schema i DTD exist urmtoarele deosebiri principale:
1.

Schemele i DTD-urile utilizeaz moduri diferite de specificare a coninutului documentelor XML. n cadrul unui model XML Schema deschis, un element poate include definiii <ElementType> i <AttributeType> din alte scheme. Modelul XML Schema nchis i DTD sunt similare.

2.

n XML Schema tipurile posibile de date pentru elemente i atribute pot fi variate i complexe, la specificaia XML-Data nc lucrndu-se n prezent. n cazul DTD, aceast flexibilitate nu exist.

3.

Includerea declaraiilor de spaii de nume XML nu poate fi modelat n DTD. Schemele pot fi extinse, pe cnd DTD-urile prin natura lor sunt fixe. <ElementType> poate avea un unic element descendent, ceea ce n DTD nu se poate defini n mod strict.

4.

6. Vizualizarea documentelor XML Dup cum am mai remarcat, spre deosebire de HTML, XML nu definete metoda de prezentare i utilizare a elementelor documentului cu ajutorul lui, adic programului analizator i se d posibilitatea singur s aleag o formarea necesar. Aceasta necesit un principiu de definire a structurii interne a documentului independent de metodele prezentrii acestei informaii. De exemplu, introducnd codul, <leguma> varz <leguma>, se are n vedere c varz n cazul dat este o legum dar cum trebuie s fie reprezentat elementul dat i trebuie el s apar pe ecranul clientului sau nu, o astfel de informaie nu este prezent n definiia de mai sus. Pentru a utiliza datele, definite de elementele XML, de exemplu, de a le reprezinta pe ecranul utilizatorului, e necesar de a scrie un program analizator, care ar executa aceste elemente. Astzi, exist deja un ir de programe destinate pentru executare, i

26

creatorii au posibilitatea de a alege programul cel mai convenabil pentru rezolvarea problemelor concrete. Cum o mai fost remarcat, n general, programele analizatoare pot fi mprite n dou categorii: verificatoare (care folosesc descrierile DTD pentru definirea corectitudinii documentului) i nonverificatoare. Dac se compune un limbaj propriu i descriei gramatica lui n baza DTD, atunci pentru analiza documentelor, scrise n acest limbaj, va fi necesar programul ce controleaz corectitudinea compunerii documentului. Dar, fiind c utilizarea DTD n XML nu este obligatorie, orice document compus corect poate fi analizat de ctre programul destinat analizei documentelor XML. n orice caz, folosind analizatoarele universale XML, e sigur faptul c dac construciile limbajului folosite n document sunt corecte din punct de vedere sintactic, atunci programul analizator va putea extrage elementle definite n document i s le transmit programului care ndeplinete funcia de vizualizare.Astfel, dup desfacerea documentului n majoritatea cazurilor, se obine un model-obiect ce descrie documentul, i mijloacele necesare de lucru pentru el (pentru parcurgerea grafului elementelor). Unele analizatoare au i metoda de prezentare a structurii documentului bazat pe DOM. Din aceast cauz apare posibilitatea de a folosi modelul ierarhic DOM pentru construcia documentelor proprii. La fel, dac este vorba de desfacere a informaiei ce se pastreaz n documentele XML, atunci este obligatoriu de menionat tabelele de stil pentru XML, care au ca scop descrierea regulilor de prezentare a elementelor XML. Documentele XSL vor fi analizate n continuare. 7. XML i bazele de date Ce legatura exista intre XML si bazele de date? Raspunsul este simplu, XML constituie modalitatea cea mai simpla si, totodata, cea mai eficienta metod prin intermediul careia datele pot fi transferate prin intermediul Internetului.
27

XML este un fel de plic sau, un container in care informatia din bazele de date este incapsulata si distribuita prin intermediul Internetului, avand totodata garantia ca datele stocate in aceste fisiere vor fi accesibile pentru orice dispozitiv si pe orice platforma. In trecut, atunci cand trebuiau transferate date intre diverse platforme se foloseau simple fisiere text in care datele erau separate prin virgula sau alte caractere speciale, insa o data cu aparitia limbajului XML, aceasta modalitate arhaica de transfer al datelor devine caduca. XML raportat cu celelalte mijoace de transfer al datelor prezinta avantajul simplitatii, structurarii eficiente a informatiei, precum si al postabilitatii informatiei pe orice platforma sau dispozitiv. Avand in vedere penetrarea Internetului in cele mai diverse domenii, putem conchide ca bazele de date nu mai sunt independente, existand in acest moment o dependenta informationala intre diverse surse de date. Exemplu: Presupunem urmatorul scenariu: sunteti "jucator" la bursa de valori si doriti sa obtineti cotatiile bursiere zilnice de pe site-ul Web al bursei. De asemenea, doriti ca datele privind cotatiile bursiere sa fie memorate pe calculatorul personal intr-o baza de date (acesta putand fi, spre exemplu, Access). Pentru punerea in practica a acestui deziderat vor trebui parcursi urmatorii pasi succesivi: Pasul 1 - Utilizatorul realizeaza o cerere catre serverul de Web sau cel de aplicatii, solicitand cotatiile bursiere pentru actiunile dorite. Pasul 2 - Serverul de Web, transmite cererea catre serverul de baze de date sub forma unei interogari SQL, acesta returnand setul de inregistrari specificat. Pasul 3 - Datele transmise de serverul de baze de date sunt ambalate de solutii specializate si livrate in format XML catre client prin intermediul serverului de Web. Pasul 4 - Datele sunt preluate pe calculatorul personal al utilizatorului care a realizat cererea si transferate in baza de date care include datele statistice legate de cotatiile bursiere.

28

Acest

scenariu

constituie

un

exemplu

simplu

de interoperabilitate

si

interdependenta folosind Internetul si tehnologia XML. Legat de acest scenariu este nescesar sa mai precizam ca pasii 2 si 3 tind sa se contopeasca intr-o singura etapa. In acest sens, cele mai multe din sistemele de gestiune a bazelor de date au incorporate facilitati de export direct al datelor in format XML, fara a mai fi necesar sa fie utilizate aplicatii accesorii. 8. Access XP si XML Access XP ofera posibilitatea de export usor al datelor in format XML, incluzand in acest sens un set de facilitati accesibile acestui domeniu. Pentru a realiza aceasta operatiune, selectati in prealabil o tabela sau o interogare din baza de date al carei continut doriti sa-l exportati in format XML. Ulterior, alegeti din meniul File, optiunea Export, selectand din cadrul ferestrei de dialog, care se va deschide, formatul de fisier XML Documents. In cadrul ferestrei care va fi afisata aveti posibilitatea de a stabili o serie de optiuni legate de exportul datelor in format XML, dintre acestea mentionandu-le in continuare pe cele mai importante: 1. Setul de caractere utilizat in crearea fisierului (UTF-8 reprezinta setul de caractere Unicode codificat pe 8 biti); 2. Stabiliti daca va fi creata schema de descriere a datelor din fisierul XML, aceasta avand o functie asemanatoare cu cea a limbajului DTD si fiind dedicata verificarii integritatii datelor din fisierul XML; 3. De asemenea, exista posibilitatea de a stabili daca va fi creata o foaie de stil destinata stabilirii modului in care va fi afisata informatia din fisierul XML in browserul Web. Access va pune la dispozitie si o functie similara, prin intermediul acesteia avand posibilitatea de a importa datele transmise in format XML in baza de date Access. 9. Extensible Stylesheet Language - XSL Aa cum s-a artat n capitolele anterioare tehnologia XML este foarte puternic i util. Cu siguran c posibilitatea de a transforma cu uurin un document XML ntr-

29

un alt format precum HTML, WAP, text, etc. a contribuit la creterea popularitii XML-ului. Exist dou tehnologii care pot fi utilizate n acest sens, i anume: 1. CSS- Cascading Style Sheet;
2. XSL Extensible Stylesheet Language;

Dintre aceste dou tehnologii XSL este mai puternic i mai flexibil n comparaie cu utilizarea CSS i, n acelai timp, este mai apropiat de conceptele XML, fiind practic un limbaj bazat chiar pe XML, i care utilizeaz stylesheet-uri pentru a transforma documentului de intrare.

n practic XSL documentul de intrare este numit arbore surs (arbore de intrare), iar documentul de ieire arbore de ieire. n cadrul XSL sunt definite dou limbaje:
1. XSLT limbaj pentru transformri; 2. XSL Formatting Objects utilizat pentru transformarea documentelor XML n

documente cu format binar precum PDF sau Microsoft Word. Dei sunt dou limbaje al cror scop este diferit, acestea pot fi folosite mpreun n vederea transformrii documentelor XML. Trebuie menionat totui c motoarele XSLT nu suport obligatoriu i XSL Formatting Objects, XSLT fiind practic de sine stttor.
30

Exist trei modaliti (dintre care dou mai importante) n care un document XML poate fi transformat ntr-un alt tip de document prin aplicarea unui stylesheet XSLT:
1. Documentul XML i stylesheet-ul asociat sunt transmise aplicaiei client

(browser-ului) cruia i revine sarcina de a realiza efectiv transformarea n conformitate cu informaia din stylesheet-ul XSLT. n acste condiii ncrcarea serverului scade, dar borwser-ul trebuie s permit procesarea documentelor XML;
2. Aplicarea stylesheet-ului XSLT se face chiar pe server, documentul rezultat

(uzual n format HTML) fiind transmis clientului. Se pot realiza astfel procesri n funcie de natura clientului;
3. Cea de a treia posibilitate este extrem de puin utilizat i se refer la

transformarea documentului XML cu ajutorul unei aplicaii externe i plasarea pe server a documentului rezultat (HTML), urmnd ca acesta s fie transmis clientului. Elementul central al tehnologiei XSLT este template-ul: <xsl:template>. n cadrul acestuia se regsesc dou elemente importante:
1. 2.

atributul match specific o cale n arborele de intrare; coninutul implementeaz modul n care se realizeaz transformarea.

Forma general a unui template este: <xsl:tempate match="element_XPath"> ... <xsl:tempate> Asocierea unui document XML cu un stylesheet XSLT se realizeaz n cadrul documentului XML cu ajutorul instruciunii de procesare <?xml-stylesheet>: <?xml-stylesheet href=stylesheet/Login type=text/xsl /> Argumentul href specific numele stylesheet-ului XSLT i dac este cazul i calea ctre acesta.
31

9.1. XPath Pentru a sistematiza modul n care poate fi accesat un nod dintr-un document XML consoriul W3C a elaborat specificaia pentru limbajul XPath. Trebuie menionat c n cadrul XPath exist noiunea de root al documentului (document root), noiune diferit de cea definit n cadrul capitolului 2. Astfel, se face o distincie foarte clar ntre root-ul documentului i elementul root al documentului XML. Root-ul documentului, prin prisma XPath, este de fapt rdacina arborelui de elemente realeefinite n cadrul documentului.

Root-ul documentului este utilizat la nivel conceptual, neavnd un element corespondent n cadrul elementelor documentului XML, i este reprezentat prin caracterul /. Dac se dorete procesarea nodului <mail-messages> din exemplul de mai sus, atunci trebuie utilizat o expresie XPath de tipul "/mail-messages". Expresiile XPath sunt interpretate de la stnga la dreapta, iar expresia anterioar poate fi neleas ca:
32

"pornind de la root-ul documentului selecteaz elemetul <mail-messages> care este fiu al acestuia (root-ului)". Omiterea caracterului "/" din expresia XPath anterioar schimb radical nelesul acesteia, caz n care "sunt selectate toate elementele <mail-messages> care sunt fii ai nodului curent". n cazul elementelor XPath mai complexe, elementele constituente sunt separate prin caracterul "/", care aa cum se poate observa are o dubl semnificaie n funcie de poziia n care apare n cadrul elementului XPath. Un element XPath precum "/mail-messages/messages/message" permite selectarea tuturor nodurilor <message> care sunt fii ai elementului <messages>, care este fiu al elementului <mail-messages>, care la rndul su este fiu al root-ului documentului. n cadrul elementelor XPath este permis de asemenea i utilizarea atributelor. Pentru a deosebi un element XML de un atribut acestea din urm sunt precedate de caracterul "@". 9.2. Elemente XPath care includ condiii Exist situaii specifice n care un element XPath trebuie s fac o selecie mult mai riguroas a elementelor selectate i tratate n cadrul unui template. Se poate presupune, spre exemplu, c ntr-un anumit context se dorete selectarea doar a elementelor <input> al cror atribut "type" are o valoare diferit de "hidden". Pentru a realiza acest lucru, elementul care va fi filtrat trebuie s fie urmat de filtrul care urmeaz s se aplice. Acesta este alctuit dintr-o pereche de paranteze drepte ([]) care ncadreaz, n mod uzual, o condiie (poate s fie i o condiie compus). 9.3. Transformri XSLT XSLT definete un vocabular, pentru transformarea documentelor XML, care include tag-uri XML pentru arbori, noduri, template-uri i alte elemente necesare pentru ajustarea i transformarea documentelor XML ntr-un alt vocabular markup (sau acelai, cu o alt ordine). 9.3.1. Root-ul stylesheet-ului XSLT
33

Fiecare stylesheet XSLT trebuie s conin un element root care este <xsl:stylesheet> i a crui sintax este prezentat mai jos. <xsl:stylesheet version="numarul_versiunii" xmlns="http://www.w3.org/1999/XSL/Transform" > ... </xsl:stylesheet> n conformitate cu specificaia XSLT definit de ctre consoriul W3C valoarea pentru atributul version este 1.0. n cadrul elemetului <xsl:stylesheet> urmeaz a fi definite toate template-urile ce apar n stylesheet. 9.3.2. Elemente XSLT Elementele XSLT sunt construcii care sunt apelate n cadrul template-urilor i care realizeaz o serie de operaii i prelucrri pe baza arborelui de intrare. <xsl:applay-templates> Elementul <xsl:applay-templates> apare n interiorul elementelor <xsl:template> i este utilizat la apelarea altor template-uri; de obicei este apelat template-ul care se potrivete cel mai bine cu elementul XPath specificat n cadrul atributului opional select. Dac acesta lipsete va fi utilizat nodul context ca punct de pornire. <xsl:value-of> Elementul <xsl:value-of> este utilizat pentru a copia valoarea unui nod din cadrul documentului XML n arborele de ieire. Atributul select specific ce nod urmeaz s fie procesat. <xsl:attribute> <xsl:attribute> este utilizat pentru a genera dinamic un atribut pentru elementul n cadrul cruia este utilizat. Numele atributului care urmeaz s fie adugat este specificat prin intermediul atributului name, iar valoarea acestuia trebuie specificat sub form de nod text n cadrul tag-ului.
34

<xsl:for-each> n unele situaii este necesar ca mai multe elemente din arborele XML de intrare s fie procesate n acelai mod. O alternativ la utilizarea template-urilor o constituie folosirea elementului <xsl:for-each>. Alegerea uneia dintre cele dou opiuni se face n funcie de aplicaie, n majoritatea cazurilor ambele variante putnd constitui soluia problemei. <xsl:variable> Elementul <xsl:variable> permite adugarea de constante n cadrul stylesheeturilor. Definirea unei astfel de constante se poate face n felul urmtor: <xsl:variable name=n>24</xsl:variable> Referirea constantei definite anterior se face prin intermediul unui element XPath: <xsl:value-of select=$n /> Valoarea acesteia este fix i nu mai poate fi modificat prin atribuiri ulterioare. 10. Procesarea condiionat Limbajul XSL pune la dispoziia programatorilor dou modaliti de a modifica ieirea n funcie de datele de intrare. Elementul <xsl:if> permite sau nu (n funcie de ndeplinirea unei condiii) transformarea unui fragment din documentul XML i inserarea rezultatului n cadrul documentului de ieire. <xsl:choose> ofer o soluie mult mai flexibil atunci cnd decizia trebuie luat n funcie de mai multe condiii i care eventual au legtur ntre ele. Dei n multe dintre situaii funcionalitatea celor dou elemente menionate poate fi implementat i prin intermediul template-urilor, n majoritatea cazurilor utilizarea acestora conduce la soluii mai simple i mai clare. Prezentarea ntr-o viziune original a conceptelor i elementelor cu adevrat importante a avut n vedere crearea unei imagini ct mai clare referitoare la tehnologia XSL, tehnologie care are o importan deosebit n procesul de proiectare i implementare a aplicaiilor complexe, bazate pe tehnologia XSP, care utilizeaz biblioteci de tag-uri pentru implementarea logicii aplicaiei.

35

Capitolul II: Parte practic 1. Comentariu saitului Condiia: De a crea un sait a catedrei de Informatica Aplicat folosind limbajul XML.
36

Crearea proiectului logic a saitului ,,Catedra de Informatic Aplicat reprezint o specificaie formal a gramatecii asociat unui limbaj definit n XML, spre exemplu de a reprezenta saitul la ecranul utilizatotului , este necesar de a scrie un program care ar executa aceste elemente aplicate n sait. Spre exemplu pentru a vizualiza acest sait eu am folosit CSS. La saitul preconizat ,, Catedra de Informatic Aplicat avem urmtorul scenario: pe prima pagina a saitului se descrie pe scurt istoricul apariiei catedrei de Informatic Aplicat, cu text cursiv se va scrie titlul saitului. n partea stnga a primii pagini lng fotografia Universitii de Stat vor fi indicate Disciplinele Fundamentale i Disciplinele de specializare propuse de Catedra de Informatic Aplicat. Mai jos de toate aceste ntrun table v-a prezentat orarul consultaiilor pentru studeni. Scopul saitului const n aceia de afia lista profesorilor de la catedra dat: numele fiecrui profesor, funcia pe lung, cursurile de baz i cursurile speciale care sunt predate de acest profesor, telefonul de contact a fiecarui profesor, orarul consultaiilor profesorilor, Disciplinele Fundamentale i Disciplinele de specializare propuse i de include cteva imagini ale Universitii de Stat. Deoarece XML a atras mult atenie din partea creatorilor i utilizatorilor Internetului, n teza dat este vizualizat un sait care este creat pe baza metodologiei XML, de asemenea folosind i HTML. Saitul este creat pe baza urmtorilor pai:
1. Creare paginii de start HTML:

<title> Facultatea Matematica i Informatica </title> 1.1. Creare titlului saitului: <p align=center> <font size="6" color=blue> <marquee behavior=alternate>
37

<b>CATEDRA DE INFORMATICA APLICATA</marquee></b></font> </p> 1.2. Creare legaturilor dintre pagini: < href="exmpl.xml">Lista profesorilor</a> 1.2. Adugarea informaiei despre istoricul apariiei catedrei de Informatic Aplicat: 2. Am creat o pagin XML care are legatur cu pagina de start HTML. 2.1. Este indicat numele fiecrui profesor, funcia, telefonul de contact: <Personal> <Profesor> 1 <a>Nume:<nume> text</nume> </a> <a>Functia:<nume> text</nume> </a> <a>Cursuri:<nume> text</nume> </a> <a>Cursuri Speciale:<nume> text</nume></a> <a>Contact::<nume> number</nume></a> </Profesor> </Personal>

2.2. Am creat fiierul CSS n care am definit toate tegurile i parametrii lor: Personal{background-color: #e6f2ff; width: 100%; border: 1px solid black;}

38

Profesor{background-color: #e6e6e6;display:block; margin-bottom:20pt; font-weight: bold;} a {display:block; {color:navy; font-size:8pt;font-family: Verdana;font-weight: bold;} nume {color:navy; font-size:8pt;font-family: Verdana;font-weight: normal;}} Deci, scopul lucrrii este atins, condiiile sun ndeplinite i saitul dat poate fi aplicat n practic. Legtura cu Internetul nu a fost efectuat deoarece nu a fost pus condiia dat. 2. Codul programului 2.1. Prima pagin <html> <head> <title> Facultatea Matematica si Informatica </title> <img src="top.jpg" align=top width=1000 height=100> <p align=center> <font size="6" color=blue> <marquee behavior=alternate> <b>CATEDRA DE INFORMATICA APLICATA</marquee></b></font> </p> </head> <body vlink="blue"> <A href="exmpl.xml">Lista profesorilor</A> <br> <center>
39

<b><font size="5"><br> <a name="istorie">Istoria Catedrei</a></font></b> </center> <br> <p>Istoria catedrei <p> <hr> <img src="untitled.bmp" align=right hspace="31" vspace="29"> <dt><b><font size="5">Disciplinele Fundamentale</font></b> <dd>1.Informatica<br> 2.Programarea si proiectarea sist. inform<br> 3.Retele de calculatoare<br> 4.Sisteme de operare<br> 5.ACEASM<br> 6.Inteligenta artificiala<br> 7.MS-Office<br> 8.Realizarea Web - resurselor<br> 9.Programarea logica<br> 10.Algoritmica si programare<br> 11.Baze de date<br> 12.Birotica<br> 13.Procesarea informatiei pe retea<br> 14.Aplicatii de gestiune a bazelor de date in baza SGBD Oracle<br> 15.Protejarea informatiei<br> 16.Softul pe retele de calculatoare<br> 17.Internet pentru afaceri<br>
40

18.Baze de date deductive<br> 19.Programarea pe retea <dt><b><font size="5">Disciplinele de specializare</font></b> <dd>1.Aplicatii de gestiune a bazelor de date in baza SGBD Oracle<br> 2.Protejarea informatiei <br> 3.Softul in retele de calculatoare<br> 4.Internet pentru afaceri<br> 5.Baze de date deductive<br> 6.Programarea pe retea<br> <p align=center> <font size="6" color=blue> <marquee behavior=alternate> <b>ORARUL CONSULTATIILOR</marquee></b></font> </p> <table border="4" align=center> <tr> <th>Numele Profesorului</th> <th>Ziua</th> <th>Ora</th> <th>Aula</th> </tr> <td>Bragaru Tudor</td> <td>Joi</td> <td>13.30-14.30</td> <td>417a/4</td> </tr> <tr> <td>Sibirschi Tamara</td> <td>Joi</td>
41

<td>14.00-15.00</td> <td>417a/4</td> </tr> <tr> <td>Arnaut Vsevolod</td> <td>Luni/Joi</td> <td>14.00-15.00</td> <td>217/2</td> </tr> <tr> <td>Clemenco Elena</td> <td>Miercuri</td> <td>10.55-12.55</td> <td>417a/4</td> </tr> <tr> <td>Andros Irina</td> <td>Marti</td> <td>10.55-12.55</td> <td>417a/4</td> </tr> <tr> <td>Siminel Victoria</td> <td>Marti</td> <td>12.30-13.50</td> <td>417a/4</td> </tr> </html>
42

2.2. Pagina a doua <?xml version="1.0"?> <?xml-stylesheet type="text/css" href="book.css"?> <Personal> <Profesor> 1 <a>Nume:<nume> Arnaut Vsevolod</nume> </a> <a>Functia:<nume> Shef de catedra,doctor conferentiar</nume> </a> <a>Cursuri:<nume> Algoritmica si programare, programarea logica</nume> </a> <a>Cursuri Speciale:<nume> Programarea in retea</nume></a> <a>Contact::<nume> 123456</nume></a> </Profesor> <Profesor> 2 <a>Nume:<nume> Andros Irina</nume> </a> <a>Functia:<nume>Lector</nume> </a> <a>Cursuri:<nume> Birotica,Informatica,Baze de date</nume> </a> <a>Cursuri Speciale:<nume> ------</nume></a>
43

<a>Contact::<nume> 123456</nume></a> </Profesor> <Profesor> 3 <a>Nume:<nume> Avros Renata</nume> </a> <a>Functia:<nume> Lector</nume> </a> <a>Cursuri:<nume> Baze de date</nume> </a> <a>Cursuri Speciale:<nume> ------</nume></a> <a>Contact::<nume> 123456</nume></a> </Profesor> <Profesor> 4 <a>Nume:<nume> Bodrug Svetlana</nume> </a> <a>Functia:<nume> Lector</nume> </a> <a>Cursuri:<nume> Baze de date</nume> </a> <a>Cursuri Speciale:<nume>Dezvoltarea aplicailor de gestiune a bazelor de date in baza SGBD Numecle</nume></a>

44

<a>Contact::<nume> 123456</nume></a> </Profesor> <Profesor> 5 <a>Nume:<nume> Bulgari Natalia</nume> </a> <a>Functia:<nume> Lector</nume> </a> <a>Cursuri:<nume>Procesarea informaiei in reea, Programarea logic, Reele de calculatoare, Sisteme de operare, Informatica</nume> </a> <a>Cursuri Speciale:<nume> ------</nume></a> <a>Contact::<nume> 123456</nume></a> </Profesor> <Profesor> 6 <a>Nume:<nume> Cru Iuri</nume> </a> <a>Functia:<nume> Doctor Conferentiar</nume> </a> <a>Cursuri:<nume> Sisteme de operare, ACEASM</nume> </a> <a>Cursuri Speciale:<nume> Protejarea informaiei</nume></a> <a>Contact::<nume> 123456</nume></a>
45

</Profesor> <Profesor> 7 <a>Nume:<nume> Bragaru Tudor</nume> </a> <a>Functia:<nume> Lector</nume> </a> <a>Cursuri:<nume> Retele de calculatoare, Proiectarea i programarea sistemelor informaionale, Realizarea web-resurselor, Internet pentru afaceri</nume> </a> <a>Cursuri Speciale:<nume> ------</nume></a> <a>Contact::<nume> 123456</nume></a> </Profesor> <Profesor> 8 <a>Nume:<nume>Clemenco Elena</nume> </a> <a>Functia:<nume> Lector</nume> </a> <a>Cursuri:<nume> Algoritmica si programare, Baze de datei</nume> </a> <a>Cursuri Speciale:<nume> ------</nume></a>

46

<a>Contact::<nume> 123456</nume></a> </Profesor> <Profesor> 9 <a>Nume:<nume> Crciun Ion</nume> </a> <a>Functia:<nume> Lector</nume> </a> <a>Cursuri:<nume> MS Office, Programarea i proiectarea sistemelor informatice</nume> </a> <a>Cursuri Speciale:<nume> ------</nume></a> <a>Contact::<nume> 123456</nume></a> </Profesor> <Profesor> 10 <a>Nume:<nume> Gorbaticov Veniamin</nume> </a> <a>Functia:<nume> Doctor Conferentiar</nume> </a> <a>Cursuri:<nume> Informatica, Baze de date, Algoritmica si programare</nume> </a> <a>Cursuri Speciale:<nume> ------</nume></a>

47

<a>Contact::<nume> 123456</nume></a> </Profesor> <Profesor> 11 <a>Nume:<nume> Lasai Simion</nume> </a> <a>Functia:<nume> Doctor Conferentiar</nume> </a> <a>Cursuri:<nume> Inteligena artificial, Baze de date, Programarea logic</nume> </a> <a>Cursuri Speciale:<nume>Baze de date deductive</nume></a> <a>Contact::<nume> 123456</nume></a> </Profesor> <Profesor> 12 <a>Nume:<nume> Nicorici Natalia</nume> </a> <a>Functia:<nume> Lector</nume> </a> <a>Cursuri:<nume> Algoritmica i programare, Sisteme de operare</nume> </a> <a>Cursuri Speciale:<nume> ------</nume></a>

48

<a>Contact::<nume> 123456</nume></a> </Profesor> <Profesor> 13 <a>Nume:<nume> Rusu Carolina</nume> </a> <a>Functia:<nume> Lector</nume> </a> <a>Cursuri:<nume> Sisteme de operare, Procesarea informaiei in reea, Informatica, Internet pentru afaceri, Reele de calculatoare, Birotica</nume> </a> <a>Cursuri Speciale:<nume> ------</nume></a> <a>Contact::<nume> 123456</nume></a> </Profesor> <Profesor> 14 <a>Nume:<nume> Sibirschi Tamara</nume> </a> <a>Functia:<nume> Doctor Conferentiar</nume> </a> <a>Cursuri:<nume>lgoritmica i programare, Reele de calculatoare</nume> </a>

49

<a>Cursuri Speciale:<nume> Softul in reele de calculatoare</nume></a> <a>Contact::<nume> 123456</nume></a> </Profesor> <Profesor> 15 <a>Nume:<nume> Siminel Victoria</nume> </a> <a>Functia:<nume> Lector</nume> </a> <a>Cursuri:<nume> Algoritmica si programare, Baze de datei</nume> </a> <a>Cursuri Speciale:<nume> ------</nume></a> <a>Contact::<nume> 123456</nume></a> </Profesor> <Profesor> 16 <a>Nume:<nume> Valentir Angela</nume> </a> <a>Functia:<nume> Lector</nume> </a> <a>Cursuri:<nume> Informatica, Inteligena artificial, Programarea logic, Birotica</nume> </a>
50

<a>Cursuri Speciale:<nume> ------</nume></a> <a>Contact::<nume> 123456</nume></a> </Profesor> <Profesor> 17 <a>Nume:<nume> Vrabie Valeriu</nume> </a> <a>Functia:<nume> Lector</nume> </a> <a>Cursuri:<nume> MS Office, Programe aplicative</nume> </a> <a>Cursuri Speciale:<nume> ------</nume></a> <a>Contact::<nume> 123456</nume></a> </Profesor> <Profesor> 18 <a>Nume:<nume> Putin Vasile</nume> </a> <a>Functia:<nume> Lector</nume> </a> <a>Cursuri:<nume>nteligena artificial, Informatica, Sisteme de operare</nume> </a>

51

<a>Cursuri Speciale:<nume> ------</nume></a> <a>Contact::<nume> 123456</nume></a> </Profesor> <Profesor> 19 <a>Nume:<nume> Zelinschi Cleopatra</nume> </a> <a>Functia:<nume> Lector</nume> </a> <a>Cursuri:<nume> Sisteme de operare, Algoritmica si programare, ACEASM, Reele de calculatoare</nume> </a> <a>Cursuri Speciale:<nume> ------</nume></a> <a>Contact::<nume> 123456</nume></a> </Profesor> </Personal>

Concluzie ntr-un timp scurt de existen oficial, limbajul de marcare XML a atras mult atenie din partea creatorilor i utilizatorilor Internetului. n fiecare zi numrul adepilor
52

limbajului nou de marcare crete progresiv, la fel cum crete i numrul de domenii aplicabile a limbajului XML. Nectnd la faptul c limbajul XML este destul de tnr ca tehnologie a WEB-ului (Organizaia Internaional W3C (WWWConsortium) a acceptat Extensible Markup Language (XML). XML constituie o tehnologie deosebit de importanta care permite o interoperabilitate crescuta a informatiei intre diverse sisteme. Intr-un, peisaj dominat de Internet si de o multitudine de dispozitive conectate la acest mediu de comunicare, XML constituie tehnologia prin intermediul careia datele pot fi transferate pe cele mai diverse platforme. Din aceste considerente, XML este un element central al mai multor medii de dezvoltare a aplicatiilor sau sisteme de gestiune a bazelor de date. XSL este o component important a tehnologiei XML, iar cunoaterea sa reprezint un element esenial n dezvoltarea aplicaiilor bazate pe XML. Transformarea documentelor XML se realizeaz cu ajutorul stylesheet-urilor XSLT care permit procesri complexe oferind dezvoltatorilor o multitudine de elemente i funcii n acest sens. Prezentarea ntr-o viziune original a conceptelor i elementelor cu adevrat importante a avut n vedere crearea unei imagini ct mai clare referitoare la tehnologia XSL, tehnologie care are o importan deosebit n procesul de proiectare i implementare a aplicaiilor complexe, bazate pe tehnologia XSP, care utilizeaz biblioteci de tag-uri pentru implementarea logicii aplicaiei. Crearea unui limbaj universal care s fie nteles de toate echipamentele electrocasnice (frigiderul inteligent, capabil sa realizeze comenzile pe Internet, este astzi o realitate) deosebit de diverse, a constituit o cerina imperioasa. XML este rspunsul la aceste solicitri, constituind practic o nou etapa n evoluia erei informationale si usurnd schimbul datelor ntre echipamente dintre cele mai diverse. XML a aparut i ca o consecinta a limitarilor limbajului HTML (limbajul

53

paginilor Web), acesta fiind practic incapabil s ofere flexibilitatea pentru folosirea datelor n alte aplicaii.

Bibliografie
1. www.google.com 54

2. www.citforum.ru 3. www.wikipedia.com 4. Sabin Buraga ntroducere n tehnologiile XML editura: Polirom, an. ed. 2005 5. Lee Anne Phillips XML editura: Teora, an. ed. 2001 6. Adrian Vasilescu Tehnologiile XML editura: Economica, an. ed. 2005 7. Teodoru Gugoiu HTML, XHTML, CSS i XML prin exemple, editura: Teora,

an. ed. 2005


8. Floare Nstase, Pavel Nstase Tehnologia aplicaiilor XML editura: Economica 9. tefan Trausan-Matu Prelucrarea documentelor XML editura: Teora, an. ed.

2003
10. Gabriel Ciobanu Ce este XML editura: Bucureti, an. ed. 2002 11. Andrei Gaitanaru XML editura: Bucureti, an. ed. 2003

55