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, autodescriptiv, 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

XML-ul nu are taguri predefinite. Numele sunt alese de ctre cel care construiete XMLul.

<contact> <nume>Ion</nume> <prenume>Vasile</prenume> <tel>4124650</tel> </contact> <contact> <nume>George</nume> <prenume>Mihai</prenume> <tel>4569120</tel> </contact> <contact>

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>

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">)

<CONTACT> <NAME>Susan Czigany</NAME> <EMAIL>susan@eudora.org</EMAIL> <PHONE>555-1234</PHONE> </CONTACT> </AGENDA>

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