Sei sulla pagina 1di 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 XML……………………………………8
1.2. Documente XML……………………………………………………………..9
1.2.1. Regulile de creare a documentului XML…………………………………11
1.2.2. Documente bine formatate şi documente valide………………………….13
1.2.3. Sintaxa documentelor XML………………………………………………13
1.2.3.1. Simbolurile speciale…………………………………………………….14
1.2.3.2. Începutul unui element şi tag-ul de sfîrşit………………………………14
1.2.3.3. Atribute………………………………………………………………….16
1.2.3.4. Comentarii………………………………………………………………16
1.2.3.5. Referinţe la entităţi……………………………………………………...17
1.2.3.6. Instrucţiuni de prelucrare………………………………………………..18
1.2.3.7 Secţiuni CDATA………………………………………………………...19
1.2.3.8 Declaraţia tipului de document…………………………………………..20
1.3. Namespaces…………………………………………………………………...20
2. Definirea tipului de document (DTD)……………………………………………..21
3. Modelul obiectual al documentului (DOM)……………………………………….22
4. Spaţii 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 XML…………………………………………………26
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 condiţii………………………………………….33
9.3. Transformări XSLT…………………………………………………………...33
9.3.1. Root-ul stylesheet-ului XSLT……………………………………………...33
9.3.2. Elemente XSLT…………………………………………………………….34
10. Procesarea condiţionată…………………………………………………………...35
Capitolul II: Parte practică...........................................................................................36
1. Comentariu siteului………………………………………………………………...36
2. Codul programului…………………………………………………………………38
2.1. Prima pagină.......................................................................................................38
2.2. Pagina a doua…………………………………………………………………...42

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

2
Întroducere
Extensible Markup Language, abreviat XML, descie o clasă de obiecte numite
documente XML şi descrie parţial comportamentul unor programe de computer care le
procesează. XML este o aplicaţie profil sau o formă restrictivă a SGML-ului, Standard
Generalized Markup Language [ISO8879]. Prin construcţie, documentele XML se
conformează documentelor SGML.
Documentele XML sunt realizate din unităţi de stocare numite entităţi, ce conţin
date parsate sau neparsate. Datele parsate sunt realizate din caractere, unele dintre ele
formînd 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 constrîngeri 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 conţinutul lor. Se consideră că un procesor
XML îşi face munca în spatele unui alt modul, numit aplicaţie. Această specificaţie
descrie comportamentul cerut unui procesor XML în termeni ce spun cum trebuie să
citească datele XML şi ce informaţii trebuie să-i furnizeze aplicaţiei.
În timp ce HTML este un limbaj markup singular, proiectat pentru satisfacerea unor
anumite cerinţe, XML este o adevărată 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 uşurinţă în XML. În aceste condiţii pe lîngă un mediu de
comunicaţie 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 său de aplicaţii, dar şi prin uşurinţa
utilizării. Faptul că este bazat pe text îl face uşor de utilizat pentru crearea de aplicaţii şi
de unelte pentru dezvoltarea aplicaţiilor; 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: iniţial ele erau stocate în fişiere 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ă iniţial 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 cărei specificaţie a fost dezvoltată începînd cu 1996 în
cadrul Consorţiului 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 experţi din
comunităţile 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 informaţiei astfel încît atît computerele, cît mai
ales oamenii să o poată înţelege.
Scopurile limbajului au fost cele legate de utilizarea lui în Internet, suportînd o varietate
de aplicaţii, dar păstrînd 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 specificaţiei SGML, conceput
pentruimplementare mai uşoară, avînd î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 legăturilor dintre obiectele Internet;
• XPointer - compus dintr-o serie de termeni de localizare relativi la alte
locaţii;

4
3. XSL (eXtensible Stylesheet Language) - limbaj standard al foilor de stil, ca
subset al DSSSL, permiţînd ataşarea de semantici elementelor XML şi transformarea
documentelor XML în alt tip de documente (XML, HTML, MathML etc.);
4. XUA (XML User Agent) - direcţie 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 aplicaţii.
3. XML trebuie să fie compatibil cu SGML.
4. Trebuie să fie uşor scrise programe ce vor procesa documente XML.
5. Numărul facilităţiilor opţionale din XML sunt reduse la minimum, ideal, la zero.
6. Documentele XML trebuie să fie citibile de către utilizatori şi clare într-un mod
rezonabile.
7. Designul XML ar trebui să fie pregătită rapid.
8. Designul XML trebuie să fie formal şi concis.
9. Documentele XML trebuie să fie uşor de creat.
10. Caracterul lapidar din marcajele XML să fie de o importanţă minimă.
1.1 Tehnologiile XML
Deşi 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ă fără a învăţa întreg limbajul, a fost inventat HTML-
ul. HTML-ul este simplu de învăţat şi poate fi utilizat pe multe platforme, dar deşi este
foarte bun în a expune informaţii, 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
informaţii. 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 informaţii 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 indicaţie asupra faptului că
informaţia ar fi structurată.
În schimb, considerînd aceeaşi informaţie 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 conţine
Producator, Model şi Culoare. Cunoscînd structura datelor, putem să facem anumite
operaţii asupra lor, să afişăm doar anumite date, să efectuăm diverse tipuri de căutări etc.
De aceea, în multe cazuri, utilizarea XML-ului este necesară.
Sistemul XML
Un sistem XML este compus din patru părţi generale: documentul XML,
definiţia, tipului de document (DTD = Document Type Definition), analizorul
XML, şi o parte unică, aplicaţia XML. În termeni non-tehnici acestea pot fi numite
conţinut, definiţia structurii, analizor şi aplicaţia.

