XML si SOAP

25
Capitolul 2 XML şi SOAP 2.1. Introducere în XML. Concepte de bază De fiecare dată când este aplicată unei tehnologii o problemă de integrare a aplicaţiei, a apărut un şablon: acest şablon a fost denumit arhitectură orientată spre servicii SOA – service – oriented architecture. De la introducerea sa în 1998, Extensible Markup Language (limbaj de marcare extensibil – XML) a revoluţionat modul în care gândim structurarea, descrierea şi schimbul de informaţii. Modurile în care XML este utilizat în industria software sunt multe şi în continuă creştere. Toate tehnologiile cheie de servicii Web se bazează pe acesta: Utilizează software-ul dvs. SAX, DOM, JAXB, JAXP, JAXM, JAXR? XML se află într-o permanentă schimbare şi evoluţie. Multe din tehnologiile XML nu sunt relevante pentru esenţa discuţiei, dar în cazul tehnologiilor studiate, sunt relevante câteva concepte de bază: originile XML şi diferenţa fundamentală dintre aplicaţiile XML centrate pe document şi cele centrate pe date; sintaxa şi regulile ce guvernează XML; mecanismul cheie pentru crearea şi procesarea XML utilizând software Java. Inspiraţia de design XML a venit din două surse: Standard Generalized Markup Language – SGML

Transcript of XML si SOAP

Page 1: XML si SOAP

Capitolul 2

XML şi SOAP

2.1. Introducere în XML. Concepte de bază

De fiecare dată când este aplicată unei tehnologii o problemă de integrare a aplicaţiei, a

apărut un şablon: acest şablon a fost denumit arhitectură orientată spre servicii SOA – service –

oriented architecture.

De la introducerea sa în 1998, Extensible Markup Language (limbaj de marcare extensibil –

XML) a revoluţionat modul în care gândim structurarea, descrierea şi schimbul de informaţii.

Modurile în care XML este utilizat în industria software sunt multe şi în continuă creştere. Toate

tehnologiile cheie de servicii Web se bazează pe acesta: Utilizează software-ul dvs. SAX, DOM,

JAXB, JAXP, JAXM, JAXR?

XML se află într-o permanentă schimbare şi evoluţie. Multe din tehnologiile XML nu sunt

relevante pentru esenţa discuţiei, dar în cazul tehnologiilor studiate, sunt relevante câteva concepte

de bază:

originile XML şi diferenţa fundamentală dintre aplicaţiile XML centrate pe document şi

cele centrate pe date;

sintaxa şi regulile ce guvernează XML;

mecanismul cheie pentru crearea şi procesarea XML utilizând software Java.

Inspiraţia de design XML a venit din două surse:

Standard Generalized Markup Language – SGML

HTML

Conceptul de marcaj generalizat GM - Generalized Markup există de câteva decenii.

Implică utilizarea etichetelor (tags) pentru identificarea porţiunilor de informaţie. Etichetele sunt

denumiri înconjurate de paranteze ascuţite.

SGML este un metalimbaj. Nu prescrie un marcaj anume; dar defineşte modul în care orice

limbaj de marcare dat poate fi specificat formal. Cea mai populară aplicaţie SGML este HTML,

limbajul de marcare ce domină Web-ul.

Page 2: XML si SOAP

2.2. Elemente de bază ale unui document HTML

Elementele de bază care diferenţiază un document HTML de cele obişnuite sunt etichetele.

Există mai multe tipuri de etichete:

etichete prin care se defineşte structura ierarhică a documentului şi modul de afişare

pe ecran (titlu, antet, corp, structura de capitole, subcapitole, secţiuni ale documentelor,

puncte de inserţie a unor imagini grafice în document, sublinieri, zone preformatate)

etichete prin care se definesc legături la alte locaţii de resurse definite prin intermediul

URL-urilor.

Sintaxa generală a unei etichete este:

< etichetă > Obiect </etichetă >- etichetă pereche ;

< etichetă > Obiect - etichetă singular.

Documentul HTML începe cu eticheta <HTML> a cărei pereche </HTML> se află chiar la

