71
18.3.2011. Odjel za matematiku, Sveučilište J.J. Strossmayera, Osijek 1 Web programiranje i primjene XML –eXtensible Markup Language

Xml

Embed Size (px)

DESCRIPTION

World Wide Web (Web) je svjetska mreža računala s izvorima (engl. resources) digitalne informacije. S obzirom na raznolikost digitalne informacije: tekst, slika, zvuk, video, program i dr. govorimo općenito o izvoru informacije ili WEB dokumentu. WEB programiranje se oslanja na tri mehanizma koja čine ove izvore dostupnima najširoj svjetskoj javnosti: 1. Jedinstvena shema imena za traženje (lociranje) izvora na mreži. 2. Protokoli za pristup informaciji preko WEB-a, kao što je npr. HTTP protokol. Protokoli su skup standardizirane informacije za prijenos digitalnog sadržaja preko mreže. 3. Hipertekst (engl. Hypertext) za jednostavnu navigaciju između informacijskih izvora, kao što je na primjer HTML (hypertext markup language). Svaki izvor informacije na WEB-u (HTML ili XML dokument, slika, video, program i sl.) ima jednoznačnu adresu koja se dekodira preko URI-a (Universal Resource Identifier). URI se sastoji od tri dijela: 1. Protokola pristupa izvoru (npr. http, ftp, mailto i sl.) 2. Imena stroja na kojem se izvor informacije nalazi (npr. www.fsb.hr). 3. Punog imena izvora zadanog stazom (engl. path). URI ima različite uloge: povezivanje mjesta unutar istog dokumenta, povezivanje različitih dokumenata, dohvaćenje slika, objekat

Citation preview

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek1

Web programiranje i primjene

XML

– eXtensible Markup Language

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek2

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 

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.”

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek3

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

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek4

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 

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 

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek5

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 

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 

završni tag mogu reducirati u jedan tag sljedećeg oblika: <tag/>•

Primjer:

http://www.w3schools.com/xml/xml_elements.asp

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek6

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

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek7

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

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek8

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:

‘<‘

&lt;      ‘>’

&gt;     ‘&’

&amp;      ‘

&apos;

&quot;

za 

umetanje 

drugih 

posebnih 

znakova 

koristimo 

njihove 

heksadecimalne  ekvivalente 

kojima 

prethode 

znakovi 

‘&#x’, 

npr. 

za 

znak 

© koristimo 

kod 

‘&#xA9 ’, gdje je heksadecimalni broj ‘A9’

ekvivalent ASCII znaka ©

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek9

XML – struktura osnovnog primjera

<?xml version="1.0 " encoding="ISO‐8859‐1“?> XML 

deklaracija 

koja 

definira 

verziju 

XML‐a 

(version="1.0") 

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

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek10

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

sibling 

koristimo 

kako 

bismo 

opisali 

odnose 

među 

elementima 

XML 

dokumenta 

– parent 

je 

nadelement 

child 

elementa, 

elementi 

na istoj razini nazivaju se sibling elementima

primjer: http://www.w3schools.com/xml/xml_tree.asp

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek11

XML –

prostor imena

XML 

prostor 

imena 

(eng. 

namespace) 

– otklanja 

mogućnost

podudaranja

imena

elemenata

koji

različitim

XML 

dokumentima

mogu

imati

različit

smisao, 

atribute

root‐elemente, 

tj. 

omogućava 

da 

se 

isti 

naziv 

elementa 

koristi za različite svrhe

ako 

ova 

dva 

XML 

dokumenta 

spojimo 

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>

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek12

XML –

prostor imena

Sukob 

oko 

istog 

imena 

elementa 

različitim 

značenjem 

sadržajem  rješava 

se 

uvođenjem 

prefiksa 

koji 

se 

dodaje 

ispred 

imena 

tag‐a 

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>

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek13

XML –

prostor imena•

prostoru 

imena 

može 

se 

dodijeliti 

neka

vrijednost  ‐

najčešće 

adresa 

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 

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> 

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek14

XML –

prostor imena

