Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
1
Web programiranje i primjene
XML
– eXtensible Markup Language
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
2
HTML vs. XMLHTML
•
osnovna namjena HTML‐a je definiranje sadržaja dokumenta
•
ali on nudi i mogućnost formatiranja sadržaja dokumenta dodavanjem atributa u
početni
tag
elementa
i
pridruživanjem
dozvoljene
vrijednosti
dodanom
atributu (npr. <font color=“green”> ...</font>)
•
baziran je na konačnom broju tag‐ova definiranih/propisanih od strane W3C‐a – dodavanje novog taga zahtijeva promjenu propisanog standarda
XML
•
osnovna namjena XML‐a je pohrana, organizacija i prijenos podataka
•
usmjeren je na opis/definiciju podataka
HTML vs. XML
“HTML is about displaying information, while XML is about carrying information.”
“XML is a software‐
and hardware‐independent tool for carrying information.”
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
3
XML –
osnovna svojstva
XML•
eXtensible Markup Language
•
usmjeren na opisivanje/definiranje podataka, ne na njihovu prezentaciju
•
XML tagovi nisu unaprijed definirani – korisnik sam definira tagove koji su mu potrebni za opis nekog sadržaja/podataka
•
preporuka:
XML
tagove
dobro
je
definirati
tako
da
iz
imena
taga
bude jasno što taj tag opisuje, tj. tako da ime taga sugerira tip sadržaja upisanog između početnog i završnog taga
•
XML je standard čije korištenje preporučuje W3C
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
4
XML –
osnovni primjer
•
primjer jednostavnog XML dokumenta:<?xml version="1.0"
encoding="ISO‐8859‐1“?>
<poruka><prima>Ana</prima><salje>Ivo</salje><naslov>Podsjetnik</naslov><tekst>Nazovi me ovaj vikend!</tekst>
</poruka>
•
upišimo
gornji
primjer
u
Notepad,
snimimo
ga
kao
xml
dokument
(npr. poruka.xml) i otvorimo u web pregledniku
•
vidimo da XML zapravo ne radi ništa; sadržaj XML dokumenta se sastoji od informacija/podataka upisanih između tagova koje korisnik sam definira
•
za prikazivanje sadržaja XML dokumenta u obliku prihvatljivom za krajnjeg korisnika “netko”
mora kreirati stil i pridružiti ga XML dokumentu
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
5
XML ‐
elementi•
XML dokument
sastoji
se od
jednog
ili
više
elemenata
•
XML
element
se
sastoji
od niti
jednog,
jednog
ili
više
znakova
informacije omeđenih s dvije oznake, tj. omeđenih početnim i završnim tag‐om
•
tag se sastoji od imena tag‐a omeđenog znakovima ‘<‘
i ‘>’•
ime tag‐a mora biti definirano prema sljedećim pravilima:–
ime tag‐a može sadržavati slova, brojeve i druge znakove (npr. povlaku
‘‐’, podvlaku ‘_’
ili točku ‘.’)–
prvi znak u imenu tag‐a ne smije biti broj niti interpunkcijski znak
–
ime tag‐a ne smije početi slovima xml u bilo kojoj kombinaciji velikih i malih slova
–
ime tag‐a ne smije sadržavati razmake–
početni
i
završni
tag
imaju
isto
ime,
ali
ispred
imena
završnog
tag‐a
nalazi se znak ‘/’•
ako
XML
element
ne
sadrži
niti
jedan
znak
informacije,
onda
se
početni
i
završni tag mogu reducirati u jedan tag sljedećeg oblika: <tag/>•
Primjer:
http://www.w3schools.com/xml/xml_elements.asp
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
6
XML ‐
atributi
•
XML
element
može
imati
jedan
ili
više
atributa
koji
se
dopisuju
iza
imena početnog tag‐a, a svrha im je dodatno opisivanje sadržaja XML elementa
•
svaki atribut ima ime kojem je znakom ‘=’
pridružena vrijednost omeđena ‘jednostrukim’
ili “dvostrukim”
navodnicima, npr.
<tag atribut1=‘vrijednost1’
atribut2=‘vrijednost2’>...</tag>
<tag atribut1=“vrijednost1”
atribut2=“vrijednost2”>...</tag>
•
primjer: http://www.w3schools.com/xml/xml_attributes.asp
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
7
XML ‐
sintaksa•
komentare u XML dokumentu pišemo na sljedeći način:
<!‐‐
Ovo je komentar‐‐>
•
svi elementi moraju imati početni i završni tag:
<tag>netočno strukturiran XML element
<tag>točno strukturiran XML element</tag>
•
XML
deklaracija
<?xml
version="1.0"
encoding="ISO‐8859‐1"
>
zapravo
nije
dio
XML dokumenta i nema završni tag
•
XML tagovi su osjetljivi na mala i velika slova (eng. case sensitive):
<Tag>netočno strukturiran XML element</tag>
<tag>točno strukturiran XML element</tag>
•
XML
elementi
moraju
biti
pravilno
“ugnježdeni”
(eng.
nested)
– LIFO
struktura
(Last In –
First Out)
<tag1><tag2>netočno strukturiran XML element</tag1></tag2>
<tag1><tag2>točno strukturiran XML element</tag2></tag1>
•
XML dokument mora imati korijenski ili root element
•
za sintaktički ispravan XML dokument kažemo da je well‐formed
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
8
XML –
posebni znakovi
•
neki znakovi u XML‐u imaju posebno značenje:
–
‘<’
uvijek označava prvi znak u početnom tag‐u XML elementa (ako se pojavi unutar XML elementa generirat će grešku)
–
slično se događa s upotrebom znaka ‘&’
–
primjer: http://www.w3schools.com/xml/xml_syntax.asp
•
stoga u XML‐u za ove (i neke druge) znakove koristimo sljedeće kodove:
‘<‘
‐
< ‘>’
‐
> ‘&’
‐
& ‘
‐
'
“
‐
"
•
za
umetanje
drugih
posebnih
znakova
koristimo
njihove
heksadecimalne ekvivalente
kojima
prethode
znakovi
‘&#x’,
npr.
za
znak
© koristimo
kod
‘© ’, gdje je heksadecimalni broj ‘A9’
ekvivalent ASCII znaka ©
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
9
XML – struktura osnovnog primjera
•
<?xml version="1.0 " encoding="ISO‐8859‐1“?> XML
deklaracija
koja
definira
verziju
XML‐a
(version="1.0")
i
kodnu
stranicu (encoding="ISO‐8859‐1 "
‐
Latin‐1/West European character set)•
<poruka>početni
tag
tzv.
korijenskog
elementa
(eng.
root‐element)
XML
dokumenta•
<prima>Ana</prima><salje>Ivo</salje><naslov>Podsjetnik</naslov><tekst>Nazovi me ovaj vikend!</tekst>četiri podelementa (eng. child‐elements) korijenskog elementa
•
</poruka>završni (dočetni) tag koji definira kraj korijenskog elementa
•
vidimo da XML dokument ima strukturu stabla
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
10
XML ‐
struktura•
svaki XML dokument ima strukturu stabla
•
mora
sadržavati
korijenski
element
(eng.
root‐element) ‐
nadelemet
(eng.
parent
element) svih ostalih elemenata u XML dokumentu
•
svi
elementi
XML
dokumenta
su
podelementi
(eng.
child‐elements)
korijenskog
elementa
•
svaki element XML dokumenta može sadržavati vlastite podelemente
•
generalna struktura XML dokumenta
<root>
<child>
<subchild1>...</subchild1>
<subchild2>...</subchild2>
</child>
</root>
•
termine
parent,
child
i
sibling
koristimo
kako
bismo
opisali
odnose
među
elementima
XML
dokumenta
– parent
je
nadelement
child
elementa,
a
elementi
na istoj razini nazivaju se sibling elementima
•
primjer: http://www.w3schools.com/xml/xml_tree.asp
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
11
XML –
prostor imena
•
XML
prostor
imena
(eng.
namespace)
– otklanja
mogućnost
podudaranja
imena
elemenata
koji
u
različitim
XML
dokumentima
mogu
imati
različit
smisao,
atribute
i
root‐elemente,
tj.
omogućava
da
se
isti
naziv
elementa
koristi za različite svrhe
•
ako
ova
dva
XML
dokumenta
spojimo
u
jedan
dolazi
do
sukoba
oko
imena
početnog
tag‐a
– početni
<table>
tag‐ovi
imaju
isto
ime,
ali
potpuno
različito
značenje i sadržaj
XML dokument koji sadrži informacije
o HTML tabliciXML dokument koji sadrži informacije
o stolu
<table>
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>
<table>
<name>African Coffee Table</name>
<width>80</width>
<length>120</length>
</table>
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
12
XML –
prostor imena
•
Sukob
oko
istog
imena
elementa
s
različitim
značenjem
i
sadržajem rješava
se
uvođenjem
prefiksa
koji
se
dodaje
ispred
imena
tag‐a
i
od
imena tag‐a se odvaja dvotočkom
XML dokument koji sadrži informacije o HTML tablici
XML dokument koji sadrži informacije o stolu
<h:table> <h:tr>
<h:td>Apples</h:td> <h:td>Bananas</h:td>
</h:tr> </h:table>
<f:table> <f:name>African Coffee
Table</f:name> <f:width>80</f:width>
<f:length>120</f:length> </f:table>
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
13
XML –
prostor imena•
prostoru
imena
može
se
dodijeliti
neka
vrijednost ‐
najčešće
adresa
s
koje
potječe
dokument
čije karakteristike su sadržaj XML dokumenta
•
vrijednost
prostora
imena
definiramo
pridruživanjem
određene
vrijednosti
atributu
xmlns
unutar
početnog
tag‐a
XML
elementa
u
kojem
koristimo
oznaku
(prefiks)
prostora imena:
xmlns:prefiks‐prostora‐imena=“prostor‐imena“
npr. xmlns:f="http://www.w3schools.com/furniture"
•
primjer:
<root>
<h:table
xmlns:h="http://www.w3.org/TR/html4/">
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
<f:table
xmlns:f="http://www.w3schools.com/furniture">
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
</root>
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
14
XML –
prostor imena
•
primjer:
vrijednost
prostora
imena
možemo
specificirati
i
kao
vrijednost xmlns atributa unutar početnog tag‐a root elementa
<root
xmlns:h="http://www.w3.org/TR/html4/" xmlns:f="http://www.w3schools.com/furniture">
<h:table> <h:tr>
<h:td>Apples</h:td> <h:td>Bananas</h:td>
</h:tr> </h:table>
<f:table> <f:name>African Coffee Table</f:name>
<f:width>80</f:width> <f:length>120</f:length>
</f:table> </root>
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
15
XML –
prostor imena•
pretpostavljeni
(default)
prostor
imena
‐
ako
se
neki
prostor
imena često
koristi
možemo
definirati
prepotstavljeni
(default)
prostor
imena
i
time
izbjeći stalno pisanje
oznake (prefiksa)
prostora
imena
•
primjer:
<root
xmlns="http://www.w3.org/TR/html4/"
xmlns:f="http://www.w3schools.com/furniture">
<table>
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>
<f:table>
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
</root>
•
primjer: http://www.w3schools.com/xml/xml_namespaces.asp
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
16
XML –
prostor imena
•
prazan
prostor
imena
– ako
nekim
elementima
XML
dokumenta
ne
želimo
pridružiti
prostor imena, onda kao
pretpostavljenu vrijednost
prostora
imena
definiramo
prazan
niz znakova, tj. atributu xmlns pridružimo prazan niz znakova
•
primjer:
<root
xmlns=""
xmlns:f="http://www.w3schools.com/furniture">
<table>
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>
<f:table>
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
</root>
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
17
XML ‐
valjanost•
valjan XML dokument
–
sintaktički
ispravan
(well‐formed)
XML
dokument
koji
poštuje definirana pravila logičke povezanosti elemenata, atributa i sadržaja
–
ukratko, sintaktički i logički ispravan XML dokument
•
logička
valjanost
XML
dokumenta
je
određena
shemom
pravila
koja
su definiranim
u
samom
XML
dokumentu
ili
u
posebnom
dokumentu
na
kojeg
se
pozivamo
u
XML
dokumentu;
postoje
dva
pristupa
ovom problemu
–
DTD (Document Type Definition) shema pravila
–
XML Schema pravila (alternativa DTD‐u podržana od strane W3C‐a)
•
oba
pristupa
određuju
koje
elemente
XML
dokument
smije
sadržavati
te propisuje redosljed i brojnost pojavljivanja dozvoljenih elemenata
•
valjanost XML dokumenta se provjerava u odnosu na određenu Document Type Definition (DTD) ili XML Schemu
pravila
•
dokument
sheme
specificira se u zaglavlju
XML dokumenta
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
18
DTD – Document Type Definition
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
19
XML – DTD shema
•
DTD –
definira strukturu XML dokumenta pomoću liste dozvoljenjih elemenata
i atributa•
u XML dokument može se uključivati na dva načina:–
unutarnja DTD deklaracija<?xml version="1.0"
encoding="ISO‐8859‐1“?>
<!DOCTYPE root‐element
[DTD‐deklaracije‐elemenata]>
<root‐element>...
</root‐element>–
vanjska DTD deklaracija<?xml version="1.0"
encoding="ISO‐8859‐1“?>
<!DOCTYPE root‐element
SYSTEM “DTD_shema_pravila.dtd">
<root‐element>...
</root‐element>
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
20
XML – DTD elementi•
svaki element opisuje se deklaracijom sljedećeg oblika:
<!ELEMENT ime_elementa pravilo>
•
‘pravilo’
u
deklaraciji
XML
elementa
određuje
tip
sadržaja
konkretnog elementa:
–
<!ELEMENT ime_elementa ANY>
sadržaj elementa mogu biti znakovni podaci, ali ne i novi (ugnježdeni) tag‐ovi
–
<!ELEMENT ime_elementa (#PCDATA)>
sadržaj
elementa
mogu
biti
samo
znakovni
podaci
(PCDATA
– parsed character data)
“PCDATA is text that will be parsed by a parser”
(www.w3schools.com)
“CDATA is text that will NOT be parsed by a parser”
(www.w3schools.com)
–
<!ELEMENT ime_elementa EMPTY>
element nema informacijskog sadržaja
–
primjer: http://www.w3schools.com/dtd/dtd_elements.asp
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
21
XML – DTD elementi
•
ako
neki
element
ima
child‐elemente
(npr.
svi
elementi
XML
dokumenta su
child‐elementi
root‐elementa),
onda
njegova
deklaracija
ima
sljedeći
oblik:
<!ELEMENT
ime_elementa (child1,
child2,...)>
•
child‐elementi
se
u
prethodnoj
deklaraciji
upisuju
redosljedom
kojim
se pojavljuju u samom XML dokumentu
•
primjer: DTD deklaracija za osnovni primjer (s početka predavanja)
<!ELEMENT poruka
(prima, salje, naslov, tekst)> <!ELEMENT prima
(#PCDATA)>
<!ELEMENT salje
(#PCDATA)> <!ELEMENT naslov
(#PCDATA)>
<!ELEMENT tekst
(#PCDATA)>
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
22
XML – DTD elementi
•
Ime
elementa
u
DTD
deklaraciji
može
se
proširiti
tzv.
operatorom pojavljivanja, npr.
–
<!ELEMENT
ime_elementa (ime_child_elementa)>
<!ELEMENT
poruka (naslov)>
element naslov se pojavljuje točno jedanput unutar elementa poruka
–
<!ELEMENT
ime_elementa (ime_child_elementa+)>
<!ELEMENT
poruka (naslov+)>
element
naslov
se
pojavljuje
jedan
ili
više
puta
unutar
elementa poruka
–
<!ELEMENT
ime_elementa (ime_child_elementa*)>
<!ELEMENT
poruka (naslov*)>
element naslov se pojavljuje nula ili više puta unutar elementa poruka
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
23
XML – DTD elementi
–
<!ELEMENT
ime_elementa (ime_child_elementa?)>
<!ELEMENT
poruka (naslov?)>
element naslov se pojavljuje nula ili jedanput unutar elementa poruka
–
<!ELEMENT
ime_elementa (child1, child2, (child3|child4))>
<!ELEMENT
poruka (prima, šalje, (naslov|tekst))>
element
poruka
mora
sadržavati
točno
jedno
pojavljivanje
elemenata prima
i
šalje
te
točno
jedno
pojavljivanje
ili
elementa
naslov
ili
elementa tekst
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
24
XML – DTD elementi
•
primjer: (unutarnja DTD shema)
<!DOCTYPE knjiga
[
<!ELEMENT knjiga
((naslov, autor, izdavač)* | pregled+ )
<!ELEMENT naslov
(#PCDATA)>
<!ELEMENT autor
(ime_autora+)>
<!ELEMENT ime_autora
(#PCDATA)>
<!ELEMENT izdavač
(logo?)>
<!ELEMENT logo EMPTY>
]>
•
element
knjiga
je
root
element ovog XML dokumenta
•
element
knjiga
može
sadržavati ILI
nula
ili
više
nizova
elemenata
naslov,
autor
i
izdavač
(u navedenom
rasporedu)
ILI
jedan
ili
više
elemenata
s
imenom pregled
•
element
autor
može
sadržavati jedan
ili
više
child‐elemenata
ime_autora
•
element logo (koji ne nosi nikakav sadržaj)
može
se
pojaviti
nula
ili
jedanput
kao
child‐element elementa izdavač
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
25
XML – DTD atributi
•
deklaracija atributa u DTD‐u vrši se pomoću ATTLIST deklaracije:
<!ATTLIST ime‐elementa
ime‐atributa
tip‐atributa
podrazumijevana‐vrijednost‐atributa>
•
primjer:
–
prazni XML element: <placanje
nacin= "kartica" />
–
pripadna DTD deklaracija atributa “nacin”:
<!ATTLIST placanje
nacin
CDATA "kartica">
•
tipovi atributa
http://www.w3schools.com/dtd/dtd_attributes.asp
•
podrazumijevane (eng. default) vrijednosti atributa:
#DEFAULT, #REQUIRED, #IMPLIED, #FIXED
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
26
XML – DTD atributi podrazumijevana vrijednost atributa
primjer: dio DTD sheme<!ELEMENT kvadrat
EMPTY>
<!ATTLIST kvadrat
stranica
CDATA "5">
•
element
“kvadrat”
ne
nosi nikakav
sadržaj
(tj.
“kvadrat”
je
prazan
element)
i
sadrži
atribut “stranica”
čija
je
vrijednost
tipa
CDATA
i
podrazumijevana vrijednost
je
jednaka
pet
(tj.
stranica=“5”)
primjer: XML element
<kvadrat
stranica="100" />
•
ako
vrijednost
atributa
“stranica” nije
specificirana,
atribut
stranica
poprima podrazumijevanu
vrijednost “5”
•
u gornjem slučaju atribut stranica poprima vrijednost “100”
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
27
XML – DTD atributi podrazumijevana vrijednost atributa
dio DTD sheme•
sintaksa:
<!ATTLIST ime‐elementa
ime‐atributa
tip‐atributa
#IMPLIED>
•
primjer:
<!ATTLIST kontakt
mobitel
CDATA #IMPLIED>
objašnjenje i XML element•
vrijednost
#IMPLIED
koristi
se
u
slučaju
kada
taj
atribut
nije obavezno
uključiti
u
element
i
kada
mu
nije
moguće
pridružiti neku
podrazumijevanu
vrijednost.
•
XML element:
<kontakt
mobitel=“0981234567" />
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
28
XML – DTD atributi zahtijevana vrijednost atributa
dio DTD sheme•
sintaksa:
<!ATTLIST ime‐elementa
ime‐atributa
tip‐atributa
#REQUIRED>
•
primjer:
<!ATTLIST osoba
JBMG
CDATA
#REQUIRED>
objašnjenje i XML element•
vrijednost #REQUIRED koristi se u
slučaju kada atributu nije moguće pridružiti
neku
podrazumijevanu
vrijednost,
ali
kada
želimo
da atribut obavezno bude prisutan
u
određenom elementu
•
XML element:
<osoba
JMBG=“1412956123456”>
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
29
XML – DTD atributi fiksirana vrijednost atributa
dio DTD sheme•
sintaksa:
<!ATTLIST ime‐elementa
ime‐atributa
tip‐atributa
#FIXED "vrijednost">
•
primjer:
<!ATTLIST sender
company
CDATA
#FIXED "Microsoft">
objašnjenje i XML element•
vrijednost
#FIXED
koristi
se
u
slučaju
kada
želimo
da
atribut ima
fiksiranu
vrijednost
koju
ni
sam autor ne može promijeniti
•
ako
autor
primijeni
vrijednost atributa
koji
je
tipa
#FIXED,
XML
parser prijavljuje grešku
•
XML element:
<sender
company="Microsoft" />
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
30
XML – DTD atributi lista vrijednosti atributa
dio DTD sheme•
sintaksa:
<!ATTLIST ime‐elementa
ime‐atributa
(vr1|vr2|..)
podrazumijevana‐vrij>
•
primjer:
<!ATTLIST placanje
nacin
(gotovina|kartica)
“gotovina">
objašnjenje i XML element•
listu
vrijednosti
atributa
(eng.
enumerated
attribute
values) koristimo
kada
želimo
da
atribut
poprimi
jednu
od
ponuđenih
ili deklariranih vrijednosti
•
XML element:
<placanje
nacin= "gotovina" />
ili
<placanje
nacin= "kartica" />
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
31
XML – DTD primjer
•
proanalizirajmo sljedeće primjere DTD shema pravila koje definiraju strukturu nekih XML dokumenata:
http://www.w3schools.com/dtd/dtd_examples.asp
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
32
XML Schema
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
33
XML Schema
•
XML Schema – osnovna svojstva
–
definira elemente i atribute koji se mogu pojaviti u XML dokumentu
–
određuje
koji
elementi
su
child‐elementi
te
određuje
njihov
broj
i raspored pojavljivanja u XML dokumentu
–
definira tip elemenata (prazan element, tekstualni element)
–
definira tip podataka za elemente i atribute
–
definira podrazumijevane i fiksiriane vrijednosti elemenata i atributa
•
XML Schema ‐
upotreba
–
alternativa DTD shemi pravila
–
W3C preporuka za definiranje strukture XML dokumenta
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
34
XML Schema
•
vanjska (eng. external) XML Schema za jednostavni XML dokument :
<?xml version="1.0"?>
<poruka
xmlns=http://www.w3schools.com
xmlns:xsi=http://www.w3.org/2001/XMLSchema‐instance
xsi:schemaLocation= http://www.w3schools.com/schema/poruka.xsd>
<prima>Ana</prima>
<šalje>Ivo</šalje>
<naslov>Podsjetnik</naslov>
<tekst>Nazovi me ovaj vikend!</tekst>
</poruka>
•
poruka.xsd
– XML Schema pravila spremljena kao posebni dokument
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
35
XML Schema•
unutarnja (eng. internal) XML Schema za jednostavni XML dokument
:
<?xml version="1.0"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3schools.com"
xmlns="http://www.w3schools.com" elementFormDefault="qualified">
<xs:element
name="poruka">
<xs:complexType>
<xs:sequence>
<xs:element
name="prima" type="xs:string"/>
<xs:element
name="salje" type="xs:string"/>
<xs:element
name="naslov" type="xs:string"/>
<xs:element
name="tekst" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
36
XML Schema
•
<schema>
– root‐element
svake
XML
Scheme
koji
može
sadržavati određene atribute:
<?xml version="1.0"?>
<xs:schema
xmlns:xs=http://www.w3.org/2001/XMLSchema
targetNamespace="http://www.w3schools.com"
xmlns=http://www.w3schools.com
elementFormDefault="qualified">
...
</xs:schema>
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
37
XML Schema
•
xmlns:xs=http://www.w3.org/2001/XMLSchema
–
znači da je elementima (schema, element, complexType, sequence) i tipovima
podataka
(string)
korištenima
u
XML
Schemi
pridružen
prostor
imena
http://www.w3.org/2001/XMLSchema
–
također znači da elementi i tipovi podataka kojima je pridružen ovaj prostora
imena trebaju imati prefiks xs:
•
targetNamespace=http://www.w3schools.com
–
znači
da
je
elementima
definiranima
XML
Schemom
(poruka,
prima,
salje,
naslov i tekst) pridružen prostor prostora imena http://www.w3schools.com
•
xmlns=http://www.w3schools.com
–
znači da je podrazumijevani prostor imena http://www.w3schools.com
•
elementFormDefault="qualified“
–
znači
da
svaki
element
korišten
u
XML
dokumentu
kojemu
je
pridružena
ova
XML Schema mora imati pridružen prostor imena određen u XML Schemi
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
38
XML Schema –
jednostavni elementi •
jednostavan element
–
element koji može sadržavati samo tekst
–
ne može sadržavati druge elemente niti atribute
•
sadržaj jednostavnog elementa može biti sljedećeg tipa:
–
xs:string, xs:decimal, xs:integer, xs:boolean, xs:date, xs:time
–
http://www.w3schools.com/schema/schema_dtypes_string.asp
–
definiranje jednostavnog elementa:
<xs:element
name="xxx" type="yyy"/>
•
primjer:
dio XML dokumenta dio pripadne XML Scheme
<ime>AAAAA</ime> <dob>28</dob> <rodjendan>
1981‐03‐27</rodjendan>
<xs:element
name= "ime" type="xs:string"/>
<xs:element
name= "dob" type="xs:integer"/>
<xs:element
name= "rodjendan" type="xs:date"/>
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
39
XML Schema –
jednostavni elementi
•
jednostavni
elementi
mogu
imati
ili
podrazumijevane
ili
fiksirane vrijednosti
•
deklariranje podrazumijevane vrijednosti jednostavnog elementa:
<xs:element
name= "boja" type="xs:string" default= "zelena"/>
‐
podrazumijevana vrijednost se automatski pridružuje elementu u slučaju da nije deklarirana neka druga vrijednost elementa
•
deklariranje fiksirane vrijednosti jednostavnog elementa:
<xs:element
name= "boja" type="xs:string" fixed= "zelena"/>
‐
fiksirana
vrijednost
se
automatski
pridružuje
elementu
i
nije
moguće deklarirati drugu vrijednost elementa
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
40
XML Schema – atributi
•
atributi
– uvijek
su
jednostavnog
tipa,
tj.
mogu
sadržavati
samo
podatke tipa xs:string, xs:decimal, xs:integer, xs:boolean, xs:date, xs:time
•
definiranje atributa:
<xs:attribute
name="xxx" type="yyy"/>
•
primjer:
<rijec
jezik="EN">Word</rijec>
<xs:attribute
name=“jezik" type="xs:string"/>
•
atributi mogu imati ili podrazumijevanu ili fiksiranu vrijednost:
–
deklariranje podrazumijevane vrijednosti atributa
<xs:attribute
name=“jezik" type="xs:string“
default="EN"/>
–
deklariranje fiksirane vrijednosti atributa
<xs:attribute
name=“jezik" type="xs:string“
fixed="EN"/>
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
41
XML Schema – atributi
•
proizvoljni (eng. optional) i obavezni (eng. required) atributi
–
podrazumijeva
se
da
je
svaki
atribut
proizvoljan
sve
dok
ga
se
ne deklarira kao obaveznog
•
deklaracija atributa kao proizvoljnog ili obaveznog
–
pomoću
atributa
“use”
koji
može
imati
vrijednost
“optional”
ili “required”
u XML Schemi
•
primjer:
–
deklariranje proizvoljnog atributa
<xs:attribute
name=“jezik" type="xs:string
"
use=
"optional"/>
–
deklariranje obaveznog atributa
<xs:attribute
name=“jezik" type="xs:string
"
use= "required"/>
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
42
XML Schema – restrikcije vrijednosti
•
restrikcije vrijednosti
–
koriste se za kontroliranje dopuštenih vrijednosti elemenata i atributa
–
restrikcije vrijednosti XML elemenata zovu se “facets”
•
primjeri restrikcija vrijednosti elemenata i atributa:
1.
restrikcija
na
vrijednosti
između
deklarirane
minimalne
i
maksimalne dozvoljene vrijednosti
2.
restrikcija na konačan skup deklariranih vrijednosti
3.
restrikcija na niz dozvoljenih vrijednosti
4.
restrikcija
duljine
dozvoljene
vrijednosti
između
deklarirane minimalne i maksimalne duljine
5.
restrikcija vrijednosti proširena operatorom pojavljivanja koji deklarira broj pojavljivanja deklarirane vrijednosti
•
primjer:
http://www.w3schools.com/schema/schema_facets.asp
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
43
XML Schema – složeni elementi
•
složeni elementi (eng. complex elements) – XML elementi koji osim teksta mogu sadržavati druge elemente i/ili atribute
•
postoje četiri vrste složenih elemenata:
1.
prazni elementi
2.
elementi koji sadrže samo tekst
3.
elementi koji sadrže samo druge elemente
4.
elementi koji sadrže i tekst i druge elemente
–
sve vrste složenih elemenata mogu, ali ne moraju, sadržavati atribute
•
primjer:
1.
prazan složeni element: <proizvod
kod="12345"/>
2.
složeni element koji sadrži samo tekst:
<proizvod
tip=“slastica">Sladoled</proizvod>
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
44
XML Schema – složeni elementi
•
primjer:
3. složeni element koji sadrži samo druge elemente:
<zaposlenik>
<ime>John</ime>
<prezime>Smith</prezime>
</zaposlenik>
4. složeni element koji sadrži i tekst i druge elemente:
<opis>
Dogodilo se
<datum
jezik=“hrvatski">06.04.2010.</datum> ....
</opis>
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
45
XML Schema – složeni elementi
•
definiranje
složenog
elementa
u
XML
Schemi
–
promotrimo
složeni element koji sadrži samo druge elemente:
<zaposlenik>
<ime>John</ime>
<prezime>Smith</prezime>
</zaposlenik>
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
46
XML Schema – složeni elementi
•
prvi način definiranja složenog elementa u XML Schemi:
<xs:element
name= "zaposlenik">
<xs:complexType>
<xs:sequence>
<xs:element
name= "ime" type="xs:string"/>
<xs:element
name= "prezime" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
•
<xs:sequence>
‐
child
elementi
<ime>
i
<prezime>
u
XML
dokumentu moraju se pojaviti u redoslijedu u kojem su navedeni u XML Schemi
•
u
ovom
slučaju
samo
element
<zaposlenik>
može
koristiti
definirani složeni tip
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
47
XML Schema – složeni elementi
•
drugi način definiranja složenog elementa u XML Schemi – od prvog se razlikuje po deklaraciji koja omogućuje da element <zaposlenik> sadrži atribut “type”
čija vrijednost upućuje na složeni tip kojeg treba koristiti:
<xs:element
name="zaposlenik" type="OsobnoIme">
<xs:complexType
name="OsobnoIme">
<xs:sequence>
<xs:element
name= "ime" type="xs:string"/>
<xs:element
name= "prezime" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
48
XML Schema – složeni elementi
•
ovaj drugi način definiranja složenih elemenata u XML Schemi omogućuje da više različitih elemenata koristi isti definirani složeni tip, npr.
<xs:element
name="zaposlenik" type="OsobnoIme"/>
<xs:element
name="student" type="OsobnoIme"/>
<xs:element
name="clan" type="OsobnoIme"/>
<xs:complexType
name="OsobnoIme">
<xs:sequence>
<xs:element
name="firstname" type="xs:string"/>
<xs:element
name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
49
XML Schema prazni složeni elementi
•
prazni složeni element
–
može sadržavati atribute
–
ne
može
sadržavati
nikakav
sadržaj
(niti
tekst
niti
druge
elemente)
između
svog
početnog i završnog taga
•
primjer:
–
element: <proizvod
kod="12345"/>
–
XML Schema 1: <xs:element
name="proizvod">
<xs:complexType>
<xs:attribute
name="kod" type="xs:positiveInteger"/>
</xs:complexType>
</xs:element>
–
XML Schema 2: <xs:element
name="proizvod" type="KodProizvoda"/>
<xs:complexType
name="KodProizvoda">
<xs:attribute
name="kod" type="xs:positiveInteger"/>
</xs:complexType>
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
50
XML Schema tekstualni složeni elementi
•
tekstualni složeni element – može sadržavati tekst i atribute, tj. sadrži samo
sadržaj jednostavnog tipa
•
stoga deklaraciju sadržaja u XML Schemi zatvaramo u <xs:simpleContent>
</simpleContent> tagove
•
čim koristimo <xs:simpleContent> okruženje moramo definirati proširenje ili
restrikciju tipa podataka iz kojeg može biti vrijednosti elementa ili atributa:
Proširenje... Restrikcija...
<xs:element
name="somename">
<xs:complexType> <xs:simpleContent> <xs:extension
base="basetype"> .... ....
</xs:extension></xs:simpleContent>
</xs:complexType> </xs:element>
<xs:element
name="somename">
<xs:complexType> <xs:simpleContent> <xs:restriction
base="basetype"> .... ....
</xs:restriction> </xs:simpleContent>
</xs:complexType> </xs:element>
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
51
XML Schema tekstualni složeni elementi
•
primjer:
–
element: <BrojCipela
zemlja=“hrvatska">40</BrojCipela>
–
XML Schema 1:
<xs:element
name="BrojCipela">
<xs:complexType>
<xs:simpleContent>
<xs:extension
base="xs:integer">
<xs:attribute
name="zemlja" type="xs:string" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
52
XML Schema tekstualni složeni elementi
•
XML Schema 2:
<xs:element
name="BrojCipela" type="TipBroja"/>
<xs:complexType
name="TipBroja">
<xs:simpleContent>
<xs:extension
base="xs:integer">
<xs:attribute
name="zemlja" type="xs:string" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
53
XML Schema ‐
složeni elementi s mješovitim sadržajem
•
složeni elementi s mješovitim sadržajem – mogu sadržavati tekst, atribute i druge elemente
•
primjer:
–
element:
<letter>
Dear Mr.<name>John Smith</name>.
Your order <orderid>1032</orderid>
will be shipped on <shipdate>2001‐07‐13</shipdate>.
</letter>
–
XML Schema 1:
<xs:element
name="letter">
<xs:complexType
mixed="true">
<xs:sequence>
<xs:element
name="name" type="xs:string"/>
<xs:element
name="orderid" type="xs:positiveInteger"/>
<xs:element
name="shipdate" type="xs:date"/>
</xs:sequence>
</xs:complexType>
</xs:element>
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
54
XML Schema – složeni elementi s mješovitim sadržajem
•
primjer:
–
XML Schema 2:
<xs:element
name="letter" type="lettertype"/>
<xs:complexType
name="lettertype" mixed="true">
<xs:sequence>
<xs:element
name="name" type="xs:string"/>
<xs:element
name="orderid" type="xs:positiveInteger"/>
<xs:element
name="shipdate" type="xs:date"/>
</xs:sequence>
</xs:complexType>
–
vrijednost “true”
atributa “mixed”
(tj. mixed=“true”) omogućuje pojavljivanje
tekstualnog sadržaja između child‐elemenata nekog elementa (name, orderid
i shipdate su child‐elementi elementa letter)
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
55
XML Schema –
indikatori
•
indikatori – omogućuju kontroliranje upotrebe elemenata u XML dokumentu
•
razlikujemo tri kategorije sa ukupno sedam indikatora:
1.
indikatori redosljeda (eng. order indicators)
•
all, choice, sequence
2.
indikatori pojavljivanja (eng. occurence indicators)
•
maxOccurs, minOccurs
3.
indikatori grupe (eng. group indicators)
•
Group name, attributeGroup name
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
56
XML Schema –
indikatori redosljeda
•
all indikator – znači da se child‐elementi u XML dokumentu mogu pojaviti u
bilo
kojem
redosljedu
i
da
se
svaki
child‐element
može
pojaviti
točno
jedanput
<xs:all> ... </xs:all>
•
choice
indikator
– znači
da
se
od
svih
navedenih
child‐elemenata
u
XML dokumentu može pojaviti samo jedan
<xs:choice> ... </xs:choice>
•
sequence
indikator
– znači
da
se
svi
child‐elementi
u
XML
dokumentu moraju pojaviti redom kako su definirani u XML Schemi
<xs:sequence> ... </xs:sequence>
•
primjer:
http://www.w3schools.com/schema/schema_complex_indicators.asp
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
57
XML Schema –
indikatori pojavljivanja
•
indikatori pojavljivanja – definiraju broj pojavljivanja elementa•
maxOccurs indikator ‐
definira maksimalan broj mogućih pojavljivanja
elementa•
minOccurs indikator ‐
definira minimalan broj mogućih pojavljivanja elementa
•
primjer: http://www.w3schools.com/schema/schema_complex_indicators.asp
<xs:element
name="person">
<xs:complexType> <xs:sequence> <xs:element
name="full_name" type="xs:string"/>
<xs:element
name="child_name" type="xs:string“
maxOccurs="10" minOccurs="0"/> </xs:sequence>
</xs:complexType> </xs:element>
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
58
XML Schema –
indikatori grupe
•
indikatori grupe elemenata
– koriste se za definiranje povezanih skupova elemenata
–
deklaracija:
<xs:group
name="groupname"> ... </xs:group>
•
Indikatori grupe atributa
–
deklaracija:
<xs:attributeGroup
name="groupname"> ... </xs:attributeGroup>
•
primjer:
http://www.w3schools.com/schema/schema_complex_indicators.asp
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
59
XML Schema –
element “any”•
element
“any”
–
omogućuje
proširenje
XML
dokumenta
elementom
koji
nije definiran u XML Schemi pridruženoj tom XML dokumentu
•
primjer:
nakon
child‐elementa
“lastname”
elementa
“person”
pomoću elementa
“any”
omogućujemo
dodavanje
nekog
novog
child‐elementa
koji nije definiran u ovoj XML Schemi
<xs:element
name="person">
<xs:complexType>
<xs:sequence>
<xs:element
name="firstname" type="xs:string"/>
<xs:element
name="lastname" type="xs:string"/>
<xs:any
minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
60
XML Schema –
element “any”•
primjer: XML Schema u kojoj definiramo novi element “children”
<?xml version="1.0" encoding="ISO‐8859‐1"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3schools.com"
xmlns="http://www.w3schools.com" elementFormDefault="qualified">
<xs:element
name="children">
<xs:complexType>
<xs:sequence> <xs:element
name="childname" type="xs:string"
maxOccurs="unbounded"/> </xs:sequence>
</xs:complexType> </xs:element>
</xs:schema>
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
61
XML Schema –
element “any”
•
primjer: XML dokument koji, zbog prisutnosti elementa “any”
u XML Schemi u kojoj je
definiran
element
“person”,
omogućuje
korištenje
elementa
“children”
(definiranog
u
drugoj
XML
Schemi)
kao
child‐
elementa elementa person:
<?xml version="1.0" encoding="ISO‐8859‐1"?>
<persons xmlns="http://www.microsoft.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema‐instance"
xsi:SchemaLocation="http://www.microsoft.com family.xsd
http://www.w3schools.com children.xsd">
<person>
<firstname>Hege</firstname>
<lastname>Refsnes</lastname>
<children>
<childname>Cecilie</childname>
</children>
</person>
<person>
<firstname>Stale</firstname>
<lastname>Refsnes</lastname>
</person>
</persons>
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
62
XML Schema primjer
•
proanalizirajmo sljedeći primjer XML dokumenta i XML Scheme koja definira njegovu strukturu:
http://www.w3schools.com/schema/schema_example.asp
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
63
XML – opće informacije
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
64
XML – prikaz na web‐u
•
na
web
stranici
se
pomoću
preglednika čisti
XML
dokument
vidi
kao običan
tekst
s umetnutim
tagovima
(bez ikakvog stilskog uređenja)
•
neki
internet
preglednici
(npr.
IE
i
Mozilla)
prikazuju
stablo
na
kojem
se klikom
na
odgovarajući čvor
njemu
podređene
grane
XML
dokumenta
mogu prikazati ili sakriti
od
prikazivanja
http://www.w3schools.com/xml/xml_view.asp
•
ako želimo neki XML
dokument
prikazati
u
određenom
formatu,
to možemo postići na jedan od sljedeća tri načina (detaljnije na vježbama):
–
u
XML
dokumentu
navesti
naziv
CSS
datoteke
koja
ga
formatira
na odgovarajući način
http://www.w3schools.com/xml/xml_display.asp
–
koristiti
XSLT (eXtensible
Stylesheet
Language Transformations)
http://www.w3schools.com/xml/xml_xsl.asp
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
65
XML – upotreba
•
Osnovnu upotrebu XML‐a možemo sažeti na sljedeći način:
–
odvajanje podataka od prezentacije
–
razmjena/prijenos
podataka
–
pohrana
podataka
–
povećanje
dostupnosti
podataka
–
izrada novih specijaliziranih markup jezika
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
66
XML ‐
prednosti•
jednostavno
je
čitljiv
i čovjeku
u običnom
tekstualnom
editoru
i računalu
•
XML dokument
je
obična
tekstualna
datoteka
čitljiva
na
svakoj
platformi
koja
može
čitati
tekstovne
podatke.
To
ga
čini
neosjetljivim
na
tehnološke
promjene
jer
bez
obzira
na
napredak
tehnologije, tekstovni
podaci
će još jako
dugo
ostati
nešto
što
će svaki računalni
sustav
trebati
moći pročitati
•
podržava
Unicode i omogućuje
prikaz
teksta
na
svim
danas
poznatim
jezicima
•
format
je
samodokumentirajući
‐
oznake
opisuju
sadržaj
koji
se
nalazi
unutar
njih•
Ima
stroga
sintaktička
pravila
tako
da
je
jednostavno
kontrolirati
ispravnost
nastalog
dokumenta
– računalni
programi
koji
obrađuju
dokument
stoga
mogu jednostavno obrađivati XML sadržaj•
XML je međunarodno prihvaćen standard – mnogi proizvođači programa su ga
prihvatili i koriste u svojim proizvodima•
hijerarhijska struktura je pogodna za opisivanje mnogih sadržaja
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
67
XML ‐
nedostaci•
sintaksa
je
redundantna
i
opširna
što
može
zamarati
i
zbunjivati
osobu
koja čita
XML
dokument,
a
računalni program
koji
obrađuje
dokument
morat će
obrađivati
veliku
količinu
podataka što će ga djelomično usporiti
•
da bi dokument bio dovoljno dobro "samoopisan" nazivi oznaka moraju biti
dovoljno
precizni
što
dovodi
do
dugih
naziva
(npr.
u
nekom
dokumentu
nije
dovoljan
opis
podatka
Ime_i_prezime
jer
to može
biti
ime i prezime osobe koja je kreirala dokument, ali i osobe na
koju se slog odnosi, osobe kojoj se dokument šalje,...)
•
nije
dovoljno
osloniti
se na
"samoopisivanje" sadržaja.
•
redundancija
i velika
količina
podataka
stvaraju
velike
zahtjeve
za
propusnosti
mreže
(iako
to
danas
uglavnom
više
nije
problem)
•
programi
koji
obrađuju
XML
podatke
su
dosta
složeni
jer
moraju
obrađivati
velike
količine
ugniježđenih podataka u više razina
•
nedostatak formalno propisanih formata za podatke može stvarati probleme
ako
sudionici
u
razmjeni
nisu
dobro
opisali
(npr. da
li
se
decimalni
brojevi
prikazuju
s decimalnom
točkom
ili
zarezom
•
pohrana
XML
podataka
u
relacijske
baze
podataka
nije
prirodan
način
i
to
dovodi
do
smanjenja
performansi
sustava
koji
koriste
takav
način
pohrane.
S
druge
strane
XML
baze
podataka koje su razvijene za pohranu XML podataka još
su u fazi razvoja
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
68
XML ‐
inačice•
XML 1.0 ‐
inicijalno je stvoren 1998. godine
–
ova
inačica
je
do
danas
imala
nekoliko
manjih
revizija,
širom
je
prihvaćena
i
još
i
danas
se preporučuje
za korištenje
–
temelji
se
na
filozofiji
da
je
zabranjeno
sve
što
nije
dozvoljeno.
S
razvojem
drugih
standarda
na
koje
se
oslanja
(prvenstveno
Unicode
standarda)
dolazilo
je
prvenstveno na velikim sustavima (IBM mainframe) do
određenih problema jer se
nisu mogli
koristiti
oni
znakovi
koju
u vrijeme
definiranja
standarda
nisu
postojali.
•
XML 1.1 ‐
inicijalno je objavljen 2004. godine
–
ima
određena
svojstva
koja
olakšavaju
rad
programima
na
velikim
računalnim
sustavima
–
njezin
pristup
je
da
je
sve
što
nije
zabranjeno
dozvoljeno
‐
na
takav
način
omogućuje
se
korištenje
svih
budućih
Unicode
znakova
koji
će se
bilo
kada
u
budućnosti
definirati
–
zbog
svoje
raširenosti
uglavnom
se
još
uvijek
koristi
verzija
XML
1.0
jer
je
zadovoljavajuća za
većinu
korisnika.
Korisnici
na
velikim
računalnim
serverimakoji
imaju
problema
s
ograničenjima
verzije
XML
1.0
uglavnom
su
prešli
na
korištenje
verzije
XML 1.1.
15.3.2012.Odjel za matematiku, Sveučilište J.J.
Strossmayera, Osijek
69
XML ‐
literatura
1.
http://www.w3schools.com
2.
XML –
materijali prof. Esserta