sfârşitul documentului. Aceasta nu are o semnificaţie importantă, doar informează browserul că

documentul este scris conform specificaţiilor HTML.

Fiecare document HTML trebuie să aibă un titlu, care va apărea între etichetele <TITLE> şi

respectiv </TITLE>. Titlul de obicei apare separat de document şi rămâne mereu afişat pe ecran,

jucând rolul de identificator al documentului.

Etichetele <HEAD>, respective </HEAD> şi <BODY>, respective </BODY> separă

documentul într-o parte informativă şi textul propriu-zis ele neschimbând deloc aparenţa

documentelor formatate, fiind însă utile în numeroase cazuri. În cazul etichetei <BODY>, în

interiorul acestuia se poate preciza prin BACKGROUND = imagine, un fundal grafic anume.

HTML are şase niveluri de titluri (numerotate de la 1 la 6), 1 fiind cel mai important. Titlurile sunt

afişate cu fonturi diferite de corpul textului. Primul titlu în fiecare document este <H1>. Sintaxa

este:

<Hx> Text </Hx>, unde x=1, 2, 3, 4, 5, 6.

HTML nu ţine seama de sfârşitul de linie (CRLF), de spaţii multiple sau de tabulatori, ca

celelalte procesoare de texte. Lungimea unei linii depinde de setarea browserului respectiv, de

opţiunea celui care se uită la text.

Dacă în text dorim să trecem la un rând nou, folosim eticheta <BR>, iar dacă dorim

generarea unei linii orizontale pa ecran folosim eticheta <HR>.

Elementul esenţial într-un document HTML este paragraful, etichetat cu <P>, pus la sfârşitul

secvenţei de linii. Fără această etichetă, întreg documentul devine un singur mare paragraf.

Page 3: XML si SOAP

2.3. Legături relative şi absolute în HTML

Puterea HTML-ului reiese din abilitatea de a lega părţi din text sau imagini cu alte

documente sau imagini, aflate pe calculatorul local sau la distanţă. Aceste legături sunt supra

luminate şi/sau subliniate de browser pentru ca utilizatorul să le identifice cu uşurinţă.

Singura etichetă pentru legături este <A>, numită şi ancoră (anchor). O ancoră poate fi de

două feluri:

de numire a unui anumit punct din document, care poate fi apoi referit, specificată prin

atributul NAME;

de referinţă la un alt document, folosind atributul HREF.

Exemplu: <A HREF= „index.html” > Index </A>

Această etichetă <A> face ca textul „Index” să apară pe ecranul celui care citeşte

documentul ca hiperlegătură spre documentul index.html, aflat în directorul documentului. Se pot

face legături cu documente care se află în alte directoare, specificând directorul relativ de la

documentul curent la cel spre care se face legătura, astfel:

<A HREF = „/doc/doc.html” > Documente </A>

În acest caz am folosite o legătură cu documentul doc.html, aflat în directorul /doc,

directorul curent. Există şi posibilitatea folosirii legăturilor absolute, adică specificând URL-ul

documentului cu care se doreşte hiperlegătura, ca în exemplul:

<A HREF= „http://www.infocib.up.ro/index.html> Index </A>

Ancorele pot fi folosite şi pentru referirea unei anumite secţiunii din cadrul unui document

sau din documentul curent. Pentru aceasta, secţiunea respectivă trebuie numită: < A NAME =

„nume_secţiune” ></A>, referirea făcându-se astfel:

<A HREF= „#nume_secţiune” > Secţiune </A>, dacă se face referire la o secţiune din cadrul

documentului curent sau

<A HREF= „nume_document#nume_secţiune” > Secţiune </A>, dacă se face referire la o

secţiune din alt document (nume_document).

2.4. Comenzi HTML

Realizarea unui document HTML este obligatorie pentru utilizatorii care vor să facă o

informaţie accesibilă prin WWW. Astfel, au apărut o serie de programe menite să-l asiste pe cel ce

elaborează sau pregăteşte un document sau un set de documente pentru WWW.

