Xml Tehnologii
CUPRINS
Întroducere………………………………………………………………………………3
Capitolul I: EXtensible Markup Language (XML)…………………………………..4
1. XML – EXtensible Markup Language………………………………………………4
1.1. Tehnologiile XML……………………………………………………………..5
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
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 saitului…………………………………………………………………36
2. Codul programului…………………………………………………………………38
2.1. Prima pagină………………………………………………………………………………………….38
2.2. Pagina a doua……………………………………………………………………42
Concluzie………………………………………………………………………………………………………….52
Bibliografie……………………………………………………………………………..54
=== XML Tehnologii ===
CUPRINS
Întroducere………………………………………………………………………………3Capitolul I: EXtensible Markup Language (XML)…………………………………..4
1. XML – EXtensible Markup Language………………………………………………4
1.1. Tehnologiile XML……………………………………………………………..5
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
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 saitului…………………………………………………………………36
2. Codul programului…………………………………………………………………38
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 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ă 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:
XML (Extensible Markup Language) – subset al specificației SGML, conceput pentruimplementare mai ușoară, avînd în ultima perioadă o dezvoltare extraordinară;
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;
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:
XML trebuie să fie simplu de utilizat pe Internet.
XML trebuie să suporte o mare verietate de aplicații.
XML trebuie să fie compatibil cu SGML.
Trebuie să fie ușor scrise programe ce vor procesa documente XML.
Numărul facilitățiilor opționale din XML sunt reduse la minimum, ideal, la zero.
Documentele XML trebuie să fie citibile de către utilizatori și clare într-un mod rezonabile.
Designul XML ar trebui să fie pregătită rapid.
Designul XML trebuie să fie formal și concis.
Documentele XML trebuie să fie ușor de creat.
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>
<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.
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:
IBM XML Parser pentru Java
DataChannel Parser pentru Java (XJParser)
Sun XML Parser pentru Java
Expat
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 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:
Fisierul propriu-zis XML, care include setul de etichete si informatiile care sunt transmise prin intermediul acestuia
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.
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.
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:
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:
Prolog
Declarația tipului de document
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ă:
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:
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.
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:
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.
fiecare tag deschis trebuie închis, în caz contrar analizorul XML va semnala eroare.
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.
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:
Începutul unui element și tag-ul de sfîrșit
Atribute
Comentarii
Referințe la entități
Instrucțiuni de procesare
Secțiuni CDATA
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, < > " sau $ (forma zecimală de scriere),  (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:
<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).
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.
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 > leul
</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 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.
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 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:
<!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.
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 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" />
<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.
5.2. Deosebirele dintre XML Schema și DTD
Între XML Schema și DTD există următoarele deosebiri principale:
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.
Î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ă.
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.
<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 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.
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.
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-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:
CSS- Cascading Style Sheet;
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:
XSLT – limbaj pentru transformări;
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.
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:
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;
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;
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:
atributul match – specifică o cale în arborele de intrare;
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.
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: "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).
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 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 implementare a aplicațiilor complexe, bazate pe tehnologia XSP, care utilizează biblioteci de tag-uri pentru implementarea logicii aplicației.
Capitolul II: Parte practică
1. Comentariu saitului
Condiția: De a crea un sait a catedrei de Informatica Aplicată folosind limbajul XML.
Crearea proiectului logic a saitului ,,Catedra de Informatică Aplicată” reprezintă o specificație 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 următorul scenario: pe prima pagina a saitului se descrie pe scurt istoricul apariției catedrei de Informatică Aplicată, cu text cursiv se va scrie titlul saitului. Î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 saitului 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 sait care este creat pe baza metodologiei XML, de asemenea folosind și HTML.
Saitul este creat pe baza următorilor pași:
Creare paginii de start HTML:
<title>
Facultatea Matematica și Informatica
</title>
Creare titlului saitului:
<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>
Adăugarea informației despre istoricul apariției catedrei de Informatică Aplicată:
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>
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 saitul 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">
<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>
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>
<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>
</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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
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 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.
Bibliografie
www.google.com
www.citforum.ru
www.wikipedia.com
Sabin Buraga “Întroducere în tehnologiile XML” editura: Polirom, an. ed. 2005
Lee Anne Phillips “XML” editura: Teora, an. ed. 2001
Adrian Vasilescu “Tehnologiile XML” editura: Economica, an. ed. 2005
Teodoru Gugoiu “HTML, XHTML, CSS și XML prin exemple”, editura: Teora, an. ed. 2005
Floare Năstase, Pavel Năstase “Tehnologia aplicațiilor XML” editura: Economica
Ștefan Trausan-Matu “Prelucrarea documentelor XML” editura: Teora, an. ed. 2003
Gabriel Ciobanu “Ce este XML” editura: București, an. ed. 2002
Andrei Gaitanaru “XML” editura: București, an. ed. 2003
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Xml Tehnologii (ID: 149271)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
