Sunteți pe pagina 1din 21

XML

Reprezentarea unei baze de cunostinte in XML


SUMAR
XML - fundamente
Sintaxa XML
Validarea fisierelor XML
INCALZIRE
Intr-un autobuz sunt 7 fete.
Fiecare are cate 7 rucsacuri.
In fiecare rucsac se afla 7 pisici mari.
Fiecare pisica mare are cate 7 pisoi mici cu ea.
Intrebare:
Cate picioare se gasesc in total in autobuz?
CE ESTE XML?
XML (eXtensible Markup Language) este un
meta-limbaj de marcare folosit pentru a
structura, depozita i transporta informaie
A fost proiectat n scopul transferului de date
ntre aplicaii Internet.
Este un limbaj definit ca fiind extensibil
(eXtensible) datorit faptului c permite
utilizatorilor s i defineasc propriile elemente.
XML este recomandat de W3C, ncepnd cu
februarie 1998.
XML descrie structura si intelesul unui document
ELEMENTE DE SINTAXA
XML folosete o reprezentare ierarhic, auto-
descriptiv, care ofer posibilitatea de redare a
datelor fr pierderea semanticii, fiind uor de
interpretat de aplicaii.
Aceast reprezentare ierarhic presupune o
structur arborescent.
Exist noduri care joac rolul de printe
(rdcin) i noduri care joac rolul de copii
(frunze). Un nod printe poate avea unul sau mai
muli copii.
Documentele XML sunt arbori adnotai de o
adncime arbitrar. XML este format din
elemente cu atribute.
EXEMPLU
Fisier: agenda.txt
Ion Vasile 4124650
George Mihai
4569120
Cristian Vasile 3129835
Fisier: agenda.xml
<contact>
<nume>Ion</nume>
<prenume>Vasile</prenume>
<tel>4124650</tel>
</contact>
<contact>
<nume>George</nume>
<prenume>Mihai</prenume>
<tel>4569120</tel>
</contact>
<contact>
XML-ul nu are tag-
uri predefinite.
Numele sunt alese
de ctre cel care
construiete XML-
ul.
STRUCTURA UNUI FISIER XML
<?xml version="1.0" encoding="UTF-8"
standalone="yes"?>
<AGENDA>
<CONTACT>
<NAME>Gunther Birznieks</NAME>
<EMAIL>gunther@bobsfishstore.com</EM
AIL>
<PHONE>662-9999</PHONE>
</CONTACT>
<CONTACT>
<NAME>Susan Czigany</NAME>
<EMAIL>susan@eudora.org</EMAIL>
<PHONE>555-1234</PHONE>
</CONTACT>
</AGENDA>
Documentul XML ncepe cu un xml
declaration (<?xml
version="1.0"
encoding="UTF-8"
standalone="yes"?>)
Are un element special, numit
elementul radacina, sau root
(elementul AGENDA).
Un fiier XML are un unic element
rdcin care conine restul
marcajelor i al textului.
ntre elementele XML pot exista
dou tipuri de relaie de rudenie:
printe-copil i frate-frate.
Un element poate conine unul sau
mai multe atribute. Atributele sunt
de tipul
nume_atribut="valoare_atribut
(<CONTACT type="friend">)
REGULI IN SINTAXA XML
Toate elementele XML trebuie s aib un marcaj de
nchidere:
<nume> Ioana Stanciu </nume>
Marcajele XML sunt "case sensitive
Elementele XML trebuie s fie corect imbricate:
<p><b> Paragraf </b></p>
Documentele XML trebuie s aib un element rdcina.
Valorile atributelor trebuie amplasate ntre ghilimele.
Numele elementelor XML trebuie s respecte urmtoarele
reguli:
Pot conine litere, cifre i alte caractere.
Nu pot ncepe cu numr sau cu semen de punctuaie
Nu pot ncepe cu xml
Nu pot conine spaii
VALIDAREA FISIERELOR XML
Exist dou niveluri de corectitudine pentru un
fiier XML:
bine formate (well formed)
valide
Un document este bine format dac este corect
din punct de vedere sintactic.
Un document XML este valid dac:
este un document "bine format" (well-formed);
refer o gramatic (DTD sau XML Schema);
respect acea gramatic.
XML BINE FORMAT
Fragment de fiier XML care NU e bine format
(not well formed):
<client>
<nume> asdkj <phone> sdlkjfh </nume> </phone>
<client>
<nume age=sadsd"> adsfasdf</nume>
</client>
Erorile de sintax din fragmentul de mai sus:
primul element client nu are un end tag (</client>)
elementele nume i phone nu sunt imbricate corect
valoarea atributului age nu ncepe cu "
DTD
Un DTD (Document Type Definition) definete
forma i sintaxa documentului XML. Mai exact,
un DTD este un set de reguli care definesc modul
de structurare a documentelor XML.
Un DTD defineste ce elemente pot aparea intr-un
XML, ce atribute pot avea acestea, i ce anume
conin aceste elemente.
Dac documentul DTD se afl n interiorul
fisierulul XML se va folosi urmtoarea sintaxa:
<! DOCTYPE element-radacina [declaraii] >
n cazul n care este un fiier extern se folosete
sintaxa:
<! DOCTYPE element rdcina SYSTEM "nume_fiier">
FISIER XML INVALID
Exemplu de fiier XML care este bine format dar este invalid:
<DOCTYPE root [
<!ELEMENT root (CLIENT*)>
<!ELEMENT CLIENT ANY>
<!ELEMENT PHONE (#PCDATA)>
]>
<root>
<client>
<phone>sd <client> asdfsadf </client> fasdf</phone>
<name> salkdjhfsadlkjh </name>
</client>
<phone>sdfasdf</phone>
</root>
Erorile din acest fiier sunt:
elementul root conine un element phone -> neconform cu DTD-ul
primul elementul phone conine i un element <client> -> neconform
cu DTD-ul
elementul client conine elementul <name>, nedeclarat n DTD
DTD
Fisierul DTD din slide-ul anterior este interpretat astfel:
!DOCTYPE root elementul radacina al
documentului este root
!ELEMENT phone elementul phone este de tip
"#PCDATA (textul va fi parsat folosind un parser)
PCDATA textul va fi parsat de un parser.
Tagurile vor fi tratate ca markup si entitatile
vor fi expandate.
CDATA - textul nu va fi parsat. Tagurile din
interiorul textului NU vor fi tratate ca
markup si entitatile nu vor fi expandate.
XML SCHEMA
O schem XML este un document bine format
(avnd de regul extensia .xsd) care definete
structura i tipul elementelor unui document
XML, n vederea validrii.
Spre deosebire de (sau n plus fa de) DTD-uri,
schema XML permite definirea regulilor i a
relaiilor ntre elemente i atribute, folosind un
fiier XML (cu alte cuvinte, o schem XML este
descris n limbajul XML).
n plus, se adaug suport pentru spaii de nume
(namespaces), tipuri de date i caracteristici mai
avansate, cum ar fi restriciile (constraints).
DTD VS. XML SCHEMA
DTDsi XML Schema fac aceleasi lucruri
pentru scrierea unui DTD trebuie invatat un nou
limbaj
avanatajul XML Schema este ca foloseste sintaxa
XML
LA CE SE FOLOSESTE XML?
Folosind XML, se poate face schimb de date intre
sisteme incompatibile
In lumea reala, sistemele informatice si bazele de
date contin date in formate incompatibile
O provocare foarte costisitoare dpdv al timpului a
fost schimbul de de fisiere intre astfel de sisteme
pe Internet.
Solutia:
Stocarea datelor in format XML - reduce
complexitatea acestei probleme si faciliteaza
accesul la date din diverse tipuri de aplicatii
LA CE SE FOLOSESTE XML?
XML este folosit pentru a stoca date in
fisiere sau in baze de date
Au fost dezvoltate aplicatii/agenti/APIuri
pentru a stoca si pentru a extrage
informatii
Odata ce un fisier XML a fost creat,
diversi clienti si diverse aplicatii il pot
accesa ca sursa de date
LINK-URI XML
www.w3.org/TR/REC-xml.html - specificatii XML
1.0
www.w3.org/XML - W3C's XML homepage
www.w3schools.com/xml - XML School: an XML
tutorial
www.garshol.priv.no/download/xmltools - tooluri
XML gratuite
EXEMPLU
parinte(tom, bob).
parinte(tom, liz).
parinte(pat, jim).
masculin(tom).
masculin(bob).
feminin(liz).
feminin(pat).
masculin(jim).
<fapte>
<relatii_familie>
<parinte>
<nume> Tom</nume>
<sex>M</sex>
<copil>
<nume>Bob</nume>
<sex> M </sex>
</copil>
<copil>
<nume> Liz></nume>
<sex> F </sex>
</copil>
</parinte>
<parinte>
<nume> Pat </nume>
<sex> F </sex>
<copil>
<nume>Jim</nume>
<sex>M</sex>
</copil>
</parinte>
</relatii_familie>
</fapte>
IF SOMEONE LIKES MUSIC, THEN JOHN LIKES THAT GUY.
<reguli>
<regula>
<if>
<rel> likes </rel>
<pers> x </pers>
<what> music </what>
</if>
<then>
<pers> John</pers>
<rel> likes</rel>
<who> x</who>
</then>
</regula>
<regula>
..
</regula>
</reguli>
SARBATORI FERICITE!

S-ar putea să vă placă și