S-a arătat că HTML este o modalitate standard de a structura un document hipertext, astfel

încât documentul iniţial să poată fi vizualizat într-un mod foarte apropiat de forma originală pe

orice platformă hardware sau software.

Page 4: XML si SOAP

Documentele HTML sunt texte obişnuite, create cu orice editor de text (de exemplu, emacs

sau vi pentru maşini Unix), iar structurarea se face folosind nişte etichete – secvenţe speciale care se

inserează în text care au semnificaţii clare, pe care orice viewer trebuie şi le respecte.

În continuare voi ilustra cele mai utilizate comenzi HTML, împreună cu un mic exemplu de

utilizare a acestora. Cele mai frecvent folosite comenzi HTML pot fi consultate în mod real în

crearea unui document HTML fără asistenţa unui editor specific HTML – pentru acest gen de

documente.

HTML-ul reprezintă de fapt, o colecţie de diverse stiluri definite prin nişte etichete de

marcare numite tag, care determină elementele unui document din WWW. De fapt, un document

Web este constituit de un fişier text ce conţine etichete de tip HTML, el putându-se dezvolta cu

orice editor de texte ASCII sau cu editoare specializate HTML.

Se ştie că elementul de bază luat în considerare de browser (client) este paragraful, asupra

căruia clientul efectuează:

o operaţie de autoflow (încadrare) împreună cu o mişcare de la stânga la dreapta şi de

sus în jos, în scopul încadrării conţinutului într-o fereastră de dimensiuni date. Paragraful

poate conţine atât text, cât şi text şi figuri;

o operaţie de autowrapping, trunchierea automată a şirului de caractere, atunci când se

depăşeşte lăţimea ferestrei şi continuarea pe rândul următor.

În continuare, sunt enumerate comenzile HTML cu litere mai îngroşate, arătându-se pentru

fiecare situaţia în care se utilizează etichetele de început şi de sfârşit şi în final un scurt exemplu.

Etichetele-perechi au sintaxa: <tag>obiect</tag>, iar etichetele singulare au sintaxa

<tag>obiect. Dacă există opţiuni, ele sunt menţionate pentru ambele tipuri de etichete sub forma:

<tag opt1 opt2… optn>obiect</tag>.

Departe de a fi un standard, HTML este un DTD (Document Type Definition) specific, ce

defineşte un document WWW şi este o colecţie de stiluri care au o semnificaţie acceptată, folosind

SGML (Standard Generalized Markup Language). SGML poate fi gândit ca un limbaj de

programare pentru formatarea textului, iar DTD este o implementare a descrierii unui anumit tip de

document utilizând SGML. Astfel s-a fixat ce semnificaţie trebuie să aibă fiecare etichetă în parte.

Page 5: XML si SOAP

Organizarea paginilor unui Site poate fi:

Liniară

Ierarhică

În reţea

Combinat

Page 6: XML si SOAP

Aplicaţii pentru crearea paginilor Web

Pentru realizarea paginilor HTML se pot folosi:

Editoare de texte obişnuite: Notepad, Wordpad, Word

Editoare HTML ( ex HomeSIte încărcat de la www.allaire.com) sau editorul Netscape

(Communicator sau Composer)

Editoare în mod grafic: Microsoft FrontPage

Primele două tipuri de editoare necesită cunoştinţe de HTML şi un program de navigaţie

pentru a vedea rezultatul.

Deoarece în cele ce urmează se va folosi Word Pad (inclus în pachetul de aplicaţii

Accesories din Windows) se recomandă modificarea opţiunii Word wrap (View / Option)

Pagina conţine două secţiuni:

Page 7: XML si SOAP

