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

Web programiranje i primjene15.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: –

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Web programiranje i primjene15.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: –

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

Strossmayera, Osijek

1

Web programiranje i primjene

XML

– eXtensible Markup Language

Page 2: Web programiranje i primjene15.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: –

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 

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

Page 3: Web programiranje i primjene15.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: –

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

Page 4: Web programiranje i primjene15.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: –

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 

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 

Page 5: Web programiranje i primjene15.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: –

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 

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

Page 6: Web programiranje i primjene15.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: –

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

Page 7: Web programiranje i primjene15.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: –

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

Page 8: Web programiranje i primjene15.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: –

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:

‘<‘

&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 ©

Page 9: Web programiranje i primjene15.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: –

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

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

Page 10: Web programiranje i primjene15.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: –

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

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

Page 11: Web programiranje i primjene15.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: –

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

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>

Page 12: Web programiranje i primjene15.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: –

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

Strossmayera, Osijek

12

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>

Page 13: Web programiranje i primjene15.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: –

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 

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> 

Page 14: Web programiranje i primjene15.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: –

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

Strossmayera, Osijek

14

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> 

Page 15: Web programiranje i primjene15.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: –

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 

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

Page 16: Web programiranje i primjene15.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: –

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> 

Page 17: Web programiranje i primjene15.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: –

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 

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

Page 18: Web programiranje i primjene15.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: –

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

Strossmayera, Osijek

18

DTD – Document Type Definition

Page 19: Web programiranje i primjene15.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: –

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>

Page 20: Web programiranje i primjene15.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: –

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’ 

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

Page 21: Web programiranje i primjene15.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: –

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 

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

Page 22: Web programiranje i primjene15.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: –

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

Strossmayera, Osijek

22

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

Page 23: Web programiranje i primjene15.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: –

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 

šalje 

te 

točno 

jedno 

pojavljivanje 

ili 

elementa 

naslov 

ili 

elementa tekst

Page 24: Web programiranje i primjene15.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: –

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 

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č

Page 25: Web programiranje i primjene15.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: –

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

Page 26: Web programiranje i primjene15.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: –

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) 

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”

Page 27: Web programiranje i primjene15.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: –

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 

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

Page 28: Web programiranje i primjene15.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: –

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 

određenom elementu

XML element:

<osoba

JMBG=“1412956123456”>

Page 29: Web programiranje i primjene15.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: –

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 

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

Page 30: Web programiranje i primjene15.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: –

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

Page 31: Web programiranje i primjene15.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: –

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

Page 32: Web programiranje i primjene15.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: –

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

Strossmayera, Osijek

32

XML Schema

Page 33: Web programiranje i primjene15.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: –

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

Page 34: Web programiranje i primjene15.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: –

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 

Page 35: Web programiranje i primjene15.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: –

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>

Page 36: Web programiranje i primjene15.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: –

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>

Page 37: Web programiranje i primjene15.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: –

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 

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

Page 38: Web programiranje i primjene15.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: –

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

Page 39: Web programiranje i primjene15.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: –

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 

nije 

moguće  deklarirati drugu vrijednost elementa

Page 40: Web programiranje i primjene15.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: –

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

Page 41: Web programiranje i primjene15.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: –

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

Page 42: Web programiranje i primjene15.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: –

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 

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

Page 43: Web programiranje i primjene15.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: –

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>

Page 44: Web programiranje i primjene15.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: –

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>

Page 45: Web programiranje i primjene15.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: –

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

Strossmayera, Osijek

45

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>

Page 46: Web programiranje i primjene15.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: –

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> 

<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

Page 47: Web programiranje i primjene15.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: –

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>

Page 48: Web programiranje i primjene15.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: –

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>

Page 49: Web programiranje i primjene15.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: –

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>

Page 50: Web programiranje i primjene15.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: –

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>

Page 51: Web programiranje i primjene15.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: –

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>

Page 52: Web programiranje i primjene15.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: –

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>

Page 53: Web programiranje i primjene15.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: –

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>

Page 54: Web programiranje i primjene15.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: –

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)

Page 55: Web programiranje i primjene15.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: –

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

Page 56: Web programiranje i primjene15.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: –

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 

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

Page 57: Web programiranje i primjene15.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: –

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>

Page 58: Web programiranje i primjene15.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: –

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

Page 59: Web programiranje i primjene15.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: –

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>

Page 60: Web programiranje i primjene15.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: –

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>

Page 61: Web programiranje i primjene15.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: –

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 

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>

Page 62: Web programiranje i primjene15.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: –

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

Page 63: Web programiranje i primjene15.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: –

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

Strossmayera, Osijek

63

XML – opće informacije

Page 64: Web programiranje i primjene15.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: –

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

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

Page 65: Web programiranje i primjene15.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: –

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

Page 66: Web programiranje i primjene15.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: –

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

Page 67: Web programiranje i primjene15.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: –

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

Strossmayera, Osijek

67

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

Page 68: Web programiranje i primjene15.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: –

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

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.

Page 69: Web programiranje i primjene15.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: –

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