6
Datele pe care le procesează un sistem XML sunt cele puse la dispoziţie de
documentul XML în care sunt descrise informaţiile folosindu-se sintaxa XML. Pentru a
se asigura faptul că informaţia este reprezentată conform sintaxei XML, documentul este
rulat de către un procesor XML numit analizor XML care verifică corectitudinea
sintactică şi returnează structura informaţiei în memorie. Reprezentarea returnată va fi
disponibilă aplicaţiei XML.
Dacă dorim ca informaţiile dintr-un document să fie specificate într-un anumit
mod, atunci îi vom ataşa documentului un DTD (Document Type Definition). DTD-ul
conţine de fapt un set de reguli prin care se specifică modul în care dorim să fie
structurată informaţia din document.
Dacă se doreşte, analizorul XML poate verifica şi corectitudinea structurală a unui
document XML, prin parcurgerea acestuia vis-à-vis de DTD-ul asociat. Un analizor
citeşte informaţiile din documentul XML şi le face disponibile aplicaţiei XML. Se
presupune că toate analizoarele XML ar trebui să aibă acelaşi comportament, dar în
realitate fiecare are propriile sale particularităţi. Alegerea unui anumit analizor este
importantă şi depinde mai ales de limbajul în care va fi scrisă aplicaţia 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.)
Aplicaţiile XML procesează informaţiile din documentele XML, dar aceasta nu
înseamnă că există limite în ceea ce s-ar putea face cu o aplicaţie. În general, pentru

7
aplicaţii 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 conţinutul şi structura fişierului XML, utilizarea acestei
secţiuni 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 menţionand: HL7 element
specific domeniului sănătaţii sau MathML destinat definirii documentelor care includ
ecuaţii matematice.
În acest mod, folosind aceste DTD-uri precreate, putem organiza informaţia în
domenii specifice mult mai simplu.
3. Pentru particularizarea modului în care vor fi afişate informaţiile din fişierul XML în
browser, este necesar de utilizat foile de stil XSL. Foile de stil au un rol similar cu al
declaraţiilor de formatare din fişierele CSS (Cascading Style Sheet).
În acest mod, veţi putea stabili o structura tabelară de afişare a datelor, culorile şi
fonturile de formatare a informaţiei, precum şi alte elemente de formatare a dalelor
incluse în fişierul XML.

8
Legat de fişierul XML, elementul principal al documentelor în acest format, este
necesar de a face cîteva precizari:
1.Prima linie a fişierului specifică versiunea limbajului XML utilizată, precum şi
codificarea caracterelor folosite în fişier (în cazul nostru a fost utilizat setul de caractere
Unicode).
2. In debutul fişierului XML, se mai pot realiza regulile de definire şi formatare a datelor
în limbajul DTD, acest element nefiind obligatoriu. În situaţia în care doriţi să
întroduceţi declaraţiile DTD, aveţi doua variante: prima, consta în întroducerea acestora
direct în fişierul XML, iar cea de-a doua consta în înserarea declaraţiilor DTD într-un
fişier distinct purtînd aceasta extensie.
3. De asemenea, tot în debutul fişierului, mai pot fi incluse referinţe către foaia de stil
XSL, în acest mod stabilindu-se modul de formatare a documentului.
4. Inceputul propriu-zis al fişierului XML este marcat de eticheta rădăcina, aceasta avînd
o funcţie asemanatoare cu a etichetei <HTML> specificat limbajului HTML
5. Fişierul XML, asemanator cu cel HTML, este echilibrat în ceea ce priveşte 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.
Cuvîntul marcaj (markup) a fost folosit iniţial pentru a descrie anumite adnotări, note
marginale în cadrul unui text cu intenţia de a indica tehnoredactorului cum trebuie listat
un anumit pasaj. Generalizînd, putem defini marcajul drept orice acţiune de a interpreta
explicit o porţiune de text.
Un marcaj este un şir de caractere delimitat de caracterele “<” şi “>”. Datele
caracter reprezintă conţinutul marcajelor.
În XML, marcajele nu sunt folosite pentru afişarea datelor conţinute, ci au alte scopuri
printre care:

