miercuri, 5 noiembrie 2008

Cafea cu aroma de interfete web

Cafeaua din pauza meciului si-a facut efectul.. Nu ca n-as adormi daca m-as culca, dar in zilele cand nu am baut cafea (adica pana ieri:D) nu puteam sta nici daca imi propuneam (nu pana la 3 cat e acu, dar nici pana la 12-1). Si da, stiu, la meci merge o bere, da' mie nu-mi place berea.. macar in cafea pun zahar..

Acu nu m-am culcat din cauza a unei teme. Nu reusesc sa-i dau de cap. In astfel de situatii in zilele fara cafea as fi adormit instant. Acu n-am adormit, in schimb am inceput sa ma gandesc la interfete evoluate:D

Mi-am ales materia asta pentru ca suna bine si pentru ca am auzit colegi (despre care stiu ca se informeaza inainte sa faca o alegere) ca e interesanta. N-am ajuns de prea multe ori la curs, dar proiectul asta m-a dat gata. N-am tinut niciodata jurnal (desi mi se parea dragutz sa scriu si eu "Dear diary" ca in manualele de engleza:D), n-am avut niciodata blog, nu m-au preocupat niciodata retelele sociale. Cand am primit prima data invitatie pe hi5 mi-am facut cont, am pus cateva poze si atat. Pe urma am ignorat invitatiile catre alte site-uri de gen. Dar recunosc, imi placea sa citesc blogurile unor colegi sau sa ma uit la pozele prietenilor:)

Poate e doar euforia de inceput, foc de paie, dar de cand am creat blogul asta si site-ul am intrat de n ori pe ele sa vad ce sa mai adaug, ce sa mai schimb, si am cautat de m ori pe gugal sa vad daca apare blogul sau site-ul. Poate e tragic ca zic asta in anu 5 la Calculatoare, dar credeam ca e mult mai complicat sa gaseasca gugal un site facut de mine.

Am impresia ca materia asta are sa-mi transmita o gramada de informatii, pe care insa le uit repede daca nu le folosesc si altfel decat la lab. In 4 laboratoare cat am facut pana acum am invatat despre XML, DTD, XHMTL, CSS, XPath, XQuery, DOM si SAX. Pana acum auzisem denumirile astea, dar nu stiam foarte bine ce sunt si la ce se folosesc. Pana la sfarsitul semestrului o sa mai invatam o gramada de alte tehnologii web.

Si astea nu sunt nimic fata de ce ne asteapta. Viitorul este al Internet-ului, si cu cat interfetele web sunt mai usor de folosit si ofera mai multe functionalitati, cu atat Internet-ul va deveni si mai aglomerat:)

DTD

DTD

Ce este DTD?

DTD = Document Type Definition
DTD specifica structura unui document XML si este primul limbaj aparut de acest gen.Un astfel de limbaj este necesar pentru a putea valida automat structura XML-urilor.

Daca fisierele XML au o strucutura anume se poate sa se:
• defineasca un standard pentru documentele XML – exemplu SVG (Scalable Vector Graphics) – limbaj prin care se pot defini grafice bidimensionale, se bazeaza pe XML şi este caracterizat de un fişier DTD. Toate aplicaţiile care crează fişiere SVG se bazează pe acelaşi fişier DTD şi implicit vor crea fişiere XML ce au aceeaşi structură

• valideze fişierele XML primite –cand se primiteste un fisier se poate verifica usor cu ajutorul DTD-ului daca acesta respecta structura data; dar daca nu o respecta stim de la inceput ca nu vom avea sanse mari de a-l prelucra si extrage informatii folosind programe in acest gen

• incorporeze de catre fisierele XML, DTD-urile care ii definesc structura sau sa contina referinte catre acesteaCu ajutorul DTD-ului putem defini elemente, atribute, restrictii simple cu privire la numarul de aparitii ale elementelor si tipul lor. Asemanator cu DTD-ul a aparut mai nou si XML Schema care permite sa fie definite niste constrangeri mai avansate si care foloseste acelasi limbaj ca si un XML, nu are propria lui sintaxa ca DTD-ul.

Sintaxa
In cazul in care fişierul DTD este conţinut în fişierul XML :

sau într-un fişier extern:

Unde:
• “element_rădăcină” = elementul rădăcină al fişierului XML.
• SYSTEM (cuvât cheie)= se foloseste daca fişierul XML contine referinte catre .dtd si amandoua fisierele se gasesc pe acelasi calculator (system)
• PUBLIC se foloseşte când .dtd se află la o adresă externă şi este urmat de FPI (Formal Public Identifier) – un string care identifică în mod unic un DTD (Exemplu de FPI: "-//W3C//DTD HTML 4.01 Transitional//EN" – DTD pentru HTML).
• URL=URL-ul local sau extern unde poate fi găsit fişierul .dtd. Sintaxa pentru a defini structura unui element este următoarea:

Tipul poate fi :
• EMPTY daca avem elemente vide
• ANY în cazul elementelor ce pot avea orice structură.

Cand elementul nu se afla in nici unul din tipurile prezentate anterior atunci el poate contine text:(#PCDATA – parsed character data) şi poate avea alte elemente copii. Elementele de tip copii sunt separate prin virgulă şi pot fi urmate de următorii descriptori( e = element:):
• - :e apare de 0 sau n-ori
• + :e apare de 1 sau n-ori
• ? :e apare de 0 sau 1 ori
• e1|e2 :apare e1 sau e2
Ex.
Pentru elementul ’Om’ putem scrie structura:
&ls !ELEMENT Om (nume, prenume, cnp, copil*, casatorit_cu?, (M|F), parinte+) &gt

Pentru definirea atributelor putem scrie structura:

&ls !ATTLIST element atribut tip valoare_implicită &gt
 Unde:

- ’element’ = elementul al cărui atribut îl definim

- ’atribut’ = atributul pe care îl definim
- ’tip’ poate fi:
1)      ID – valoarea atributului reprezintă un ID unic
2)      IDREF – valoarea atributului referă un ID unic
3)      IDREFS – atributul are ca valoare o lista de ID-uri
4)      CDATA – character data – text ce nu va fi parsat de parserul XML
5)       (val1|val2|..|valn) – atributul are valorile cuprinse în lista de valori val1...valn

6) Valoarea implicită pentru atribut poate fi:

- Valoare – valoarea efectiva

- #FIXED V – are mereu valoarea ‘V’

- #IMPLIED – poate lipsi

- #REQUIRED –trebuie să se găsească întotdeauna în documentul XML

În fişiere DTD se pot defini entităţi.
Entităţile
=prescurtări ale unor structuri de text ce apar mai des în fişierul XML.

Ex.
&ls !ENTITY CS “Computer Science” &gt

- se defineşte entitatea cu numele “CS” ce prescurtează denumirea “Computer Science”.

Fisierul XML poate contine:

&ls profil &gt &CS &ls /profil &gt

Înaintea entităţii se foloseşte „&” şi după aceasta se foloseşte „;”.