Posts Tagged xml
XML Documente well-formed
Posted by admin in Php tutorial on February 18, 2010
Documente well-formed
Precum se vede, XML permite definirea de limbaje (vocabulare) ce contin si descriu datele. Libertatea creatorului nu este insa absoluta: pentru ca un fisier XML sa poata fi citit si “inteles”) de catre o alta aplicatie, este necesar ca el sa respecte niste reguli generale de sintaxa.
Iata setul de reguli de care trebuie tinut seama la crearea unui fisier XML:
- reguli ce tin de elemente
- fisierul trebuie sa contina un singur element radacina (eel aflat in radacina fisierului si care nu are element parinte)
- fiecare element ce contine date trebuie sa aiba atat tag de inceput, cat si de incheiere
- tagul de inceput poate contine spatiu intre nume si >, insa nu si intre < si nume (ex: <nume > este permis,pe cand < nume> este invalid)
- elementele ce nu contin date pot fi prescurtate: <element/> in loc de <element></element>
- elementele nu pot fi partial suprapuse (ex: <tag7>texr<tag2>text</tagl>text</tag2>);
- fiecare element trebuie sa fie continut integral in interiorul altuia (cu exceptia elementului radacina)
- numele elementelor
-
■ sunt case-sensitive (nu putem scrie ca in HTML, <P>text</p>)
■ nu pot incepe cu xml (in orice combinatie de litere mici/mari)
■ pot incepe doar cu litera sau – (minus), fiind permise pe pozitiile urmatoare si numere, minus si punct. Nu sunt permise spatii, =, : etc
■ pot contine caractere cu semne diacritice (ex: a, i, e etc)
- reguli ce tin de atribute
- numele atributelor respecta aceleasi reguli ca numele de elemente
- nu este permisa existenta mai multor atribute cu acelasi nume pentru acelasi element
- fiecare atribut trebuie sa aiba valoare (nu este permis, de exemplu, <input type=checkbox checked>)
- valoarea fiecarui atribut trebuie inclusa intre ” ” sau ”. In interiorul ghilimelelor pot fi folosite apostroafe si invers (ex: <clasa nume=’Clasa “PHP 21 august” ‘>)
• reguli pentru PCDATA
- nu este permisa folosirea caracterelor <, >, &,” si’. Daca PCDATA contine asemenea caractere, ele trebuie reprezentate folosind secvente predefinite – asa-numitele entity references (vezi tabelul alaturat)
| Simbol | Inlocuitor |
| < | < |
| > | > |
| & | & |
| ‘ | ' |
| 11 | " |
Un document care se conformeaza acestor reguli are proprietatea de a fi well-formed (corect din punct de vedere sintactic).
Tutorial XML
Posted by admin in Php tutorial on February 18, 2010
Ce este XML
XML (Extensible Markup Language) cste o specificatie W3C (World Wide Web Consortium) care reprezinta un set de reguli ce permit crearea unor limbaje de transport al datelor. El deriva din SGML (Standard Generalized Markup Language), o specificatie complexa ce reprezinta parintele multor alte limbaje de acest fel (HTML, DocBook etc).
Un fisier XML este un fisier text structurat, care contine:
- datele utile – informatia utila ce se doreste a fi transmisa
- informatii despre aceste date {meta-data) - de exemplu, felul in care datele se afla in relatie unele cu altele. Meta-informatia este specificata cu ajutorul unor tag-uri (marcatoare), asemanatoare cu cele folosite in codul sursa HTML.
lata un exemplu de fisier XML:
<?xml version=”1.0″?> <produs id=”34″>
<denumire>Carte</denumire>
<pret>24.5</pret>
</produs>
Fisierul de mai sus contine informatiile despre un produs cu id-ul 34, denumirea Carte si pretul de 24.5. In afara de aceste 3 informatii, toate celelalte reprezinta meta-data: prima linie indica versiunea de XML, iar tag-urile <produs>, <denumire> si <pret> denumesc informatiile continute in fisier, stabilind si apartenenta denumirii si pretului la produs.
Desi un fisier XML este pana la un punct asemanator cu unul HTML, cele doua tehnologii difera in multe aspecte:
- HTML a fost gandit pentru a specifica structura si modul de prezentare a datelor, pe cand XML are ca scop memorarea structurata a datelor in scopul transportului lor intre sisteme de calcul diferite
- HTML este un limbaj, el dispunand de un set prestabilit de tag-uri; XML este o specificatie ce permite programatorului sa defineasca propriile tag-uri, care sa descrie cat mai bine datele utile si relatiile dintre ele
Avantaje si utilitate XML
Fisierele XML fiind fisiere text, ele au avantaje multiple:
- sunt usor de inteles de catre ochiul uman
- sunt usor de “inteles” pentru o aplicatie
- nu depind de platforma hardware sau software pe care ruleaza aplicatiile ce lucreaza cu XML. Exista biblioteci de functii XML pentru toate platformele software, asadar un fisier XML scris sau generat in Windows poate fi citit pe MacOS sau Linux.
Un fisier XML poate fi privit ca o mini-baza de date, care este insa usor de manipulat folosind biblioteci deja scrise, si care poate fi folosita cu succes pentru transferul de date intre sisteme altminteri incompatibile.
Elemente si PCDATA
Sa consideram ca referinta urmatorul fisier XML:
<persoana>
<nume>john <porecla>The man </porecla>Doe </prenume>
<varsta>30</varsta>
</persoana>
Un tag (marcator) XML reprezinta textul ce incepe cu < si se incheie cu >. In exemplul de mai sus, <persoana>, <nume>, <porecla>, <prenume> si <varsta> sunt tag-uri. Tag-urile sunt in general pereche: exista un tag de inceput si unul de incheiere, eel de incheiere avand acelasi nume cu eel de inceput dar incepand cu </ (ex: <nume>…</nume> ). Tag-urile sunt cele care specifica structura informatiei; informatia utila este cea prezenta intre tag-urile de inceput si de sfarsit (ex: 30, John, Doe etc in exemplul de mai sus)
Un element XML reprezinta toata informatia cuprinsa intre un tag de inceput si tag-ul corespunzator de incheiere. Intre cele doua tag-uri se pot afla:
- doar date de tip text – ex: elementele <varsta> si <porecla> din exemplul nostru). In acest caz, continutul elementului (textul dintre taguri) este denumit parsed character data sau, pe scurt, PCDATA
- alte sub-elemente sau o combinatie de text si sub-elemente – ex: elementul <nume>, elementul <persoana> din exemplul de mai sus
Atunci cand un element contine alte elemente, el reprezinta pentru ele elementul parinte, iar cele continute sunt elemente copil ale sale.
Fisierul de mai sus contine urmatoarea structura:
- un element radacina (asa-numitul root element) - tag-ul <persoana>, care la randul sau contine alte elemente
- elementul <persoana> are doua elemente copil – <nume> si <varsta>
- elementul <varsta> are continutul de tip PCDATA cu valoarea 30
- elementul <nume> contine:
- elementul <porecla> contine PCDATA cu valoarea The Ripper
o PCDATA cu valoarea John
o elementul <porecla>
o PCDATA cu valoarea Doe
Atribute
Atributele reprezinta perechi nume=valoare asociate unui element, specificate in cadrul tagului de inceput al elementului, separate prin spatii fata de numele tagului si intre ele. Un element poate avea zero sau mai multe atribute. Orice atribut are valoare (chiar daca este cea vida), care trebuie inclusa intre ” sau ‘:
<student tip=”cisco” id=’135′>
<username>anonymous</username> </student>