9
• asigură o sintaxă simplă şi standardizată pe care analizoarele XML o pot folosi
pentru a utiliza informaţia stocată
• asigură o metodă de a descrie structura ierarhică a conţinutului prin împărţirea
informaţiei (datele caracter) în părţi 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 împărţit în trei secţiuni generale de colecţii de marcaje:
1. Prolog
2. Declaraţia tipului de document
3. Elementul rădăcină
Fiecare dintre aceste secţiuni poate fi mai departe împărţită în structuri mai
detaliate, o reprezentare generală a structurii a unui document XML putînd fi urmărită în
următoarea schemă:

10
1.2.1. Regulile de creare a documentului XML
În linii generale documentele XML trebuie să satisfacă următoarele reguli: XML
(Extensible Markup Language) este un limbaj nou de marcare descendent al SGML,
care permite struturarea informaţiei de diferite tipuri, folosind pentru aceasta un set liber
de instrucţiuni.
Astăzi XML poate fi folosit în orice aplicaţii, care au nevoie de structurare a
informaţiei de la sistemele geoinformaţionale cu un volum enorm de informaţie
transmisă pînă la programele pentru calculatoare personale. Analizînd cu atenţie lumea
informaţională actuală se poate de evidenţiat o mulţime de probleme, legate cu ccrearea
şi prelucrarea informaţiei structurate, pentru rezolvarea cărora poate fi folosit XML:

11
1. La începutul documentului se plasează declaraţia XML, în care se indică limbajul
de marcare, versiunea lui şi informaţia adăugătoare;
2. Fiecare tag începător, ce defineşte o zonă de date în document, obligatoriu trebuie
să aibă perechea sa de tag care închide declaraţia, adică, spre deosebire de HTML nu
se permite omisia tagurilor;
3. În XML se ia în consideraţie 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 stricteţe, din
această cauză e nevoie de urmărit cu atenţie ordinea deschiderii şi închiderii
tagurilor;
6. Toată informaţia ce se conţine între tagul de început şi sfîrşit, reprezintă în XML
datele şi deci se iau în consideraţie toate simbolurile de formatare (spaţiile, trecerea
rîndurilor, 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 descifrării
documentelor XML, vor putea să lucreze corect cu acest document.
Dar pe lîngă controlului formal la corespunderea documentului gramaticii
limbajului, pot fi utilizate mijloace de control al conţinutului şi respectării 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
oricăror documente XML fără frămîntări 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 priveşte 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 atenţi cînd scriem marcajele, astfel de greşeli fiind destul de greu de detectat,
mai ales cînd nu se foloseşte 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ă:
<element />
Există două categorii de documente XML: bine formatate şi documente valide. Un
document XML valid este acel a cărei structură este corectă vis-à-vis de DTD-ul
ataşat.(pot fi valide doar documentele care au ataşat un DTD).
Un analizor efectuează două nivele de verificare a unui document XML. După
verificarea corectitudinii sintactice, analizorul poate verifica dacă conţinutul
documentului este conform setului de reguli din DTD. Dacă conţinutul respectă aceste
reguli atunci spunem despre documentul XML că este valid. Procesul de verificare dacă
un document este valid sau nu se numeşte validare.
1.2.3. Sintaxa documentelor XML
După cum am mai menţionat, un document XML este format din conţinut (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 sfîrşit
2. Atribute

13
3. Comentarii
4. Referinţe la entităţi
5. Instrucţiuni de procesare
6. Secţiuni CDATA
7. Declaraţia tipului de document
1.2.3.1. Simbolurile speciale
Pentru a include în document un simbol, care se foloseşte pentru definirea unei
construcţii î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 sfîrşit

Elementele sunt blocurile de bază ale unui document XML. Pot fi folosite atît
pentru a conţine informaţii, cît şi pentru definirea structurii. Un element începe cu un tag
de start şi se termină cu corespunzătorul tag de sfîrşit.
Tag-ul de start este un singur cuvînt (nu sunt permise spaţiile albe) între
caracterele ‘<’ şi ‘>’. De exemplu, <H1> este tag de start , iar </H1> este tag de sfîrşit.
Trebuie să ţinem minte că XML-ul este case sensitive, din acest motiv următoarele
exemple fiind greşite:
<tag>exemplu</Tag>
sau
<Tag>exemplu</TAG>.
De asemenea, trebuie să ştim că numele unui element nu poate începe cu un
număr şi nici nu poate conţine spaţii, exemple incorecte fiind următoarele <2tag> sau <2
ceva> sau </ ceva>. Elementele nu sunt folosite doar pentru a conţine informaţii, ci şi
pentru a pune în evidenţă structura documentelor XML, după cum se va vedea în
următorul 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> conţin informaţii spre deosebire de
elementele <agenda>, <persoana>, <adresa>, care sunt folosite doar pentru a defini
structura datelor. Prin folosirea lor, datele sunt mai bine organizate, facilitînd
eventualele operaţii de căutare, afişare sau sortare a datelor.
În XML pot fi folosite şi elementele vide (care nu conţin nimic), dar care au o
sintaxă aparte. Dacă de exemplu pentru o persoană nu avem număr 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 aceleaşi 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
spaţii 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 către analizorul XML, la fel ca şi în cazul în care pentru un atribut
nu ar apare şi valoarea acestuia.
Pentru un element pot exista oricîte atribute, atît timp cît sunt declarate corect.
Exemple incorecte sunt următoarele:
<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 aceleaşi ca şi în HTML. Sunt locuri în care scriem note pentru
noi înşine, care nu vor fi expuse utilizatorului. Comentariile sunt ideale pentru ane
aminti despre micile detalii pe care tindem să le uităm în timp ce scriem.
Comentariile vor fi scrise între <!-- şi -->. Un exemplu de comentariu este următorul:
<!-- 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 oricît de lungi,
nu există limite în ceea ce priveşte 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 către analizorul XML
<element>Conţinut ce va fi ignorat</element>
-->
1.2.3.5 Referinţe la entităţi
Referinţele la entităţi sunt de fapt pointeri către entităţi. În XML, entităţile sunt
unităţi 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 referinţelor la entităţi este: &nume_entitate; (‘&’, urmat de numele
entităţii, urmat de ‘;’)
Una dintre cele mai frecvente utilizări ale referinţelor la entităţi este atunci cînd se
doreşte folosirea unor caractere care ar duce la apariţia unor confuzii pentru analizorul
XML şi deci care nu ar trebui să apară în forma lor normală în text. În acest caz există
cinci entităţi predefinite în XML:

În momentul în care analizorul XML întîlneşte referinţa la o entitate în document,


el o va substitui cu datele pe care aceasta le referă şi va returna documentul cu
înlocuirile făcute.
De exemplu, dacă am avea
<comparaţie>
dolarul &gt; leul

17
</comparaţie>
după analizarea textului de către analizorul XML, va rezulta:
dolarul > leul
deci referinţa la entitate a fost substituită cu semnificaţia entităţii respective.
O altă utilizare frecventă a referinţelor la entităţi este în cazul în care avem în
documentul XML fragmente de text care se repetă. Pentru a nu scrie aceste părţi de text
de mai multe ori vom defini o entitate care va avea ca valoare acea parte de text şi de
fiecare dată cînd fragmentul respectiv apare în document vom folosi referinţa la entitate.
Prin folosirea referinţelor la entităţi se vor obţine documente mai scurte şi se va
scurta timpul de redactare.
1.2.3.6 Instrucţiuni de prelucrare
Instrucţiunile de prelucrare sunt un tip special de marcaj care conţin informaţii
despre anumite aplicaţii ce urmează a fi executate. Sintaxa generală a unei instrucţiuni
de procesare ar fi următoarea:
<?aplicaţie instrucţiune=”valoare” ?>
Încep cu <?, urmat de numele aplicaţiei şi de specificarea unor elemente ce ţin de
acea aplicaţie. Numele aplicaţiei trebuie să fie diferit de xml sau XML, sau alte moduri
de scriere a acestui cuvînt, deoarece cuvintele de acest tip sunt rezervate, urmînd a fi
standardizate într-o versiune ulterioară.
Şi declaraţia XML este o instrucţiune de procesare, cu o semnificaţie aparte.
Documentele XML trebuie să înceapă cu o declaraţie XML care specifică versiunea
limbajului XML utilizat. Această declaraţie poate lipsi, dar în cazul în care există, ea
trebuie să fie primul element al documentului şi să fie unică.
În general declaraţia XML este <?xml version=”1.0”?>, dar ea poate conţine ş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 funcţie de lipsa sau existenţa în document a

18
unor referinţe către alte documente care să conţină definiţii ale unor marcaje, atribute
sau entităţi din document.
1.2.3.7 Secţiuni CDATA
Secţiunile CDATA sunt utilizate pentru a include blocuri de text conţinînd
caractere care altfel ar fi recunoscute ca marcaje. Secţiunile CDATA încep cu şirul
<![CDATA[ şi se termină cu şirul ]]>.
Secţiunile CDATA sunt folosite în general atunci cînd dorim ca datele incluse în
interiorul lor să nu fie interpretate de către analizor, ci să fie considerate date caracter.
Astfel de situaţii se întîlnesc cînd 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 cînd dorim să includem marcaje care să fie considerate
drept date caracter şi să fie expuse utilizatorului ca atare. Spre exemplificare,
considerăm un fragment de document XML care conţine informaţii 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 secţiunea CDATA, analizorul va ignora conţinutul 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 restricţie de sintaxă este faptul că în interiorul secţiunilor CDATA nu poate să
apară şirul ’]]’. Încă un lucru de reţinut este că secţiunile CDATA nu pot fi incluse unele
în altele.
1.2.3.8 Declaraţia tipului de document
Declaraţia tipului de document este un marcaj special ce poate fi inclus în
documentele XML cu rolul de a specifica existenţa şi locaţia definiţiei tipului de
document (DTD –Document Type Definition). Trebuie să reţinem că declaraţia tipului de
document şi definiţia tipului de document sunt noţiuni diferite.
DTD-ul este un set de reguli care definesc structura unui document XML, spre
deosebire de declaraţia tipului de document care are rolul de a “spune” analizorului ce
DTD trebuie să folosească pentru verificare şi validare.
Sintaxa declaraţiei tipului de document diferă în funcţie de tipul DTD-ului: intern
sau extern. Considerînd că avem un document XML numit doc.xml, modul de asociere
dintre structura sa şi setul de reguli specificate în reguli.dtd este inserînd în documentul
XML, imediat după declaraţia XML, următoarea declaraţie a tipului de document:
<!DOCTYPE root SYSTEM “reguli.dtd”>
unde ‘root’ este elementul rădăcină al documentului XML, iar ‘reguli.dtd’ este numele
DTD-ului asociat documentului. În cazul în care DTD-ul este intern, declaraţia tipului de
document va avea următoarea formă:
<!DOCTYPE element_rădăcină [
<!-- Setul de reguli-->
]>
1.3. Namespaces
Cum a mai fost spus mai sus, cel mai mare plus a utilizării 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 invenţiile altei persoane. Este posibil cazul, cînd unu
shi acelaşi document va conţine informaţia pentru cîteva 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 greşită a documentului.

