curs xml

10
XML (eXtensible Markup Language) 1. Introducere Prin date structurate intelegem lucruri ca liste de contacte, parametrii de configuratie, desene tehnice, etc. XML este un set de reguli (sau conventii) pentru a crea formate de text ce permit structurarea datelor. XML nu este un limbaj de programare si evita problemele obisnuite ale limbajelor de programare: este independent de platforma, extensibil si suporta internationalizarea si localizarea. Pentru a invata XML nu trebuie sa fii programator sau sa stii programare. 2. Istoric XML (eXtensible Markup Language) este un descendent al SGML (Standard Generalized Markup Language) si este un meta-limbaj definit de Consortiul Web (W3C) utilizat in activitatea de marcare ierarhica a documentelor. Specificatia XML a fost dezvoltata incepand cu 1996 in cadrul Consortiului Web de un grup de cercetare condus de Jon Bosak de la Sun Microsystems iar in 1998 a aparut prima recomandare revizuita in octombrie 2000. XML a fost proiectat cu scopul de a stoca si transporta datele. Proiectarea presupunea ca XML: - sa fie simplu de utilizat - sa suporte o mare varietate de aplicatii - sa fie compatibil cu SGML. Deasemenea, programele ce vor procesa documente XML trebuie sa fie usor de scris iar numarul facilitatilor optionale din XML sa fie reduse la minimum, ideal, la zero. 3. Ce este XML? Pe scurt, XML este un limbaj bazat pe marcaje, asemanator cu HTML insa nu este un inlocuitor al acestuia. XML si HTML au fost concepute cu scopuri diferite: - XML pentru stocarea si transportul datelor, cu accent pe “ce sunt datele”. - HTML pentru afisarea datelor, cu accent pe “cum arata datele”. XML nu face NIMIC. Poate conceptul este putin mai greu de inteles si explicat insa XML nu face absolut nimic. A fost creat pentru structurarea, stocarea si transportul informatiilor.

Upload: narcisa-angheloiu

Post on 22-Nov-2015

16 views

Category:

Documents


3 download

DESCRIPTION

xml