Secţiunea head (cuprinsa între <HEAD> şi </ HEAD> conţine antetul paginii . Ea

furnizează un ansamblu de inforaţii legate de pagina Web, de exmplu: titlul paginii, cuprins între

marcajele <TITLE> şi </TITLE>, afişat pe bara de titlu a ferestre browserului,fişierul conţinând

secvenţa sonorăă care va fi reprodusă în momentul încărcării paginii, indicat cu ajutorul marcajului

BGSOUND: <BGSOUND SRC=”lotd.wav” LOOP=”-1”>, etc

Secţiunea body ( cuprinsă între <BODY> şi </BODY> ) conţine corpul paginii.

1. BODY (CORP)

Utilizare: Demarchează corpul documentului faţă de antet (header)

Tag de început: <body>

Tag de sfârşit: </body>

Exemplu: <head>

<title>Titlul Documentului</title>

</head>

<body>

Această linie reprezintă corpul documentului.

</body>

Cele două secţiuni cuprinse între marcajele <HTML> şi </HTML> care marchează

începutul respectiv sfârşitul paginii.

2. HEADER (ANTET)

Utilizare: Face demarcaţia între antetul şi corpul documentului

Tag de început: <head>

Tag de sfârşit: </head>

Exemplu: Vezi exemplul de la BODY

3. HEADING1 (TITLU MAJOR 1)

Utilizare: Titlu de antet din interiorul documentului

Tag de început: <h1>

Tag de sfârşit: </h1>

Exemplu: <h1>Facultăţile din U.P.</h1>

4. TITLES (TITLU)

Utilizare: Plasat în interiorul unui antet creează un titlu care este afişat pe bara de titlu.

Tag de început: <title>

Tag de sfârşit: </title>

Exemplu: <title>CREAREA UNUI DOCUMENT</title>

5. HTML (HTML)

Page 8: XML si SOAP

Utilizare: Demarchează porţiunea de document codificată cu HTML

Tag de început: <html>

Tag de sfârşit: </html>

Exemplu: <html>

<head>

<title>Titlul documentului</title>

</head>

<body>

Această linie reprezintă întregul corp al documentului

</body>

</html>

Introducerea şi formatarea textului

Marcajele uzuale pentru formatarea textului sunt:

6. <BR> - marcaj trecere forţată la linie nouă;

FORCED LINE BREAK (FORŢAREA SFÂRŞITULUI DE LINIE)

Utilizare: Acest tag se utilizează atunci când se doreşte să nu existe o linie

vidă între două linii consecutive

Tag de început: <br>

Tag de sfârşit: Niciunul

Exemplu: Strada Universităţii nr. 20 <br>

2685 Petroşani </br>

7. <NOBR>…</NOBR>- interzice trecerea la linie nouă

8. <P>… . </P> -marcaj paragraf. Acest marcaj admite atributul ALIGN prin care se

impune tipul de aliniere a textului (LEFT – stânga, CENTER – centrat, RIGHT – dreapta)

Page 9: XML si SOAP

9. <H1>…</H1> - marcaj de titlu (heading). Ca şi in Word se pot folosi marcaje diferite

pentru titluri de diferite nivele: H1, H2, …, H6. Nivelul 4 coincide cu textul normal. Marimea

caracterelor pentru nivelele 5 şi 6 este mai mică decât cea normală. Şi acest marcaj admite atributul

ALIGN:

<H1ALIGN=CENTER>Creşterea</H1>

10. <CENTER>...</CENTER> - determină centrarea textului cuprins între marcaje. Titlul

de mai sus se poate scrie şi folocind acest marcaj:

<H1> <CENTER>Creşterea</CENTER></H1>

11. <PRE>...</PRE> - se foloseşte pentru a transmite programului de navigaţie că pentru

zona de text cuprinsă între marcaje spaţiile şi caracterele CR (RETURN sau ENTER) trebuie

respectate. De regulă programele de navigaţie ignoră aceste caractere, formatarea făcându-se numai

folosind informaţiile furnitzte de marcaje. Pentru tastarea textului nu se va folosi un font

proporţional ci fontul Courier New pentru care toate caracterele au aceeaşi laţime.

12. PARAGRAPH (PARAGRAF)

Utilizare: Se începe un nou paragraf

Tag de început: <p>

Tag de sfârşit: niciunul

Exemplu: S-a ajuns la sfârşitul unui paragraf<p>

13. PREFORMATTED TEXT (TEXT PREFORMATAT)

Utilizare: Reţine sfârşiturile de linie şi spaţierea între rânduri

Tag de început: <pre>

Tag de sfârşit: </pre>

Exemplu: <pre> Activitate Descriere

CO251 Introducere în Sisteme de Operare

CO261 Introducere în Teleinformatică

CO301 Inteligenţă Artificială

</pre>

14. RULE (LINIE)

Utilizare: Adaugă o linie orizontală în document

Tag de început: <hr>

Tag de sfârşit: </hr>

Exemplu: <h3>Grupa CB31</h3>

Page 10: XML si SOAP

15. Adăugarea de spaţii suplimentare în alte cazuri se va realliza prin includerea pentru

fiecare spaţiu suplimentar a şirului de caractere “&nbsp”. Similar, se procedează şi pentru

adăugarea unui caracter special (de exemplu a caracterelor româneşti). Dacă pagina este redactată

cu Netscape Composer, inserarea unui carcter special se va face selectând Tools / Character Tools /

Insert Special Character.

16. În Word Pad pentru caracterele româneşti din tabel se tastează:

&icirc – pentru î

&acirc – pentru â

&atilde – pentru ă

&Acirc – pentru Â

&Icirc – pentru Î

Astfel textul « doi români într-o gară » va fi scris « doi rom&acirc ;ni &icirc ;ntr-o

gar&atilde ;  »

17. Marcajul < !--…--> permite scrierea în pagina Web a unui comentariu.

Exemplu: < !—Mai trebuie o poză şi gata-->

Marcaje pentru modificarea aspectului textului:

18. TEXT ATTRIBUTES (ATRIBUTE DE TEXT)

Utilizare: Adaugă în document stiluri fizice (îngroşat, cursiv, subliniat) şi stiluri

logice (ce permit autorului să formateze textul expresiv, sau foarte expresiv)

Tag de început: <em>; stil logic pentru text accentuat

<strong>; stil logic pentru text foarte accentuat

Page 11: XML si SOAP

<b>, <i>, <u>; pentru stiluri fizice

Tag de sfârşit: </em>; stil logic pentru text accentuat

</strong>; stil logic pentru text foarte accentuat

</b>, </i>, </u>; pentru stiluri fizice

Exemplu: Acest lucru este foarte important: <em>Întotdeauna să priveşti înainte atunci

când eşti la volan.

</em> <strong> Întotdeauna.</strong>

Textul accentuat este mai vizibil decât textul normat, iar textul foarte accentuat este şi mai

expresiv decât orice altă reprezentare.

19. < B>…</B> - pentru marcarea textului de scris bold;

BOLD (ÎNGROŞAT)

Utilizare: Afişează caracterele îngroşate

Tag de început: <b>

Tag de sfârşit: </b>

Exemplu: Afişează <b>chmod +x Mosaic-sun </b> şi apoi apasă ENTER

20. < I>…</I> - pentru marcarea textului de scris înclinat (Italic);

ITALICS (CARACTERE ÎNCLINATE)

Utilizare: Afişează caractere cursive (înclinate)

Tag de început: <i>

Tag de sfârşit: </i>

Exemplu: <i>Catedra de Birotică</i>, Colegiul Universitar Tehnic şi de

Administraţie

21. < STRIKE>…</STRIKE > pentru marcarea textului care se scrie barat;

22. < U>…</U> - pentru marcarea textului care se scrie subliniat;

Utilizare: Afişează caracterele/textul subliniat

Tag de început: <u>

Tag de sfârşit: </u>

Exemplu: <u>LUCRUL CU DOCUMENTELE</u>

23. < SUP>…</SUP >- pentru marcarea textului care se scrie la exponent;

24. < SUB>…</SUB>- pentru marcarea textului care se scrie la indice;

25. < BIG >…</BIG > - pentru marcarea textului care se scrie mărit;

26. < SMALL>…</SMALL>- pentru marcarea textului care se scrie micşorat;

Page 12: XML si SOAP

27. < FONT FACE=”…”>…</FONT> determină schimbarea fontului current. Între

ghilimele se inroduce numele fontului dorit şi eventual unul sau mai multe fonturi de substituţie

dacă pe calculatorul care afişează pagina primulfont nu este instalat.

28. < BASEFONTSIZE=”n”> se introduce înaintea texxtului paginii şi impune mărimea

fontului. Numărul n este o valoare între 1 (Scrisul cel mai mic) şi 7 (scrisul cel mai mare). Textele

marcate ca şi tiuri (cu <H>) nu sunt afectate.

29. < FONT SIZE=”n”>…</FONT> determină scrierea textului cuprins între marcaje cu

caractere de mărimea n.Mărimea este o valoare între 1 (caracterele cele mai mici) şi 7 (caractereele

cele mai mari). Valoarea 3 este cea implicită.

30. < TT>…</TT> - determină imprimarea textului dintre marcaje cu caractere de aceeaşi

lăţime ca şi cele imprimate cu o maşină de scris.

Modificarea culorilor:

31. < BODY TEXT=”#rrggbb”>…</BODY> schimbă culoarea scrisului pentru toată

pagina. Codul #rrggbb arată combinaţia de roşu (rr), verde (gg) şi albastru (bb) care se va folosi.

Valorile sunt hexazecimale, deci sunt cuprinse între 00 şi FF.

32. < BODY BGCOLOR=”#rrggbb”>…</BODY> schimbă culoarea fondului pe toată

pagina.

33. < FONTCOLOR=”#rrggbb”>…</FONT> impune textului dintre marcaje culoarea

#rrggbb

34.ADRESS (ADRESĂ)

Utilizare: Iniţial folosită ca format pentru informaţia de contact în partea de jos a

paginii, ea poate fi folosită şi la poziţionarea unui paragraf într-un mod diferit faţă de restul paginii.

Textul apare cu litere cursive.

Tag de început: <address>

Tag de sfârşit: </address>

Exemplu: <address>Petroşani, 3 Noiembrie 2000</address>

35.ANCHOR (ANCORĂ)

Page 13: XML si SOAP

Utilizare: Creează o hiperlegătură

Tag de început: <a href =,,puneţi aici URL-ul”>

Tag de sfârşit: </a>

Exemplu: <A HREF=,,http://www.infocib.up.ro”>Serverul WWW din U.P. </A>1

36-37. Marcaje pentru descrierea listelor

Marcajele HTML permit definirea mai multor tipuri de liste:

A. Lista ordonată este declarată prin marcajul <OL>(ordered list) şi are rândurile

numerotate. Fiecare linie este precedată de un marcaj <LI>

Numerotarea liniilor este automată. Pentru a începe de la o altă valoar, marcajul <OL> I se a

adăuga atributul START=n, n fiind numărul dorit pentru prima linie a listei.

Lista ordonată poate fi numerotată folosind litere sau cifre romane. Pentru acestea se va

adăuga marcajul <OL> atributul TYPE=s, s fiind unul dintre simbolurile:

TYPE Rezultat

TYPE=A A,B,C

TYPE=a a,b,c

TYPE=I I,II,III

TYPE=i i,ii,iii

TYPE=1 1,2,3

Page 14: XML si SOAP

B. Lista neordonată este declarată prin marcajul <UL>(unordered list) şi are rândurile

precedate de puncte. Fiecare linie este precedată de un marcaj <LI>

Aspectul punctului pus în faţe fiecărei linii poate fi scchimbat prin folosirea atributului

TYPE=v, v fiind circle, disc sau square.

Listele pot avea în interior alte liste.

C. Lista care conţine definiţii este declarată prin marcajul <DL>(definition list) şi are

rândurile precedate de marcaje <DT> pentru titlri şi <DD> pentru definiţii.

Imaginile incluse în paginile eb pot proveni din diverse surse: alte pagini Web,

scanate,desenate cu ajutorul unei aplicaţii.

Rezoluţia imaginii, cuprinsă uzual între 72 dpi şi 600 dpi influenţează mărimea fişierului

care conţine imaginea.

Lăţimea imaginii nu se recomandă să depăşească 620 pixeli (puncte) deoarece nu va putea fi

afişată pemonitoare care au o rezoluţie mai scăzută

Formatul fişierului în care s-a memorat imaginea trebuie să fie GIF (extensia *.gif, imagini

până la 256 de culori) sau JPEG( 224 = 16777216 culori, fişiere cu extensia jpg)

Dacă aceeaşi imagine este folosită pe mai multe pagini, programul de navigaţie o va încîrca

în memorie temporar reducând timpii de încărcare a paginilor.

1. Adăugarea imaginilor într-o pagină se realizează folosind marcajull <IMG>:

38. IN-LINE IMAGE (IMAGINE ÎN LINIE)

Utilizare: Afişează un grafic în interiorul documentului

Tag de început: <img src="Poziţionaţi aici URL-ul">

Tag de sfârşit: Niciunul

Exemplu: <img src="file:///c:\mosaic\heart.gif">

Page 15: XML si SOAP

Daca pagina Web şi fişierul care conţine imaginea sunt în acelaşi dosar este suficientă

introducerea numelui acestuia. Dacă imaginea este într-un dosar derivat trebuie indicată calea

folosind separatorul caracter /

Includerea unui banner:

Încadarea unei imagini (adăugarea unui chenar) se indică prin adăugarea atributului

BORDER=n,n fiind lăţimea chenarului

În pixeli.

<IMG SRC=”mark.gif” BORDER=8>

Programele de navigaţie permit suprimarea afişării imaginilor paginilor. În acest mod se

câştigă în viteză. N marcajul <IMG> se poate include ca şi atribut textul care săfie afişat în locul

imaginii, dacă afişarea imaginilor a fost inactivată.

Page 16: XML si SOAP

2.5. Procesarea XML

Arhitectura de procesare XML de bază constă în trei straturi cheie:

în partea stângă extremă se găsesc documentele XML cu care o aplicaţie are

nevoie să lucreze;

în partea dreaptă extremă se află aplicaţia;

în mijloc se găseşte stratul de infrastructură pentru lucrul cu documentele XML.

Pentru ca o aplicaţie să poată lucra cu un document XML, trebuie mai întâi să îl poată

analiza. Analiza este un proces care implică împărţirea textului unui document XML în porţiuni

mici de identificare denumite noduri. Analizoarele vor împărţi documentele în poţiuni precum

etichetele de început / sfârşit, perechile atribut-valoare, bucăti de conţinut de text, instrucţiuni de

procesare, comentarii etc.

Aceste porţiuni sunt transmise aplicaţiei folosind o API bine definită, care

implementează un anumit model de analiză.

Există patru modele de analiză, ce sunt uzual utilizate:

1. analiza prin „tragere” (pull parsing) – implică faptul că aplicaţia trebuie să ceară

întotdeauna unităţii de analiză să îi furnizeze următoarea porţiune de informaţie;

2. analiza prin „împingere” (push prsing) analizorul trimite notififcări aplicaţiei despre

tipurile de porţiuni de document XML pe care le întâlneşte în analiză. Notificările sunt trimise în

ordine „de citire” aşa cum apar în textul documentului.

3. analiza (one-step-parsing) analizorul citeşte întregul document XML şi generează o

structură de date (arbore de analiză) care descrie întregul conţinut (elemente, atribute, comentarii

etc). Structura de date este profund imbricată; ierarhia sa mimează imbricarea elementelor în

documentul XML analizat. W3C a definit un Document Object Model (DOM) – model de obiecte

document pentru XML.

DOM specifică tipurile de obiect care vor fi incluse în arborele de analiză, proprietăţile şi

operaţiile acestora.

Page 17: XML si SOAP

DOM este o API independentă de limbaj şi de platformă. Cea mai mare problemă cu

API-urile DOM este aceea că adesea nu se mapează corespunzător la sttructurile de date native din

anumite limbaje de programare. Pentru abordarea acestei probleme, comunitatea Java a început

lucrul la specificaţia JDOM – Java DOM al cărei obiectiv este simplificarea procesului de

manipulare a arborilor document în Java, prin utilizarea API-urilor de obiect potrivite la şabloanele

obişnuite de programate Java

4. analiza hibridă ( hybrid parsing) combină caracteristici ale celorlalte trei modele de

analiză pentru a crea analizoare eficiente de scenarii speciale.

2.6. SOAP

Microsoft a început să se gândească la calculul distribuit pe baza XML în 1997. Scopul era

de a determina aplicaţiile să comunice via Remote Procedure Calls (RPC) prin HTTP.

În 1999, când Microsoft lucra la propria versiune de XML, XML Data, ideea de SOAP a

preluat un impuls suplimentar. Si istoricul continuă.

SOAP pretinde a fi o specificaţie pentru „o infrastructură universală de calcul distribuit,

pe baza XML”

Calculul distribuit implică faptul că SOAP poate fi utilizat pentru a activa

interoperabilitatea aplicaţiilor la distanţă. Calculul distribuit este un termen confuz şi semnifică

lucruri diferite pentru oameni diferiţi şi în situaţii diferite. Câteva din faţetele care sunt utilizate cînd

se ia în calcul un anumit scenariu:

stiva de protocoale folosite pentru comunicaţie;

gestionarea conexiunii;

securitatea;

suportul pentru tranzacţii;

aranjarea şi dez-aranjarea datelor;

evoluţia protocolului si managementul de versiune;

gestionarea erorilor;

metode de audit etc.

Infrastructură implică faptul că SOAP este destinat dezvoltatorilor de sisteme distribuite

de bază, nu dezvoltatorilor de aplicaţie sau utilizatorilor pentru afaceri. Produsele de infrastructură,

Page 18: XML si SOAP

precum serverele de aplicaţie „capabile SOAP” prin includerea unui motor de serviciu Web care

înţelege SOAP. SOAP funcţionează în spatele scenei şi se asigură că aplicaţiile dumneavoastră pot

interopera.

Universală, adică omniprezentă. SOAP există pretutindeni în Internet, ar trebui să fie mai

uşor de realizat calculul distribuit. SOAP trebuie să fie o tehnologie abstractă şi flexibilă, dar care

să ofere suport pentru scenariile particulare ale calcului distribuit.

Cel mai important lucru este că SOAP este relativ simplu, SOAP 1.0 se poate tipări pe aprox

40 de pagini.

Deoarece SOAP este concentrat pe aspectele comune ale tuturor scenariilor de calcul

distribuit, el furnizează următoarele:

un mecanism de definire a unităţii de comunicaţie. În SOAP, toată informaţia este

împachetată într-un mesaj SOAP clar identificabil. Acest lucru este realizat printr-un plic

(pachet) SOAP care cuprinde toate celelalte informaţii. Un mesaj poate avea un corp

(body), poate deţine orice număr de anteturi (headers), care încapsulază informaţia din

afara corpului mesajului;

un mecanism de generare a erorilor, care poate identifica sursa şi cauza erorii şi poate

permite ca informaţia de diagnostic al acesteia să poată fi schimbată între participanţii la

o interacţiune;

un mecanism de extennsibilitate, astfel încât evoluţia să nu fie împiedicată şi să nu existe

blocaj;

un mecanism flexibil pentru reprezentarea datelor, care permite schimbul de date deja

serializate într-un anumit format precum şi o convenţie de reprezentare a structurilor de

da date abstracte, precum tipurile de date din limbajele de prigramare într-un format

XML;

o convenţie pentru reprezentarea Remote Procedure Calls(RPC) şi a răspunsurilor ca

mesaje SOAP, deoarece RPC-urile sunt cel mai uzual tip de intecţiune de calcul

distribuit;

o abordare centrată pe document, pentru a reflecta modele de schimb de document mai

naturale;

un mecanism de legătură a mesajelor SOAP la HTTP este cel mai utilizat protocol de

comunicaţie în Internet.