Pentru a evita aceste situaţii, trebuie de atribuit denumiri unice elementelor


adăugînd la numele lor un prefix universal, unic şi irepetabil, pentru aceasta se foloseşte
mecanismul Namespaces. Conform acestei specificări, 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, cărui 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 informaţiile î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 respectînd un număr
minim de constrîngeri.
DTD-ul intern se declară imediat după declaraţia XML sau, dacă această
declaraţie nu există, el va fi primul element exceptînd comentariile, spaţiile de nume sau
instrucţiunile de procesare. DTD-ul intern se declară utilizînd cuvîntul cheie
DOCTYPE în modul următor:
<!DOCTYPE element_rădăcină [
declaraţie de elemente, atribute, entităţi, instrucţiuni de procesare, notaţii
]>
DTD-ul extern este definit într-un alt fişier text care trebuie să se afle la o adresă
specificată.
Declaraţia este asemănătoare, 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">
Fişierul "carte.dtd" aflat la adresa specificată în declaraţie conţine definiţiile
elementelor care vor apare în document. Elementul carte trebuie să apară în DTD-ul
specificat. Declaraţia SYSTEM specifică faptul că DTD-ul se află la acea adresă, iar
PUBLIC înseamnă că va fi generat un fişier care va conţine acel DTD.
3. Modelul obiectual al documentului (DOM)
Unul din cele mai puternice interface-uri de acces la conţinutul 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 numeşte rădăcina arborelui documentului.

DOM specificarea accesului de program şi de platformă independent la conţinutul


documentului. DOM reprezintă o metodă strandard de construcţie a modelului oricărui
document HTML şi XML, cu ajutorul căreia se poate de făcut căutarea fragmentelor
necesare, de creat, de exclus şi de modificat elementele lui.

4. Spaţii de nume
Pot apare confuzii atunci cînd se folosesc date din diverse surse elemente, care pot
avea elemente cu acelaşi nume, dar cu semnificaţii diferite, iar pentru evitarea acestor
ambiguităţi sunt folosite spaţiile de nume, astfel încît numele de elemente vor fi
identificate în mod unic, iar validarea se va realiza fără probleme.

22
Necesitatea folosirii spaţiilor de nume se va vedea din exemplul următor:
<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 foloseşte spaţii de nume pentru
evitarea ambiguităţilor ar putea fi următorul:
<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
spaţiilor de nume, iar valoarea atributului său trebuie să fie un URL. Spaţiile de nume se