primjer: 

vrijednost 

prostora 

imena 

možemo 

specificirati 

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> 

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek15

XML –

prostor imena•

pretpostavljeni 

(default) 

prostor 

imena 

ako

se 

neki

prostor

imena  često

koristi

možemo

definirati 

prepotstavljeni 

(default)

prostor 

imena 

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

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek16

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> 

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek17

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 

samom 

XML 

dokumentu 

ili 

posebnom 

dokumentu 

na 

kojeg 

se 

pozivamo 

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

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek18

DTD – Document Type Definition

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek19

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>

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek20

XML – DTD elementi•

svaki element opisuje se deklaracijom  sljedećeg oblika:

<!ELEMENT     ime_elementa     pravilo>

‘pravilo’ 

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

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek21

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 

prethodnoj 

deklaraciji 

upisuju 

redosljedom 

kojim 

se  pojavljuju u samom XML dokumentu

primjer: DTD deklaracija za osnovni primjer (s početka predavanja)

<!ELEMENT poruka

(prima, šalje, naslov, tekst)> <!ELEMENT prima

(#PCDATA)>

<!ELEMENT šalje

(#PCDATA)> <!ELEMENT naslov

(#PCDATA)>

<!ELEMENT tekst

(#PCDATA)>

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek22

XML – DTD elementi

Ime 

elementa 

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

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek23

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 

šalje 

te 

točno 

jedno 

pojavljivanje 

ili 

elementa 

naslov 

ili 

elementa tekst

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek24

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 

izdavač

(u  navedenom 

rasporedu) 

ILI

jedan 

ili 

više 

elemenata 

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č

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek25

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

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek26

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) 

sadrži 

atribut  “stranica”

čija 

je 

vrijednost 

tipa 

CDATA 

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”

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek27

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 

slučaju 

kada 

taj 

atribut 

nije  obavezno 

uključiti 

element 

kada 

mu 

nije 

moguće 

pridružiti  neku 

podrazumijevanu 

vrijednost.

XML element:

<kontakt 

mobitel=“0981234567" />

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek28

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 

određenom elementu

XML element:

<osoba

JMBG=“1412956123456”>

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek29

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 

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

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek30

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

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek31

XML – DTD primjer

proanalizirajmo sljedeće primjere DTD shema pravila koje definiraju  strukturu nekih XML dokumenata:

http://www.w3schools.com/dtd/dtd_examples.asp

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek32

XML Schema

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek33

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

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek34

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 

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek35

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>

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek36

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>

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek37

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 

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 

XML 

dokumentu 

kojemu 

je 

pridružena 

ova 

XML Schema mora imati pridružen prostor imena određen u XML Schemi

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek38

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

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek39

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 

nije 

moguće  deklarirati drugu vrijednost elementa

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek40

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

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek41

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

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek42

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 

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

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek43

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>

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek44

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>

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek45

XML Schema – složeni elementi

definiranje 

složenog 

elementa 

XML 

Schemi 

promotrimo 

složeni  element koji sadrži samo druge elemente:

<zaposlenik> 

<ime>John</ime>

<prezime>Smith</prezime> 

</zaposlenik>

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek46

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> 

<prezime> 

XML 

dokumentu  moraju se pojaviti u redoslijedu u kojem su navedeni u XML Schemi

ovom 

slučaju 

samo 

element 

<zaposlenik> 

može 

koristiti 

definirani  složeni tip

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek47

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>

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek48

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>

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek49

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>

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek50

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>

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek51

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>

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek52

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>

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek53

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>

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek54

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)

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek55

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

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek56

XML Schema –

indikatori redosljeda

all indikator – znači da se child‐elementi u XML dokumentu mogu pojaviti  u 

bilo 

kojem 

redosljedu 

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 

XML  dokumentu može pojaviti samo jedan

<xs:choice> ... </xs:choice>

sequence 

indikator 

– znači 

da 

se 

svi 

child‐elementi 

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

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek57

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>

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek58

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

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek59

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>

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek60

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>

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek61

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 

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>

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek62

XML Schema primjer

proanalizirajmo sljedeći primjer XML dokumenta i XML Scheme koja  definira njegovu strukturu:

http://www.w3schools.com/schema/schema_example.asp

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek63

XML – opće informacije

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek64

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

određenom 

formatu, 

to  možemo postići na jedan od sljedeća tri načina (detaljnije na vježbama):

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

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek65

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

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek66

XML –

proširenja i tehnologije

XPath

jezik

koji

omogućuje

jednostavnije

pretraživanje

sadržaja

u

XML  dokumentu.

XQuery 

upitni 

jezik 

za 

pretraživanje 

XML 

dokumenta. 

On 

je 

za 

XML 

isto  ono što je SQL za relacijske baze podataka

XSLT

jezik

koji

omogućuje

transformacije

XML 

dokumenata

iz

jednog  formata u drugi (npr. iz XMLa u XHTML)

XSL‐FO

jezik

koji

služi

za formatiranje

izlaznog

rezultata

XML

dokumenta

XML 

Linking 

Language

jezik

koji

opisuje

standardni

način

kreiranja  hiperlinkova u XML dokumentima

XML 

Pointer 

Language 

jezik 

koji 

opisuje 

standardni 

način 

na 

koji  hiperlinkovi pokazuju na određeno mjesto unutar XML dokumenta

XML 

Document 

Object 

Model 

(DOM) 

sučelje 

koje 

omogućuje računalnim

programima

pristup

ažuriranje

sadržaja

strukture

XML

dokumenta

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek67

XML –

proširenja i tehnologije

SOAP 

jednostavan

protokol

temeljen

na

XMLu

koji

omogućuje  aplikacijama 

razmjenu 

podataka 

tekstualnom 

obliku

preko

HTTP 

protokola

Web 

Services 

Description 

Language 

(WSDL) 

jezik 

baziran na XMLu koji omogućuje

opis

web servisa

i sučelja

za njihovo

korištenje

Really 

Simple 

Syndication 

(RSS) 

način

za 

distribuciju

sadržaja 

jednog  web‐a na druge pomoću XMLa

Wireless 

Application 

Protocol 

(WAP)

protokol

razvijen

s

namjerom pristupa

internetskim

sadržajima

pomoću prijenosnih 

uređaja 

(mobitela, 

ručnih računala...)

XML 

Signature

definira

sintaksu

pravila

za 

kreiranje

digitalnog

potpisa XML sadržaja

XML Encryption ‐

definira

sintaksu

i pravila

za šifriranje

XML

sadržaja

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek68

XML ‐

prednosti•

jednostavno

je

čitljiv

i čovjeku

u običnom

tekstualnom

editoru

i računalu

XML 

dokument

je

obična

tekstovna

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 

sintaksna 

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

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek69

XML ‐

nedostaci•

sintaksa

je

redundantna

opširna

što

može

zamarati

zbunjivati

osobu

koja  čita 

XML 

dokument, 

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

razmjeni

nisu

dobro

opisali

(npr. da

li

se

decimalni

brojevi

prikazuju

s decimalnom

točkom

ili

zarezom

pohrana 

XML 

podataka 

relacijske 

baze 

podataka 

nije 

prirodan 

način 

to 

dovodi

do 

smanjenja

performansi

sustava

koji

koriste

takav

način

pohrane. 

druge 

strane 

XML 

baze 

podataka koje su razvijene za pohranu XML podataka još

su u fazi razvoja

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek70

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

još

danas

se preporučuje

za korištenje

temelji

se 

na

filozofiji

da

je

zabranjeno

sve

što

nije

dozvoljeno. 

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

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

ograničenjima

verzije

XML 

1.0 

uglavnom

su

prešli

na

korištenje

verzije

XML 1.1.

18.3.2011.Odjel za matematiku, Sveučilište J.J. 

Strossmayera, Osijek71

XML ‐

literatura

1.

http://www.w3schools.com

2.

XML –

materijali prof. Esserta