Post on 06-Jul-2018
8/17/2019 AS 6-XML Schema
1/17
XML Schema
Aplikativni softver
8/17/2019 AS 6-XML Schema
2/17
Aplikativni softver 2
XML Schema
Šta je XML Schema?
XML Schema predstavlja XML dokument koji sadrži formalan opisonoga od čega se sastoji validan XML dokument. XML dokumentopisan šemom naiva se primerak dokumenta !instance document "# iako adovoljava sva ograničenja adata šemom# proglašava sevalidnim u odnosu na šemu.
XML Schema dokumenti imaju eksteniju .$sd jer se pišu u XS% ! XMLSchema Definition" jeiku.
XML Schema&
omogu'ava validaciju XML dokumenta prema detaljnoj specifikaciji podržava sintaksu XML(a omogu'ava tipiaciju podataka i prika ograničenja koristi prostor imena !namespace" preentuje vee koje postoje ime)u elemenata
8/17/2019 AS 6-XML Schema
3/17
Aplikativni softver 3
XML Schema
*rimer & ramotrimo element quantity a koji aplikacija smatra da predstavljapoitivan ceo +roj.
%,% i XML Schema
-/L/M/0, 1uantit2 !3*4%5,5" 6
-$sd&schema $mlns&$sd78http&99:::.:;.org99XMLSchema86 -$sd&element name781uantit28 t2pe7$sd&non0egative@nteger A96-$sd&9schema6
%,% deklaracija elementa quantity
%eklaracija elementa quantity u XML Schema
%,% deklaracija 'e smatrati da je slede'i XML kod validan&
-1uantit26B-91uantit26-1uantit26(
8/17/2019 AS 6-XML Schema
4/17
Aplikativni softver 4
XML Schema
*ridruživanje šeme XML dokumentu
Šema se primerku dokumenta može pridružiti na jedan od slede'ihnačina&
koriš'enjem atri+uta $si&schemaLocation nekog elementa koji sadržispisak prostora imena upotre+ljenih unutar tog elementa i spisak CDL
adresa šema pomo'u kojih tre+a proveriti validnost elemenata iatri+uta u tim prostorima imena
koriš'enjem atri+uta $si&no0amespaceSchemaLocation koji sadržiCDL adresu šeme koju tre+a upotre+iti a proveru validnosti elemenata
koji ne pripadaju nijednom prostoru imena
idavanjem komande analiatoru validnosti da proveri validnostdatog dokumenta u odnosu na eksplicitno adatu šemu i da anemarisva uputstva te vrste u samom dokumentu
8/17/2019 AS 6-XML Schema
5/17
Aplikativni softver 5
XML Schema
Struktura dokumenta
*rva linija u XML Schema dokumentu je XML deklaracija !jer to usuštini predstavlja XML fajl".
C drugoj liniji se deklariše -$s&schema6 kao osnovni !root " element
u dokumentu. Evaj element sadrži deklaracije svih elemenata i atri+utakoji se mogu pojaviti u validnom primerku dokumenta.
Co+ičajeno je da se u deklaraciji osnovnog elementa koristi prefiks$s !mada može i neki drugi"# koji je pridružen prostoru imena XMLSchema
$mlns&$s7http&99:::.:;.org99XMLSchema
XML elementi od kojih se sastoji XML šema moraju pripadatinavedenom prostoru imena.
http://www.w3.org/2001/XMLSchemahttp://www.w3.org/2001/XMLSchema
8/17/2019 AS 6-XML Schema
6/17
Aplikativni softver 6
XML Schema
@rada šeme !>"*rimer & napraviti jednostavnu šemu koja predstavlja uo+ičajenu stavku u adresaru.
-?$ml version7>.=F?6-puno@me6*etar Milic-9puno@me6
-?$ml version7>.=F?6-$s&schema $mlns&$s78http&99:::.:;.org99XMLSchema86 -$s&element name7Gpuno@me8 t2pe7$s&stringA96-$s&9schema6
XML dokument& stavka_adresara.xml
XML Schema dokument& sema_stavke_adresara.xsd
*ridruživanje šeme XML dokumentu& stavka_adresara.xml sa referencom šeme
-?$ml version7>.=F?6-puno@me $mlns&$si7http&99:::.:;.org99XMLSchema(instanceF $si&no0amespaceSchemaLocation7semaHstavkeHadresara.$sd6 *etar Milic-9puno@me6
8/17/2019 AS 6-XML Schema
7/17
Aplikativni softver 7
XML Schema
@rada šeme !
8/17/2019 AS 6-XML Schema
8/17
Aplikativni softver 8
XML Schema
XML dokumenti se prvenstveno sastoje od ugnježdenih elemenata# pa je jednaod najčeš'ih deklaracija u tipičnoj šemi&
-$s&element name7imeHelementaF t2pe7$s&tipHelementaF6 Šeme podržavaju dva tipa sadržaja elementa& jednostavan !prost" i složen.
Jednostavan sadržaj se sastoji od čistog teksta koji ne o+uhvata ugnježdeneelemente. C ta+eli su navedeni najčeš'e koriš'eni prosti tipovi definisani u;4 specifikaciji&
/lement deklarisan da je prostog tipa ne može imati atri+ute.
%eklaracije elemenata
Tip Opis Tip Opis
an2CD@ CD@ identifikator resursa duration Qremenski periodRoolean Može sadržati true ili false integer 4eo +roj
date,ime 5psolutni datum i vreme string Cnicode nakovni ni
8/17/2019 AS 6-XML Schema
9/17
Aplikativni softver
XML Schema
5tri+uti uvek moraju +iti deklarisani kao prosti tipovi./lementi koji sadrže atri+ute su složenog tipa.
5tri+uti se deklarišu pomo'u elementa&
-$s&attri+ute name7imeHatri+utaF t2pe7$s&tipHatri+utaF6
*rimer &
-$s&attri+ute name7FidF t2pe7$s&integerF96-proivod id7A>;A6stolica-9proivod6
5tri+uti mogu imati podraumevanu ili fiksnu vrednost.*rimer &
-$s&attri+ute name7FidF t2pe7$s&integerF use7optionalF96-$s&attri+ute name7FidF t2pe7$s&integerF use7re1uiredF96
5tri+uti
8/17/2019 AS 6-XML Schema
10/17
Aplikativni softver !"
XML Schema
Složeni tipovi !>"Šema pridružuje tip svakom elementu i atri+utu koji deklariše. /lementi složenihtipova mogu imati atri+ute i sadržati ugnježdene elemente. Samo elementimogu +iti složenog tipa. ,ipovi atri+uta su uvek prosti.
Složeni tip se deklariše pomo'u elementa $s&comple$,2pe koji je ugra)enneposredno u deklaraciju elementa.
XML kod
-aposleni6 -ime6*era-9ime6
-preime6Miric-preme6-9aposleni6
XML Schema kod
-$s&element name7aposleniF6 -$s&comple$,2pe6 -$s&se1uence6 -$s&element name7imeF t2pe7$s&stringF96
-$s&element name7preimeF t2pe7$s&stringF96-9$s&se1uence6
-9$s&comple$,2pe6-9$s&element6
8/17/2019 AS 6-XML Schema
11/17
Aplikativni softver !!
XML Schema
Složeni tipovi !
8/17/2019 AS 6-XML Schema
12/17
Aplikativni softver !2
XML Schema
Složeni tipovi !;"Složeni element se može +airati na nekom ve' postoje'em složenom tipukome se mogu dodati novi elementi.
-$s&element name7aposleniF t2pe7dopunjeninfoF96-$s&comple$,2pe name7oso+ainfoF96 -$s&se1uence6 -$s&element name7imeF t2pe7$s&stringF96
-$s&element name7preimeF t2pe7$s&stringF96-9$s&se1uence6
-9$s&comple$,2pe6-$s&comple$,2pe name7dopunjeninfoF96 -$s&comple$4ontent6 -$s&e$tension +ase7oso+ainfoF6 -$s&se1uence6 -$s&element name7ulicaF t2pe7$s&stringF96
-$s&element name7gradF t2pe7$s&stringF96-$s&element name7dravaF t2pe7$s&stringF96
-9$s&se1uence6 -9$s&e$tension6
-9$s&comple$4ontent6
-9$s&comple$,2pe6
8/17/2019 AS 6-XML Schema
13/17
Aplikativni softver !3
XML Schema
Egraničenja +roja pojavljivanjaC XML Schema postoji mogu'nost eksplicitnog adavanja najmanjeg i najve'eg+roja pojavljivanja odre)enog elementa na odre)enom mestu u dokumentu.
Ia ograničavanje +roja pojavljivanja koriste se slede'i atri+uti elementa$s&element&
minOcc#rs definiše minimalan +roj pojavljivanja elementama$Occ#rs definiše maksimalan +roj pojavljivanja elementa
-$s&element name7oso+aF6 -$s&comple$,2pe6
-$s&se1uence6 -$s&element name7imeF t2pe7$s&stringF96-$s&element name7imeHdetetaF t2pe7$s&stringFminEccurs7=F ma$Eccurs7>=F96
-9$s&se1uence6 -9$s&comple$,2pe6
-9$s&element6
*rimer&
8/17/2019 AS 6-XML Schema
14/17
Aplikativni softver !4
XML Schema
Mešoviti sadržaj elemenataMe%oviti sa&r'a( imaju XML elementi koji sadrže nakovne podatke !stringove#tekst" i neograničen +roj elemenata. XML Schema podržava ovu funkcionalnost#i još omogu'ava odre)ivanje +roja i redosleda po kome se elementi pojavljujuunutar nakovnih podataka.
5tri+ut mi$ed elementa tipa comple$,2pe odre)uje da li se nakovni podacismeju pojaviti unutar tela elementa.
-pismo6 %ragi-ime6 *ero-9ime6 Qasa narud+ina -narid6>B;
8/17/2019 AS 6-XML Schema
15/17
Aplikativni softver !5
XML Schema
Iadavanje redosleda elemenata !>"
Ia odre)ivanje redosleda u kome se elementi mogu pojavljivati# XML šemenude slede'e mogu'nosti&
$s)se*#ence $s)choice $s)all
Eve mogu'nosti se mogu ugnježdavati u slučaju igradnje složenijih strukturaelemenata.
$s)se*#ence
Evaj element ahteva da se elementikoje sadrži moraju pojavljivati tačnoonim redosledom kojim su navedeniu njegovom spisku.
*ismo mora sadržati element pozdrav #element telo i element zavretak #tim redom.
*rimer&-$s&element name7pismo6 -$s&comple$,2pe mi$ed7true6
-$s&se1uence6 -$s&element name7podrav 96 -$s&element name7telo 96 -$s&element name7avrsetak 96 -9$s&se1uence6 -9$s&comple$,2pe6
-9$s&element6
8/17/2019 AS 6-XML Schema
16/17
Aplikativni softver !6
XML Schema
Iadavanje redosleda elemenata !
8/17/2019 AS 6-XML Schema
17/17
Aplikativni softver !7
XML Schema
Iadavanje redosleda elemenata !;"
$s)all
Evaj element ahteva da se svaki odelemenata mora pojaviti jednom# pričemu redosled njihovog pojavljivanjanije važan.
Dedosled pojavljivanja elemenata stavka#cena i datum#rispeca nije +itan# a sprečeno je i pojavljivanje više referenci iste vrednosti.
XML Schema kod& cirpismo.$sd-$s&element name7telo6 -$s&comple$,2pe mi$ed7true6 -$s&all6 -$s&element name7stavka96 -$s&element name7datum*rispeca96
-$s&element name7cena96 -9$s&all6 -9$s&comple$,2pe6 -9$s&element6
XML dokument& cirpismo.$lm-pismo $mlns&$si7http&99:::.:;.org99XMLSchema(instanceF
$si&no0amespaceSchemaLocation7cirpismo.$sd6 -podrav6 -dravo96Ro+o -9podrav6 -telo6 Wvala Qam sto se narucili -stavka96 !-cena96". ,re+alo +i da stigne do -datum*rispeca96 -9telo6 -avrsetak96
-9pismo6