23
pot declara explicit (ca prefix sau substitut pentru numele complet al unui spaţiu de
nume – o declarare explicită este cea a spaţiului de nume din exemplul anterior), sau
implicit (un spaţiu 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 specificaţie formală a gramaticii asociate unui limbaj
definit în XML, utilă pentru validarea documentelor scrise în acel limbaj. Desigur,
fiecărui 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 decît DTD-urile,
specificaţiile fiind încă în faza preliminară, bazate pe Document Content Description
(DCD) şi XML-Data, ambele în lucru la Consorţiul 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, incluzînd tipul şi
ordinea lor de apariţie. Elementele şi atributele sunt definite în XML Schema prin tag-
urile <ElementType> şi, respectiv, <AttributeType>, iar instanţele lor prin <element> şi
<attribute>, respectiv. Această abordare este similară declaraţiei 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 spaţiu de nume specificat prin xmlns.
Atributul order din definiţia unui tip de element dictează regulile de apariţie a
elementelor în cadrul unui element părinte, putînd avea valorile:
seq - sub-elementele apar în secvenţa 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 apariţia nici unui sub-element (elementul va fi vid).
Fiecărui <ElementType> îi putem asocia atributul content care dictează tipul
conţinutului acestuia:
textOnly - numai text, fără alte sub-elemente;
eltOnly - doar sub-elemente;
mixed - conţinut 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ă următoarele deosebiri principale:
1. Schemele şi DTD-urile utilizează moduri diferite de specificare a conţinutului
documentelor XML. În cadrul unui model XML Schema deschis, un element
poate include definiţii <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 specificaţia XML-Data încă lucrîndu-se în prezent. În cazul DTD,
această flexibilitate nu există.
3. Includerea declaraţiilor de spaţii de nume XML nu poate fi modelată în DTD.
Schemele pot fi extinse, pe cînd DTD-urile prin natura lor sunt fixe.
4. <ElementType> poate avea un unic element descendent, ceea ce în DTD nu se
poate defini în mod strict.

6. Vizualizarea documentelor XML

După cum am mai remarcat, spre deosebire de HTML, XML nu defineşte 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
prezentării acestei informaţii. De exemplu, introducînd 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
informaţie nu este prezentă în definiţia 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. Astăzi, 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 împărţite în


două categorii: verificatoare (care folosesc descrierile DTD pentru definirea
corectitudinii documentului) şi nonverificatoare. Dacă se compune un limbaj propriu şi
descrieţi 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 către programul destinat analizei documentelor XML. În orice
caz, folosind analizatoarele universale XML, e sigur faptul că dacă construcţiile
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 îndeplineşte funcţia de vizualizare.Astfel, după desfacerea
documentului în majoritatea cazurilor, se obţine 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
construcţia documentelor proprii.

La fel, dacă este vorba de desfacere a informaţiei ce se pastrează în documentele


XML, atunci este obligatoriu de menţionat 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
Aşa cum s-a arătat în capitolele anterioare tehnologia XML este foarte puternică şi
utilă. Cu siguranţă că posibilitatea de a transforma cu uşurinţă un document XML într-

29
un alt format precum HTML, WAP, text, etc. a contribuit la creşterea popularităţii
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 comparaţie cu
utilizarea CSS şi, în acelaşi 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 ieşire arbore de ieşire.
În cadrul XSL sunt definite două limbaje:
1. XSLT – limbaj pentru transformări;
2. XSL Formatting Objects – utilizat pentru transformarea documentelor XML în
documente cu format binar precum PDF sau Microsoft Word.
Deşi sunt două limbaje al căror scop este diferit, acestea pot fi folosite împreună
în vederea transformării documentelor XML. Trebuie menţionat totuşi că motoarele
XSLT nu suportă obligatoriu şi XSL Formatting Objects, XSLT fiind practic de sine
stătător.

30
Există trei modalităţi (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 aplicaţiei client


(browser-ului) căruia îi revine sarcina de a realiza efectiv transformarea în
conformitate cu informaţia din stylesheet-ul XSLT. În acste condiţii încărcarea
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 procesări în
funcţie de natura clientului;
3. Cea de a treia posibilitate este extrem de puţin utilizată şi se referă la
transformarea documentului XML cu ajutorul unei aplicaţii externe şi plasarea pe
server a documentului rezultat (HTML), urmînd ca acesta să fie transmis
clientului.
Elementul central al tehnologiei XSLT este template-ul: <xsl:template>. În cadrul
acestuia se regăsesc două elemente importante:
1. atributul match – specifică o cale în arborele de intrare;
2. conţinutul – 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 instrucţiunii 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 către
acesta.

31
9.1. XPath
Pentru a sistematiza modul în care poate fi accesat un nod dintr-un document
XML consorţiul W3C a elaborat specificaţia pentru limbajul XPath. Trebuie menţionat
că în cadrul XPath există noţiunea de root al documentului (document root), noţiune
diferită de cea definită în cadrul capitolului 2. Astfel, se face o distincţie foarte clară
între root-ul documentului şi elementul root al documentului XML. Root-ul
documentului, prin prisma XPath, este de fapt rădacina arborelui de elemente
realeefinite în cadrul documentului.

Root-ul documentului este utilizat la nivel conceptual, neavînd un element


corespondent în cadrul elementelor documentului XML, şi este reprezentat prin
caracterul “/”.
Dacă se doreşte 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 stînga la dreapta, iar expresia anterioară poate fi înţeleasă 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 înţelesul
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 aşa cum se poate observa are o dublă semnificaţie în
funcţie de poziţia î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 rîndul său 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 condiţii
Există situaţii specifice în care un element XPath trebuie să facă o selecţie mult
mai riguroasă a elementelor selectate şi tratate în cadrul unui template.
Se poate presupune, spre exemplu, că într-un anumit context se doreşte selectarea
doar a elementelor <input> al căror 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 alcătuit dintr-o pereche de paranteze drepte
([]) care încadrează, în mod uzual, o condiţie (poate să fie şi o condiţie compusă).
9.3. Transformări XSLT
XSLT defineşte 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 acelaşi,
cu o altă ordine).

33
9.3.1. Root-ul stylesheet-ului XSLT
Fiecare stylesheet XSLT trebuie să conţină un element root care este
<xsl:stylesheet> şi a cărui sintaxă este prezentată mai jos.
<xsl:stylesheet
version="numarul_versiunii"
xmlns="http://www.w3.org/1999/XSL/Transform"
>
...
</xsl:stylesheet>
În conformitate cu specificaţia XSLT definită de către consorţiul 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 construcţii care sunt apelate în cadrul template-urilor şi
care realizează o serie de operaţii şi prelucrări 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
potriveşte cel mai bine cu elementul XPath specificat în cadrul atributului opţional
select. Dacă acesta lipseşte 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 ieşire. 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 căruia este utilizat. Numele atributului care urmează să fie adăugat este specificat

34
prin intermediul atributului name, iar valoarea acestuia trebuie specificată sub formă de
nod text în cadrul tag-ului.
<xsl:for-each>
În unele situaţii este necesar ca mai multe elemente din arborele XML de intrare
să fie procesate în acelaşi mod. O alternativă la utilizarea template-urilor o constituie
folosirea elementului <xsl:for-each>. Alegerea uneia dintre cele două opţiuni se face în
funcţie de aplicaţie, în majoritatea cazurilor ambele variante putînd constitui soluţia
problemei.
<xsl:variable>
Elementul <xsl:variable> permite adăugarea de constante în cadrul stylesheet-
urilor. Definirea unei astfel de constante se poate face în felul următor:
<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 condiţionată
Limbajul XSL pune la dispoziţia programatorilor două modalităţi de a modifica
ieşirea în funcţie de datele de intrare. Elementul <xsl:if> permite sau nu (în funcţie de
îndeplinirea unei condiţii) transformarea unui fragment din documentul XML şi
inserarea rezultatului în cadrul documentului de ieşire. <xsl:choose> oferă o soluţie mult
mai flexibilă atunci cînd decizia trebuie luată în funcţie de mai multe condiţii şi care
eventual au legătură între ele. Deşi în multe dintre situaţii funcţionalitatea celor două
elemente menţionate poate fi implementată şi prin intermediul template-urilor, în
majoritatea cazurilor utilizarea acestora conduce la soluţii mai simple şi mai clare.
Prezentarea într-o viziune originală a conceptelor şi elementelor cu adevărat
importante a avut în vedere crearea unei imagini cît mai clare referitoare la tehnologia
XSL, tehnologie care are o importanţă deosebită în procesul de proiectare şi

35
implementare a aplicaţiilor complexe, bazate pe tehnologia XSP, care utilizează
biblioteci de tag-uri pentru implementarea logicii aplicaţiei.

36
Capitolul II: Parte practică
1. Comentariu sitului
Condiţia: De a crea un sit a catedrei de Informatica Aplicată folosind limbajul XML.
Crearea proiectului logic a sitului ,,Catedra de Informatică Aplicată” reprezintă o
specificaţie formală a gramatecii asociată unui limbaj definit în XML, spre exemplu de a
reprezenta situl la ecranul utilizatotului , este necesar de a scrie un program care ar
executa aceste elemente aplicate în sit. Spre exemplu pentru a vizualiza acest sit eu am
folosit CSS.
La situl preconizat ,, Catedra de Informatică Aplicată” avem următorul scenario:
pe prima pagina a sitului se descrie pe scurt istoricul apariţiei catedrei de Informatică
Aplicată, cu text cursiv se va scrie titlul sitului. În partea stînga a primii pagini lîngă
fotografia Universităţii de Stat vor fi indicate Disciplinele Fundamentale şi Disciplinele
de specializare propuse de Catedra de Informatică Aplicată. Mai jos de toate aceste într-
un table v-a prezentat orarul consultaţiilor pentru studenţi.
Scopul sitului constă în aceia de afişa lista profesorilor de la catedra dată: numele
fiecărui profesor, funcţia pe lung, cursurile de bază şi cursurile speciale care sunt predate
de acest profesor, telefonul de contact a fiecarui profesor, orarul consultaţiilor
profesorilor, Disciplinele Fundamentale şi Disciplinele de specializare propuse şi de
include cîteva imagini ale Universităţii de Stat.
Deoarece XML a atras multă atenţie din partea creatorilor şi utilizatorilor
Internetului, în teza dată este vizualizat un sit care este creat pe baza metodologiei XML,
de asemenea folosind şi HTML.
Situl este creat pe baza următorilor paşi:
1. Creare paginii de start HTML:
<title>
Facultatea Matematica şi Informatica
</title>
1.1. Creare titlului sitului:

37
<p align=center>
<font size="6" color=blue>
<marquee behavior=alternate>
<b>CATEDRA DE INFORMATICA APLICATA</marquee></b></font> </p>
1.2. Creare legaturilor dintre pagini:
< href="exmpl.xml">Lista profesorilor</a>
1.2. Adăugarea informaţiei despre istoricul apariţiei catedrei de Informatică
Aplicată:
2. Am creat o pagină XML care are legatură cu pagina de start HTML.

2.1. Este indicat numele fiecărui profesor, funcţia, 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>

38
2.2. Am creat fişierul CSS în care am definit toate tegurile şi parametrii lor:
Personal{background-color: #e6f2ff; width: 100%; border: 1px solid black;}
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 lucrării este atins, condiţiile sun îndeplinite şi situl dat poate fi
aplicat în practică. Legătura cu Internetul nu a fost efectuată deoarece nu a fost pusă
condiţia 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">

39
<A href="exmpl.xml">Lista profesorilor</A> <br>
<center>
<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>

40
16.Softul pe retele de calculatoare<br>
17.Internet pentru afaceri<br>
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>

41
<td>Sibirschi Tamara</td>
<td>Joi</td>
<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>

42
</tr>
</html>
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>

43
<a>Cursuri Speciale:<nume> ------</nume></a>

<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>

44
<a>Cursuri Speciale:<nume>Dezvoltarea aplicaЕЈilor de gestiune a
bazelor de date in baza SGBD Numecle</nume></a>

<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 informaЕЈiei in reЕЈea, Programarea


logicДѓ, ReЕЈele 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> CДѓrДѓuЕџ Iuri</nume> </a>

<a>Functia:<nume> Doctor Conferentiar</nume> </a>

<a>Cursuri:<nume> Sisteme de operare, ACEASM</nume> </a>

45
<a>Cursuri Speciale:<nume> Protejarea informaЕЈiei</nume></a>

<a>Contact::<nume> 123456</nume></a>
</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 informaЕЈionale, 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>

46
<a>Cursuri Speciale:<nume> ------</nume></a>

<a>Contact::<nume> 123456</nume></a>
</Profesor>

<Profesor> 9

<a>Nume:<nume> Crăciun 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>

47
<a>Cursuri Speciale:<nume> ------</nume></a>

<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> InteligenЕЈa 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>

48
<a>Cursuri Speciale:<nume> ------</nume></a>

<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 informaЕЈiei in


reЕЈea, Informatica, Internet pentru afaceri, ReЕЈele 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>

49
<a>Cursuri:<nume>lgoritmica Еџi programare, ReЕЈele de
calculatoare</nume> </a>

<a>Cursuri Speciale:<nume> Softul in reЕЈele 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>

50
<a>Cursuri:<nume> Informatica, InteligenЕЈa artificialДѓ, Programarea
logicДѓ, Birotica</nume> </a>

<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>

51
<a>Cursuri:<nume>nteligenЕЈa artificialДѓ, Informatica, Sisteme de
operare</nume> </a>

<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, ReЕЈele de calculatoare</nume> </a>

<a>Cursuri Speciale:<nume> ------</nume></a>

<a>Contact::<nume> 123456</nume></a>
</Profesor>
</Personal>

52
Concluzie
Într-un timp scurt de existenţă oficială, limbajul de marcare XML a atras multă
atenţie din partea creatorilor şi utilizatorilor Internetului. În fiecare zi numărul adepţilor
limbajului nou de marcare creşte progresiv, la fel cum creşte şi numărul de domenii
aplicabile a limbajului XML. Necătînd la faptul că limbajul XML este destul de tînăr ca
tehnologie a WEB-ului (Organizaţia Internaţională 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 cunoaşterea sa
reprezintă un element esenţial în dezvoltarea aplicaţiilor bazate pe XML. Transformarea
documentelor XML se realizează cu ajutorul stylesheet-urilor XSLT care permit
procesări complexe oferind dezvoltatorilor o multitudine de elemente şi funcţii în acest
sens.
Prezentarea într-o viziune originală a conceptelor şi elementelor cu adevărat
importante a avut în vedere crearea unei imagini cît mai clare referitoare la tehnologia
XSL, tehnologie care are o importanţă deosebită în procesul de proiectare şi
implementare a aplicaţiilor complexe, bazate pe tehnologia XSP, care utilizează
biblioteci de tag-uri pentru implementarea logicii aplicaţiei.
Crearea unui limbaj universal care să fie înteles de toate echipamentele
electrocasnice (frigiderul inteligent, capabil sa realizeze comenzile pe Internet, este
astăzi o realitate) deosebit de diverse, a constituit o cerinţa imperioasa. XML este
răspunsul la aceste solicitări, constituind practic o nouă etapa în evoluţia erei

53
informationale si usurînd schimbul datelor între echipamente dintre cele mai diverse.
XML a aparut şi ca o consecinta a limitarilor limbajului HTML (limbajul
paginilor Web), acesta fiind practic incapabil să ofere flexibilitatea pentru folosirea
datelor în alte aplicaţii.

54
Bibliografie
1. www.google.com
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 Năstase, Pavel Năstase “Tehnologia aplicaţiilor XML” editura: Economica
9. Ştefan Trausan-Matu “Prelucrarea documentelor XML” editura: Teora, an. ed.
2003
10. Gabriel Ciobanu “Ce este XML” editura: Bucureşti, an. ed. 2002
11. Andrei Gaitanaru “XML” editura: Bucureşti, an. ed. 2003

55

Potrebbero piacerti anche