TRANSCRIPT

  • XML (eXtensible Markup Language)

    1. Introducere Prin date structurate intelegem lucruri ca liste de contacte, parametrii de configuratie, desene tehnice, etc. XML este un set de reguli (sau conventii) pentru a crea formate de text ce permit structurarea datelor. XML nu este un limbaj de programare si evita problemele obisnuite ale limbajelor de programare: este independent de platforma, extensibil si suporta internationalizarea si localizarea. Pentru a invata XML nu trebuie sa fii programator sau sa stii programare.

    2. Istoric XML (eXtensible Markup Language) este un descendent al SGML (Standard Generalized Markup Language) si este un meta-limbaj definit de Consortiul Web (W3C) utilizat in activitatea de marcare ierarhica a documentelor. Specificatia XML a fost dezvoltata incepand cu 1996 in cadrul Consortiului Web de un grup de cercetare condus de Jon Bosak de la Sun Microsystems iar in 1998 a aparut prima recomandare revizuita in octombrie 2000. XML a fost proiectat cu scopul de a stoca si transporta datele. Proiectarea presupunea ca XML:

    - sa fie simplu de utilizat - sa suporte o mare varietate de aplicatii - sa fie compatibil cu SGML.

    Deasemenea, programele ce vor procesa documente XML trebuie sa fie usor de scris iar numarul facilitatilor optionale din XML sa fie reduse la minimum, ideal, la zero.

    3. Ce este XML? Pe scurt, XML este un limbaj bazat pe marcaje, asemanator cu HTML insa nu este un inlocuitor al acestuia. XML si HTML au fost concepute cu scopuri diferite:

    - XML pentru stocarea si transportul datelor, cu accent pe ce sunt datele. - HTML pentru afisarea datelor, cu accent pe cum arata datele.

    XML nu face NIMIC. Poate conceptul este putin mai greu de inteles si explicat insa XML nu face absolut nimic. A fost creat pentru structurarea, stocarea si transportul informatiilor.

  • Urmatorul exemplu este un mesaj de la Bogdan pentru George, salvat ca XML:

    Bogdan George Memento Nu uita de prezentarea XML!

    Mesajul de mai sus este auto descriptiv. Are un expeditor, un destinatar, un subiect si un continut. Si totusi, acest document XML nu face nimic. Este doar o informatie salvata intre taguri. Cineva trebuie sa scrie un program care sa trimita, primeasca si sa afiseze aceasta informatie. Cu alte cuvine, XML nu este un compilator si nici un interpretor. Este doar un standard definit cu scopul de a structura datele.

    XML este o completare pentru HTML. In majoritatea aplicatiilor web, XML este folosit pentru transportul informatiilor in timp ce HTML este folosit pentru formatarea si afisarea informatiilor. XML este acum la fel de important pentru Web asa cum HTML a fost pentru infiintarea Web-ului, fiind cel mai folosit instrument pentru transmiterea datelor intre diferite aplicatii.

    4. Structura documentelor XML. Un document XML este format din marcaje (taguri) si date caracter. Cuvantul marcaj (markup) a fost folosit initial pentru a descrie note marginale in cadrul unui text cu intentia de a indica tehnoredactorului cum trebuie listat un anumit pasaj. Generalizand, putem defini marcajul ca fiind o actiune de interpretare explicita a unei portiuni de text. In XML, un marcaj este un sir de caractere delimitat de caracterele . Datele caracter reprezinta continutul marcajelor.

    Documentele XML formeaza o structura asemanatoare unui arbore. Se porneste de la radacina si se continua pe ramuri catre frunze. Sintaxa este auto descriptiva si simpla:

    Bogdan George Memento Nu uita de prezentarea XML!

  • Prima linie este o instructiune de procesare. Ea informeaza ca urmeaza descrierea unui fisier XML ce respecta versiunea de specificatie 1.0 iar setul de caractere utilizat este encodat UTF-8.

    Urmatoarea linie descriere elementul radacina al documentului:

    Urmatoarele 4 linii vor descrie cele 4 frunze ale arborelui (expeditor, destinatar, subiect, continut): Bogdan George Memento Nu uita de prezentarea XML!

    Ultima linie defineste sfarsitul elementului radacina (sau varful arborelui).

    Din acest exemplu putem intelege ca documentul XML contine un mesaj de la Bogdan pentru George.

    Documentele XML au forma unui arbore. Toate documentele XML contin un element radacina. Acest element este parintele tuturor celorlalte elemente. Fiecare element poate avea copii. Spre exemplu:

    Termenii parinte, copil, frate sunt folositi pentru descrierea relatiilor dintre elemente. Elementele parinte au copii. Copiii de la acelasi nivel (cu acelasi parinte) se numesc frati (sau surori). Toate elementele pot contine text si au atribure (ca in HTML).

  • 5. Elemente Elementele sunt blocurile de baza ale unui document XML. Pot fi folosite atat pentru a retine informatii, cat si pentru definirea structurii. Un element incepe cu un macaj de start si se termina cu corespunzatorul marcaj de sfarsit.

    Un element poate fi vid, sintaxa lui fiind:

    6. Atribute Atributele au rolul de a descrie elementele. Putem face o analogie intre atribute care descriu elemente si adjective care descriu substantive. Atributele in XML sunt aceleasi cu atributele din HTML. De exemplu, un atribut al elementului ar fi data=16.03.2011. Atributele sunt localizate in marcajul de start al unui element, imediat dupa numele acestuia, sunt urmate de caracterul = care este urmat de valoarea atributului intre ghilimele. Sintaxa este urmatoarea:

    Observatie: Atributele nu pot contine mai multe valori, sunt greu de citit si de intretinut. Folositi elementele pentru date si atributele pentru informatii care nu sunt relevante pentru date.

    7. Reguli de sintaxa Regulile de sintaxa ale XML sunt simple, logice, usor de invatat si usor de folosit.

    7.1 Toate elementele XML trebuiesc inchise. In XML este ilegal (incorect) sa lasi marcajele deschise. Toate elementele trebuie sa aiba un tag de inchidere. Observatie: Prima linie este o instructiune de procesare, nu un element, si nu are nevoie de un tag de inchidere.

    radacina

    frunza frunza2

    limb petiol teaca limb petiol teaca

  • 7.2 Marcajele sunt Case Sensitive Elementele XML sunt case sensitive, ceea ce inseamna ca nu este tot una cu .

    De exemplu: INCORECT CORECT

    Observatie: Deschiderea si inchiderea marcajelor este deseori referita ca marcaje de inceput si sfarsit.

    7.3 Elementele XML trebuie sa fie corect imbricate. Acest lucru se refera la faptul ca odata deschis un element, nu poti inchide un element deschis anterior pana ce elementul curent nu este inchis. Exemplu: (incorect)

    Elementul radacina nu poate fi inchis inaintea elementulu frunza care este un descendent (fie el direct sau indirect) al sau.

    7.4 Valorile atributelor XML sunt cuprinse intre ghilimele Elementele XML pot avea atribute in perechi de forma nume/valoare, exact ca in HTML. In XML valorile atributelor trebuie sa fie intotdeauna intre ghilimele. Exemplu: Bogdan George

    Exemplul de mai sus este INCORECT!

    Un exemplu corect este: Bogdan George

  • 7.5 Referintele entitatilor. Unele caractere au un inteles special in XML. Daca vei plasa un caracter ca mai mult decat & & ampersand ' apostrof &quote; ghilimele

    Obseratie: Caracterele

  • Declaratia DOCTYPE din exemplul de mai sus este o referinta la un fisier DTD extern. Continutul fisierului DTD (Mesaj.dtd):

    ]>

    Validarea documentelor XML cu DTD

    1. Introducere Scopul DTD (Document Type Definition) este de a defini constructia corecta a blocurilor intr-un document XML. El defineste structura documentului impreuna cu lista elementelor permise.

    1.1 Declararea DTD interna. Daca DTD este declarat in interiorul fisierului XML, acesta trebuie sa fie cuprins in interiorul declaratiei DOCTYPE si are sintaxa:

    Exemplu: ]> Bogdan George Memento Nu uita de prezentarea XML!

  • 1.2 Declararea DTD Externa. Daca DTD este declarat intr-un fisier extern, acesta trebuie adaugat in definitia DOCTYPE cu urmatoarea sintaxa:

    1.3 De ce sa folosim DTD? Cu DTD, fiecare document XML are o descriere a formatului sau. O aplicatie poate folosi DTD pentru a verifica daca datele fisierul XML primit sunt valide.

    2. Sintaxa DTD Ne amintim faptul ca un fisier XML este construit din urmatoarele tipuri de blocuri:

    o Elemente o Atribute o Entitati o Date caracter neparsabile CDATA o Data caracter parsabile PCDATA

    Un fisier DTD contine tipuri de definitii: o Element o Atribute o Entitati o Notatii.

    2.1 Declararea Elementelor Intr-un fisier DTD, elementele sunt declarate printr-o declaratie de tipul ELEMENT si au urmatoarea sintaxa:

    sau

    Elementele vide sunt declarate cu ajutorul cuvantului EMPTY:

    Elementele numai cu date caracter se declara: sau

    Elementele cu orice continut:

  • Elementele ce au copii: Daca un element are o multime de elemente copii atunci ele trebuie enumerate exact in ordinea in care apar in document:

    Un element copil poate fi urmat de unul din semnele ?, +, * care au urmatoarele semnificatii: ? Niciuna sau o aparitie a elementului precedent. + Una sau mai multe aparitii. * Niciuna sau mai multe aparitii. Intre elementele copii se poate afla semnul | care inseamna sau.

    2.2 Declararea atributelor ATTLIST Intr-un DTD, atributele se declara utilizand adnotarea ATTLIST. O declarare a unui atribut specifica elementul caruia ii este asociat, numele lui, tipul si posibilele valori implicite. Sintaxa:

    unde: - tip este tipul atributului si poate fi:

    CDATA Date caracter ENTITY Valoarea este o entitate ENTITIES Valoarea este o lista de entitati ID Valoarea este un id unic IDREF Valoarea este o referinta la un alt id IDREFS Valoarea este o lista de referinte la alte id-uri NMTOKEN Valoarea este un nume valid XML NMTOKENS Valoarea este o lista de nume valide XML NOTATION Numele unei notatii (Val1|Val2|) Lista de valori xml; Valoarea este una predefinita in XML

    - val_impl este valoarea implicita: #DEFAULT valoare - daca valoarea nu exista, se va prelua valoarea implicit definita #FIXED valoare - daca in document exista o alta valoare atunci se genereaza eroare la validare. #IMPLIED - atributul poate sa lipseasca, fiind optional. #REQUIRED - daca elementul nu contine atributul respectiv, se gereneaza o eroare.

    2.3 Declararea entitatilor O entitate poate fi declarata local sau extern.

  • Sintaxa entitatilor in interiorul DTD este:

    Exemplu:

    Utilizarea intr-un fisier XML: &copyright;&website;