xm l generalized markup languages - webdizajn.ict.edu.rs · sintaksna pravila u xml-u dva xml...

21
XML Markup Languages Uvode se da ďi se Ŷapƌaǀio staŶdaƌdizoǀaŶi izlaz za ƌazličite ŵedijuŵe ;štaŵpač ili World Wide Web) Mark-up je sačiŶjeŶ od tagoǀa (elemenata) koji služe da ďi promenili izgled ili zŶačeŶje teksta tj. gƌafičkih oďjekata kojiŵa su dodeljeni Postoje dva tipa Markup Languages: Specific Markup Languages i Generalized Markup Languages. Specific ili Generalized Markup Languages Specific Markup Languages se razvijaju za posebne namene i za druge potrebe ne mogu ďiti koƌišćeŶi Poseduju ogƌaŶičeŶ skup tagoǀa, i ǀƌlo često Ŷastaje pƌoďleŵ kada se iŵaju speĐifičŶi zahteǀi pa se ŵoƌaju tƌažiti alteƌŶatiǀŶa ƌešeŶja Ovakvi jezici ne moraju biti kompatibilni sa drugima jer se koriste za posebne namene Pƌoďleŵ je kada jedaŶ pƌogƌaŵeƌ odƌžaǀa ǀiše oǀakǀih jezika, koji su ŵeđusoďŶo ƌazličiti, pa se stǀaƌa koŶfuzija u ƌadu RelatiǀŶo doďƌa stǀaƌ je ŶeƌaspƌostƌaŶjeŶost i Ŷeƌazuŵljiǀost koda što ŵu "poǀećaǀa" sigurnost GeŶeƌalized Maƌkup LaŶguages služe da uŶifoƌŵišu ŶačiŶ pƌikaziǀaŶja teksta ili objekta kome su dodeljeni Imaju jasnu i unapred poznatu sintaksu Oǀakǀi Maƌkup LaŶguages tƌeďa da opišu stƌuktuƌu dokuŵeŶta ali Ŷe stil i ŶačiŶ foƌŵatiƌaŶja XML Jezik namenjen komunikaciji na Internetu Koristi se za upravljanje, organizovanje i prikazivanje podataka Došao je kao rešeŶje staƌog pƌoďleŵa: Kako Ŷapƌaǀiti jezik koji ƌazuŵe ƌačuŶaƌ ;ďiŶaƌŶiͿ, ali koji je čitljiǀ čoǀeku ;tekstͿ JedaŶ od pƌǀih jezika čije koŵaŶde su pisaŶe i iŶteƌpƌetiƌaŶe u tekstualnoj formi, za ove potrebe, bio je SGML SGML - Standard Generalized Markup Language ZaŵišljeŶ da ƌadi sa ǀelikiŵ količiŶaŵa podataka, ali "pƌoizǀoljŶog" oďeležaǀaŶja Sloboda u defiŶisaŶju koŵaŶdi Ŷaišla je Ŷa pƌoďleŵ složeŶosti programa koji treba ove komande da prepoznaju i interpretiraju

Upload: lediep

Post on 07-May-2019

219 views

Category:

Documents


0 download

TRANSCRIPT

XML

Markup Languages

• Uvode se da i se ap a io sta da dizo a i izlaz za azličite ediju e šta pač ili World Wide Web)

• Mark-up je sači je od tago a (elemenata) koji služe da i promenili izgled ili z ače je teksta tj. g afičkih o jekata koji a su dodeljeni

• Postoje dva tipa Markup Languages: • Specific Markup Languages i

• Generalized Markup Languages.

Specific ili Generalized Markup Languages • Specific Markup Languages se razvijaju za posebne namene i za druge

potrebe ne mogu iti ko išće i • Poseduju og a iče skup tago a, i lo često astaje p o le kada se i aju

spe ifič i zahte i pa se o aju t ažiti alte ati a eše ja

• Ovakvi jezici ne moraju biti kompatibilni sa drugima jer se koriste za posebne namene

• P o le je kada jeda p og a e od ža a iše o ak ih jezika, koji su eđuso o azličiti, pa se st a a ko fuzija u adu

• Relati o do a st a je e asp ost a je ost i e azu lji ost koda što u "po eća a" sigurnost

• Ge e alized Ma kup La guages služe da u ifo išu ači p ikazi a ja teksta ili objekta kome su dodeljeni

• Imaju jasnu i unapred poznatu sintaksu

• O ak i Ma kup La guages t e a da opišu st uktu u doku e ta ali e stil i ači fo ati a ja

XML

• Jezik namenjen komunikaciji na Internetu

• Koristi se za upravljanje, organizovanje i prikazivanje podataka

• Došao je kao reše je sta og p o le a: Kako ap a iti jezik koji azu e aču a i a i , ali koji je čitlji čo eku tekst

• Jeda od p ih jezika čije ko a de su pisa e i i te p eti a e u tekstualnoj formi, za ove potrebe, bio je SGML

• SGML - Standard Generalized Markup Language

• Za išlje da adi sa eliki količi a a podataka, ali "p oiz olj og" o eleža a ja

• Sloboda u defi isa ju ko a di aišla je a p o le slože osti programa koji treba ove komande da prepoznaju i interpretiraju

XML

• XML – Extensible Markup Language

• Na prvi pogled je sliča HTML

• K ei a da opiše podatke

• Koristi Document Type Definition (DTD) i XML Schema za opis podataka

• DTD i XML Schema su dizajnirani da mogu biti proizvoljno kreirani

• Moguće je k ei ati sopst e e tago e

• XML je W3C preporuka 10 (februar 1998)

• Lak za upotrebu i implementaciju

XML nije:

• Programski jezik

• O iča doku e t papi , e o a du

• Zamena za tekst editore (Word)

• ANSI ili ISO standard

Istorijat

SGML (1986)

HTML (1990)

XML (1996)

GML (1969)

SGML

• Kreiran je 1974. godine da bi izvršio sta da diza iju markup languages-a

• Defi iše g a atiku za markup languages

• Dozvoljava upotrebu tagova i atributa koji su definisani

• SGML tago i defi išu st uktu u doku e ta

• Zašto je došlo do odifika ije SGML? • Alati su skupi

• Komplikovani za pisanje

• Za ise od ok uže ja

• Nije se pokazao p aktič i za ši u upot e u

HTML

• HTML je ogo st ožija fo a SGML-a

• Sve komande su unapred poznate i zatvorenog su tipa

• Takođe je azi a a tekstu i k ei a se k oz ilo koji tekstualni editor

• G a i a iz eđu st ogog HTML i li e al og SGML-a ostavlja p osto iz eđu, za novi, kompromisni jezik - XML

• XML - ima naziv proši i , je je oguće defi isati p oiz olj o mnogo novih elemenata i atributa za te elemente

HTML - XML

• XML nije zamena za HTML

• K ei a i su sa aziličiti ilje i a

• XML t e a da opiše podatke i defi iše šta su

• HTML t e a da ih p ikaže i fokusi a se a estetiku

• Pored Internet-a, XML se ko isti i za aču a ske eže

• XML može da • struktuira podatke u i iz tabela

• konvertuje jedan markup language u drugi

• XML ele e ti ogu da opišu sa i se e

XML

• Pored konkretnih informacija XML sadrži i opis tih podataka

• Tagovi u XML-u mogu biti proizvoljni !

• Zato se ne koristi samo za kreiranje web strana

• Uloga XML-a je da struktuira i skladišti i fo a ije

• Takve strukture mogu lako da p o ađu, izd oje, so ti aju, filt i aju i u eđuju podatke

• Tu ače je XML-o ih podataka ši soft e ski odul, procesor XML-a, koji se naziva parser i o a lja p e ođe je XML koda za neki program ili aplikaciju

• Izgled koda odgo a a logičkoj st uktu i koju čo ek očekuje

Parser

• Uloga pa se a je da i te p eti a kod i da detektuje g eške

• Postoje d a tipa g ešaka: • g eške koje su si taks e, i otklo i e su

• eotklo i e g eške, ailasko a jih p ekida se dalji ad

Moguć osti XML-a

• Tekstualni fajlovi, upotrebom XML-a, se mogu koristiti za az e u podataka. Na o aj ači se o ogućuje eza is ost

softverske ili hardverske platforme.

• Pored razmene, sa XML-om, tekstualni fajlovi se mogu ko istiti za skladište je podataka

• Upotrebom XML-a podacima ože da p istupi ilo koja aplikacija, ili program, i taj fajl vidi kao neki vid baze podataka

Implementacije XML-a

• XML je p eteča WAP-a i WML-a

• Wireless Application Protocol – je svetski standard ot o e og tipa za s e ste aplika ija u ežič oj ko u ika iji.

• Najčešća p i e a je p istup i te et st a i a a p eko mobilnog telefona.

• WAP je sliča kao e o se ali p ilagođe teh ički og a iče ji a o il ih u eđaja i eliči i ek a a

• Wireless Markup Language je jezik za kreiranje internet aplika ija a e je ih ali ežič i u eđaji a

Implementacije XML-a

• U poslednje vreme sve aktuelniji RSS, je takođe zas o a a XML podacima.

• RSS je XML datatoka za e s i log se ise i sk aće i a je od: • Rich Site Summary (RSS 0.91)

• RDF Site Summary (RSS 0.9 i 0.1)

• Really Simple Saydication (RSS 2.0.0)

• RSS o oguća a i te et ko is i i a p ija e a sajto e koji še RSS e ito a je. Na taj ači o i di ekt o p eko specijalizovanog softvera dobijaju novosti sa tog sajta. Spe ijalizo a i soft e i ag egato i skupljaju sad žaje sa RSS ka ala i p ikazuju ih a aču a u ko is ika ili e sajtu ako su u pitanju web agregatori)

Tipovi elemenata

• Ugnježde i ele e ti

• Znakovni podaci

• Reference opštih e titeta ili reference znakova

• CDATA segmenti - blok teksta u okviru koga se može u eti a koji znak sem znaka ]]>

• Instrukcije za obradu

• Komentari

• Prazni elementi - elementi bez sadržaja

<predmet>

<smer>Internet</smer>

<godina>Prva</godina>

<tip>Obavezan</tip>

</predmet>

<smer> Internet </smer>

<naslov>

Autor: &autor;

Izgled karaktera &#60;

<! [CDATA[

Neki tekst sa simbolima <, %, &, *, - ...

]]>

<?Mojaaplikacija parametar1="vrednost1"?>

<!-- Neki komentar -->

<HR> </HR> ILI <HR/>

Tipovi informacija u XML fajlu

• Instrukcija za obradu • Sintaksa: <? Instrukcija ?>

• Primer:

<?x l versio = . ?> • Komentari

• Sintaksa: <!-- Komentar-->

• XML elementi <tag/> <tag> sadrzaj </tag> <tag atributi /> <tag atributi> sadrzaj </tag>

Entiteti i tekst

• XML entiteti su grupe znakova za predstavljanje rezervisanih XML karaktera

&amp; & &apos; ‘ &gt; > &lt; < & uote; • Primer <!ENTITY euro "&#x20AC;">

Vrste teksta • Tekst može iti klasiča sa o ič i ka akte i a • Tekst ože iti sa < /> ka akte i a i <i at i ut = esto >

elementima </i> • Tekst može sad žati i e titete &lt; br &gt;

CDATA

• CDATA sekcija je deo teksta u kome bilo koji rezervisani karakter XML-a postaje klasiča ka akte

• Koristi se kada se HTML ili neki drugi kod želi apisati u uta XML-a, jer se tada tagovi HTML-a e tu ače kao o i ele e t, ego kao znakovni podatak elementa posle koga je umetnut taj CDATA segment

• CDATA mora biti unutar unutraš jeg sad žaja ele e ta

• Osnovni primer

<![CDATA

[

Tekstualni deo

]

]>

CDATA - Primer

<ELEMENT_KOJI_SADRZI_HTML_KOD>

Tekst (sadrzaj) elementa u XML kodu

<![CDATA[

<html>

<head>

<title> Naslov HTML strane napisane kroz XML </title>

<body> <b>Tekst unutar HTML-a</b> </body>

</html>

]]>

</ELEMENT_KOJI_SADRZI_HTML_KOD>

<![CDATA[ Milence]]>

Ovo je CDATA unutar elementa

i tu je CDATA validan

Ovo je CDATA van elementa

i tu je CDATA nije validan

Sintaksna pravila u XML-u

• Dva XML elementa mogu biti ugnježde a tako što jeda ele e t uključuje sad žaj d ugog

• Postoji samo jedan element, root element, koji e ože iti ug ježde

unutar drugog elementa. Svi drugi moraju biti unutar njega i mogu imati svoje podelemente

• Postoji jedna xml instrukcija pre root elementa.

<root>

<child>

<subchild>.....</subchild>

</child>

<child>

<subchild>.....</subchild>

</child>

</root>

Sintaksna pravila u XML-u

• Vrednosti atributa elemenata moraju biti pod navodnicima

<?xml version="1.0" encoding="ISO-8859-1"?>

<note date="12/11/2002">

<to>Tove</to>

<from>Jani</from>

</note>

• Kao imena atributa i tagova ogu se ko istiti u e ički ka akte i u ko i a iji sa četi i dodat a ka akte a - , _ , : i .

• S aki XML fajl o a da sad ži jed u i st uk iju a početku, koja oz ača a da se adi o l fajlu. Postoji jed a o a ez a instrukcija: <?xml version= .

Pri eri dobrih i loših i e a ele e ata (tagova)

• Dobra Pera

_1.prvi

B

A-kategorija

Skola.Smer.IT

• Loša 1.prvi

B kategorija

indeks22/04

:nabrajanje

Neko : nabrajanje

Space i novi redovi

• Broj praznih mesta (space) u HTML je uvek redukovan na jeda , dok u XML ostaje o ako kako ga ko is ik defi iše

Hello my name is Tove (XML)

Hello my name is Tove (HTML)

• U Windows aplikacijama dolaskom do kraja reda automatski se prelazi na novi, line feed (LF), i to a jego početak, carriage return (CR).

• Kod XML, kao i kod Unix-a, o i ed se defi iše (pamti) kao LF

Primer XML dokumenta

<? l e sio = . ?>

<!-- Prva XML stranica -->

<po uka tip= poslo a sta je= hit o >

<kancelarija> Racunovodstvo i finansije </kancelarija>

<sadrzaj>Obraditi racun broj 222</sadrzaj>

</poruka>

Kod u HTML-u naspram XML-a

<!-Biblioteka u HTML-u --> <h1>Knjige za smer Internet</h1> <table border=1> <tr> <td>Naslov</td>

<td>Korak po korak - XML</td> </tr> <tr> <td>Autor</td><td> Joung Michael </td> </tr>

</table>

<!- Biblioteka u XML-u --> < Knjige_za_smer_Internet > <Naslov>Korak po korak - XML </Naslov> <Autor> Joung Michael </Autor> </Knjige_za_smer_Internet >

Kod sa *.xml i *.html

Greške

<?xml version="1.0" encoding="UTF-8" ?>

<Predmeti>

<predmet

<naziv>Matematika</naziv>

XML format

• Ako se deo informacija web stranice nalazi u XML formatu tada je korisniku omoguće o da i a p ikaz i tip i fo a ija koje želi da vidi

• Ako su podaci dobro organizovani, XML se ože ko istiti za definisanje upita kao i kod baze podataka

• Na primer, mogu se lako prikazati svi naslovi knjiga izdati od strane istog autora

• Potpu o ide tič o kao i HTML ože se ko istiti CSS

• Na taj ači i fo a ije po ed s oje sad ži e do ijaju i a ači u p ikaza, što ije os o a ka akte istika XML

dokumenata

• Podaci iz XML fajla se mogu koristiti upotrebom skripta (Java Script, PHP, ...)

Dodavanje novih elemenata

• XML doku e ti i aju ka akte istiku p oši i osti kada je pot e o p ikazati iše podataka. U tak i slučaje i a aplika ije koje ko iste podatke iz XML i

dalje asta ljaju da ade ez o zi a što se oj p o it ih ele e ata po ećao i promenio.

• Primer

<note>

<to>Tove</to>

<from>Jani</from>

</note>

• Ako se koriste podaci iz tagova <to>, <from>, i <body> tada se prikazuje

MESSAGE To: Tove From: Jani

Don't forget me this weekend!

<note>

<to>Tove</to>

<from>Jani</from>

<body>Don't forget me this weekend!</body>

</note>

Dodavanje novih elemenata

• P oši i a je doku e ta p ethod a aplika ija i dalje adi egula o:

<note>

<date>2002-08-01</date>

<to>Tove</to>

<from>Jani</from>

<heading>Reminder</heading>

<body>Don't forget me this weekend!</body>

</note>

• I dalje se pri korišće ju tago a To, F o i Bod p ikazuje

MESSAGE To: Tove From: Jani

Don't forget me this weekend!

Roditelj - deca elementi

• Svi elementi su povezani na nivou roditelji-deca (parents and children)

• P i e sad žaj p aktiku a "Multi edijal e teleko u ika ije"

• Praktikum je root element, dok su poglavlja, strane i lekcije deca roditelja- Praktikum

Praktikum

Vezba broj 1

Lenjiri

M eža

Vodjice

Vezba broj 2

Tekstualne animacije

Vezba broj 3

Unos zvuka

Unos videa

Ako XML dokumento opiše o ovu k jigu tada je:

<Praktikum>

<Poglavlja> Vezba broj 1

<strane tip="papir"> 5-13 </strane>

<lekcije>Lenjiri</lekcije>

<lekcije>Mreza</lekcije>

<lekcije>Vodjice</lekcije>

</Poglavlja >

<Poglavlja> Vezba broj 2

<strane tip="papir"> 19-30 </strane>

<lekcije>Tekstualne animacije</lekcije>

</Poglavlja >

<Poglavlja> Vezba broj 3

<strane tip="papir"> 31- 42 </strane>

<lekcije>Unos zvuka</lekcije>

<lekcije>Unos videa</lekcije>

</Poglavlja >

</Praktikum >

Atributi • XML elementi mogu imati at i ute, koji daju liže i fo a ije o tagu

<img src="mika.gif">

<a href='obrada.php'>

<file type="jpg">cvece.jpg</file>

• Svi atributi moraju biti pod navodnicima

• Mogu se ravnopravno koristiti jednostruki i dvostruki navodnici

<automobil model="Opel" > ili:

< automobil model =' Opel ' >

• Ako u uta at i uta t e a da stoje a od i i, o da spoljaš ji a od i i o aju iti suprotnog tipa od internih

<pisci ime='Jovan "Zmaj" Jovanovic'>

< pisci ime ="Jovan ' Zmaj ' Jovanovic ">

Atributi - elementi

• Podaci se mogu smestiti u elemente (decu) ili atribute

• Primer

<klijent sektor="marketing">

<ime>Joca</ime>

<prezime>Maric</prezime>

</klijent>

<klijent>

<sektor>marketing</sektor>

<ime>Joca</ime>

<prezime>Maric</prezime>

</klijent>

Atributi - podaci • Tekst pod znacima navoda zove se literal

• Slože e lite ale t e a iz ega ati z og kas ije p et age doku e ta

• S aki lite al se ože p edefi isati u sad žaj ele e ta

Primer koda sa literalom

<note date="10/12/2007">

<to>Pera</to>

<from>Mika</from>

<heading>Molba</heading>

<body>Zahtev za kredit !</body>

</note>

• Prva modifikacija

<note>

<date>10/12/2007</date>

<to> Pera </to>

<from> Mika </from>

<heading> Molba </heading>

<body> Zahtev za kredit!</body>

</note>

•Druga modifikacija

<note>

<date>

<day>12</day>

<month>11</month>

<year>2002</year>

</date>

<to>Pera</to>

<from>Mika</from>

<heading>Molba</heading>

<body> Molba za kredit!</body>

</note>

Problemi sa atributima

• Ne ogu sad žati azličite ed osti dok ele e ti ogu

• At i uti isu lako p oši i i • Ne mogu opisati strukturu dok elementi mogu

• Teško ih je p og a ski pozi ati • Teško ih je ko t olisati upot e o DTD-a

• Specijalni atributi • xml:lang za jezik

• id - jedinstvena vrednost elementa

• idref - referenca na id

• xml:* je rezervisan

Dobro formatirani i validni XML FAJLOVI

Dobro formatirani XML • XML sa ispravnom sintaksom je dobro formatirani XML

• XML koji je proveren od strane DTD-a je validni XML

• Parser mora da odbije dokument koji nije dobro formatiran

• Dobro formatirani XML ima korektnu sintaksu u smislu: 1. XML dokument mora imati root element 2. Svaki tag mora biti zatvoren <title> Pera </title> 3. XML tagovi su case sensitive <title> Pera </Title> 4. S aki ele e t o a iti isp a o ug ježde

<predmet> <naziv>Matematika</naziv> <nastavnik>Pera Peric</nastavnik> </predmet>

Dobro formatirani XML 2

• Atributi moraju biti pod znacima navoda

<?xml version="1.0" encoding="UTF-8" ?>

• Mogu se upotrebljavati samo "legalni" karakteri

• Mogu se proizvoljno dodavati novi elementi

<?xml version="1.0" encoding="ISO-8859-1"?>

<zapis>

<knjiga>Tri druga</knjiga>

<polica>L 12</polica>

<edicija> Deca sveta </edicija>

<opis> Opis knjige</opis>

</zapis>

Validni XML

• Ako je do o fo ati a i doku e t usklađe sa DTD-om, onda je to validni XML dokument

• Do o fo ati a i doku e t ože iti i alid i ako: • U prilogu postoji odgo a ajuća dekla a ija tipa doku enta, koja

defi iše st uktu u doku e ta

• Ako preostali deo dokumenta odgovara strukturi definisanoj tim DTD-om

• U DTD-u se p e iz o defi išu ele e ti koji se u to doku e tu dozvoljavaju,

• Primena: Za sve forme gde je potrebna uniformnost. Slanje biografije, Popunjavanje zahteva i formulara, elektronske uplatnice ...

DTD • XML sad ži eha iz e za defi isa je p a ila koja še ko t olu ad

strukturom dokumenta. Ova pravila nazivaju se Document Type Definitions, ili DTD.

• Upot e o DTD, XML doku e ta se u potpu osti u eđuju. O o je pot e o zbog automatske kontrole nad dokumentom.

• DTD sad ži listu ele e ata koji se poja ljuju u doku e tu uključujući i njihovu strukturu i redosled pojavljivanja

• XML pa se je p og a koji a os o u DTD ši ko t olu doku e ta.

DTD

Osvnova svrha DTD-a je da definiše strukturu dokumenta sa listom legalnih elemenata i njihovih atributa.

Definisanje DTD-a • Sintaksa definicije je

<!DOCTYPE IME_elementa>

• Iza imena elementa koriste se [ ] da bi se unutar njih definisala struktura elementa koji se opisuje

• Definicija tipa dokumenta je kroz definisanje markera Sintaksa: <!ELEMENT IME TIP_ELEMENTA>

Primer:

<!DOCTYPE PERA

[

<!ELEMENT PERA ANY>

]

>

<PERA> Sadrzaj elementa PERA </PERA>

DTD za element

Pera

Deklaracija MARKERA

(Opisa) koji definiše tip dokumenta

Ovo je primer definisanja

dokumenta koji ima samo

elemente PERA, pri čemu

taj element može biti bilo kog tipa

Primer http://www.w3schools.com/dtd/

<!DOCTYPE NEWSPAPER [ <!ELEMENT NEWSPAPER (ARTICLE+)> <!ELEMENT ARTICLE (HEADLINE,BYLINE, LEAD,BODY,

NOTES)> <!ELEMENT HEADLINE (#PCDATA)> <!ELEMENT BYLINE (#PCDATA)> <!ELEMENT LEAD (#PCDATA)> <!ELEMENT BODY (#PCDATA)> <!ELEMENT NOTES (#PCDATA)> <!ATTLIST ARTICLE AUTHOR CDATA #REQUIRED> <!ATTLIST ARTICLE EDITOR CDATA #IMPLIED> <!ATTLIST ARTICLE DATE CDATA #IMPLIED> <!ATTLIST ARTICLE EDITION CDATA #IMPLIED> ]>

Tipovi deklaracije markera • DTD ože da sad ži sledeće tipo e dekla a ije a ke a:

• Deklaracije tipa elementa defi iše se koje ele e te, sa koji edosledo i sad žaje ože sad žati

dokument)

• Deklaracije liste atributa Defi išu se i e a at i uta koja se ogu ko istiti sa eki ele e to , kao i

tipovi podataka i podrazumevane vrednosti atributa

• Deklaracije entiteta Upot e a e titeta za e o isa je loko a teksta koji se često ko iste, ili za

uoše je podataka u doku e t koji isu XML-ovi

• Deklaracije notacija Opisivanje formata podataka, ili ukazivanje na program koji se za taj format

podataka koristi

• Instrukcije za obradu

• Komentare

• Reference parametarskih entiteta

Deklaracije tipa elementa • Sintaksa <!ELEMENT Ime_elementa Specifikacija>

• Specifikacija sadržaja ele e ta ože iti:

• EMPTY (prazan element)

• npr <!ELEMENT image EMPTY>, pa je validni element image definisan kao

• <image></image> ili <image />

• ANY (može sad žati ilo koji tip sad žaja

• npr. <!ELEMENT sveska ANY>

• Sad žaj ele e ta (ovakav element sadrži ele e t dete, ali e i z ako e podatke

• Mešo iti sad žaj ovakav element sadrži p oiz olja oj z ako ih podataka koji su op io o po eša i sa ele e ti a de o

Sadržaj ele e ta • Ako ele e t i a sad žaj, o ože da i a sa o az ače e

decu elemente, ali ne i znakovne podatke.

• Element tipa Predmet i a sad žaj Naziv i Smer, dok Naziv i S e sad že znakovne podatke (PCDATA)

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE Predmet (Naziv, Smer)

[

<!ELEMENT Naziv (#PCDATA)>

<!ELEMENT Smer (#PCDATA)>

]

>

<Predmet>

<naziv>Matematika</naziv>

<smer>Internet</smer>

</Predmet>

Model sadržaja

• Model sad žaja ože iti sek e ijal i ili iz o i. • O i se od eđuje koji ele e ti s e, koliko puta, i u ko

redosledu da se pojavi u dokumentu

• Sekvencijalni oblik: defi iše tača edosled ele e ata de e unutar elementa.

• Imena elemenata dece se razdvajaju zarezima

• S i ele e ti de e se o aju aći, i to u isto edosledu, unutar dokumenta.

• Izborni oblik: ukazuje da ele e t ože da sad ži ilo koji od izo a ogućih ele e ata de e, azd oje ih sa |

Sekvencijalni oblik

<!DOCTYPE Predmet (Naziv, Smer, Godina)

[

<!ELEMENT Naziv (#PCDATA)>

<!ELEMENT Smer (#PCDATA)>

<!ELEMENT Godina (#PCDATA)>

]

>

<Predmet>

<naziv>Matematika</naziv>

<smer>Internet</smer>

<godina>Prva</godina>

</Predmet>

<Predmet>

<smer>Internet</smer>

<naziv>Matematika</naziv>

<godina>Prva</godina>

</Predmet>

<Predmet>

<naziv>Matematika</naziv>

<godina>Prva</godina>

</Predmet>

<Predmet>

<naziv>Matematika</naziv>

<godina>Prva</godina>

<obavezan>Da</obavezan>

</Predmet>

Izborni oblik - samo jedan tip

<!DOCTYPE Predmet (Naziv | Smer | Godina)

[

<!ELEMENT Naziv (#PCDATA)>

<!ELEMENT Smer (#PCDATA)>

<!ELEMENT Godina (#PCDATA)>

]

>

<Predmet>

<naziv>Matematika</naziv>

</Predmet>

<Predmet>

<smer>Internet</smer>

</Predmet>

<Predmet>

<smer>Internet</smer>

<naziv>Matematika</naziv>

</Predmet>

Modifikovanje izbornog oblika

• Modifikovanje se vrši upot e o ekog od si ola ? oj poja lji a ja sta ke iza koje stoji z ak ože iti ili

+ oj poja lji a ja sta ke iza koje stoji z ak ože iti ili iše

* oj poja lji a ja sta ke iza koje stoji z ak ože iti ili iše

• Definisanje mešo itog sad žaja o oguća a da o sad ži i znakovne podatke

• Modeli ešo itog sad žaja su: • samo znakovni podaci ( #PCDATA)

• znakovni podaci sa opcionom decom elementa (znakovni podaci i/ili deca elementa)

Primeri izbornog oblika <!ELEMENT Predmet (Naziv, Smer+, Obavezan)>

<Predmet>

<Naziv> DOS </Naziv>

<Smer> IT </Smer>

<Smer> MI </Smer>

<Obavezan> Da </ Obavezan >

</Predmet>

<!ELEMENT Ispit (Smer*| Prijemni | Ponovljeni)>

<Ispit>

<Smer> IT </Smer>

<Smer> MI </Smer>

</Ispit >

<Ispit>

< Prijemni > 2007 </ Prijemni >

</Ispit >

<Ispit>

<Smer> IT </Smer>

< Ponovljeni > Da </ Ponovljeni >

</Ispit >

Modifikovanje celog modela <!ELEMENT Predmet (Naziv | Smer | Obavezan)+>

<Predmet>

<Naziv> DOS </Naziv>

</Predmet>

<Predmet>

<Smer> MI </Smer>

<Naziv> DOS </Naziv>

<Smer> IT </Smer>

</Predmet>

<Predmet>

<Naziv> DOS </Naziv>

<Smer> MI </Smer>

<Obavezan> Da </ Obavezan >

<Naziv> DOS </Naziv>

</Predmet>

Modifikovanje celog modela <!DOCTYPE Predmet

[

<!ELEMENT Predmet (Naziv, Smer, (Godina | Fond |Nastavnik) )>

<!ELEMENT Naziv (#PCDATA)>

<!ELEMENT Smer (#PCDATA)>

<!ELEMENT Godina (#PCDATA)>

<!ELEMENT Fond (#PCDATA)>

<!ELEMENT Nastavnik (#PCDATA)>

]

>

<Predmet>

<Naziv> DOS </Naziv>

<Smer> MI </Smer>

<Fond> 2+2+2 </Fond>

</Predmet>

<Predmet>

<Naziv> Engleski </Naziv>

<Nastavnik> Pera Peric </Nastavnik>

<Smer> IT </Smer>

</Predmet>

Znakovni podaci sa decom elemenata

<!ELEMENT Pera (#PCDATA | Mika)*>

<Pera>

Neki podatak

<Mika> Drugi podatak </Mika>

</Pera>

<Pera>

<Mika> Drugi podatak </Mika>

Neki podatak

<Mika> Drugi podatak </Mika>

</Pera>

<Pera>

<Mika> Drugi podatak </Mika>

</Pera>

<Pera>

Neki podatak

</Pera>

<Pera>

Neki podatak

Neki podatak

<Mika> Drugi podatak </Mika>

</Pera>

Primeri deklaracije

<!ELEMENT prazno EMPTY> <!ELEMENT bilo_šta ANY> <!ELEMENT opciono (prvi | drugi)> <!ELEMENT tacno_definisani (prvi, drugi)> <!ELEMENT liste (elementi_liste+)> <!ELEMENT dl ((dt?, dd?)*)> <!ELEMENT tekst (#PCDATA)> <!ELEMENT mixed (#PCDATA | ab | cd | ef)>

Deklarisanje atributa • U validnom XML dokumentu se moraju definisati svi atributi. To podrazumeva:

• Definisanje imena atributa

• Zadavanje tipa podataka

• Od eđi a je da li je o a eza ili e

• Dekla isa je liste at i uta opšteg o lika je

<!ATTLIST Ime Skup_definicije_atributa>

• Definicija atributa ima oblik

Ime Tip_atributa Podrazumevana_vrednost

Primer:

<!ELEMENT auto (deo, (Kupac | Firma | Filijala))>

<!ATTLIST auto Tip CDATA "Yugo" Godiste CDATA #REQUIRED>

Tip može biti bilo koja reč, a ako se ne unese, upisaće

se Yugo

Obavezna dodela

vrednosti za svaki

element auto

TIP atributa • Od eđuje ed ost koja se at i utu ože dodeliti

• Tip ože iti : • Znakovnog tipa (Bilo koji niz znakova, pod navodnicima, sa CDATA)

• Toke izo a i tip Po ed sta da d ih i a i pose a og a iče ja defi isa a u

defi i iji at i uta upot e o ključ e eči, pa e s eju da se poja e d e iste vrednosti atributa)

• Prebrojivi tip (Niz znakova pod navodnicima koji se mora poklapati sa nekim i e o u listi spe ifika ije tipa at i uta, i koja ože da ude jeda od d a o lika:

• Otvorena zagrada, lista tokena razdvojenih sa |, i zatvorena zagrada • Kluč a eč NOTATION, iza koje sledi az ak, ot o e a zag ada, lista i e a ota ije,

odvojenih sa |, i zatvorena zagrada

• l

Primer - lista atributa

<?xml version="1.0" ?>

<!DOCTYPE auto

[

<!ELEMENT auto (deo, (Kupac | Firma | Filijala))>

<!ATTLIST auto Tip CDATA "Yugo" Godiste CDATA #REQUIRED>

<!ELEMENT deo(#PCDATA)>

<!ELEMENT Kupac(#PCDATA)>

<!ELEMENT Firma(#PCDATA)>

<!ELEMENT Filijala(#PCDATA)>

]

>

<auto Tip="AUDI" Godiste="2000">

<deo> Far </deo>

<Kupac> Mika Mikic </Kupac>

</auto>

Primer- Tip atributa

• Znakovni tip

<!ATTLIST auto Tip CDATA "Yugo">

• Tokenizovani tip

<?xml version="1.0" ?>

<!DOCTYPE auto

[

<!ELEMENT auto (deo*)>

<!ELEMENT deo(#PCDATA)>

<!ATTLIST deo Barcode ID #REQUIRED>

]

>

<auto Tip="AUDI" Godiste="2000">

<deo Barcode="a0010110"> Far </deo>

<deo Barcode="a1110001"> Retrovizor </deo>

<deo Barcode="a0101010"> Auspuh </deo>

</auto>

Lista ključ ih reči za toke izova tip • ID • S aki at i ut i a jedi st e u ed ost, koja poči je slo o ili _. Podrazumevana deklaracija

atributa mora biti #Required (obavezan) ili #Implied (podrazumevan)

• IDREF • Ova vrednost mora da bude ista kao i vrednost nekog drugog atributa tipa ID. Ovaj atribut odnosi

se na jedinstveni identifikator drugog atributa

• IDREFS • Isti kao i IDREF ali može i ati efe e e za nekoliko identifikatora

• ENTITY • Koristi se za ukazivanje podataka koji nisu XML-ovi. Npr. adresa slike.

• ENTITIES • Može da uključi i e a iše epa si a ih e titeta, azd oje ih sa Spa e

• NMTOKEN • Vrednost mu je token-imena i p edsta lj a i e od jed og ili iše slo a, može početi oje za

azliku od klasič ih i e a at i uta i ele e ata.

• NMTOKENS • Isto što i NMTOKEN, s ti što ože da sad ži iše toke i e a.

Primeri tokenizovanog tipa

• ID

• <!ATTLIST deo Barcode ID #REQUIRED>

• IDREF

<!ELEMENT deo(#PCDATA)>

<!ATTLIST deo Barcode ID #REQUIRED Veza IDREF #IMPLIED>

<deo Barcode="a0010110"> Far </deo>

<deo Barcode="a1110001" Veza ="a0010110"> Retrovizor </deo>

• IDREFS

<!ELEMENT deo(#PCDATA)>

<!ATTLIST deo Barcode ID #REQUIRED Veza IDREFS #IMPLIED>

<deo Barcode="a0010110"> Far </deo>

<deo Barcode="a0101010"> Auspuh </deo>

<deo Barcode="a1110001" Veza ="a0010110 a0101010 "> Retrovizor </deo>

• ENTITY

<!ELEMENT image EMPTY>

<!ATTLIST image Source ENTITY #REQUIRED >

<image Source="Logo"/>

Primeri tokenizovanog tipa

• ENTITIES

<!ELEMENT image EMPTY>

<!ATTLIST image Source ENTITY #REQUIRED >

<image Source="Logo AlternativnoLogo" />

• NMTOKEN

<!ELEMENT deo(#PCDATA)>

<!ATTLIST deo Barcode NMTOKEN #REQUIRED >

<deo Barcode="123-8579-986"> Branik </deo>

• NMTOKENS

<!ELEMENT deo(#PCDATA)>

<!ATTLIST deo POLICA NMTOKENS #REQUIRED >

<deo POLICA=" 11 23 55"> Branik </deo>

Prebrojivi tip • Prvi oblik (otvorena zagrada, lista tokena, zatvorena zagrada)

• Primer

<?xml version="1.0" ?>

<!DOCTYPE auto

[

<!ELEMENT auto (deo, (Kupac | Firma | Filijala))>

<!ATTLIST auto Tip (Yugo | Opel | Audi |Ford) "Yugo">

<!ELEMENT deo(#PCDATA)>

<!ELEMENT Kupac(#PCDATA)>

<!ELEMENT Firma(#PCDATA)>

<!ELEMENT Filijala(#PCDATA)>

]

>

<auto Tip="Audi" >

<deo> Far </deo>

<Kupac> Mika Mikic </Kupac>

</auto> <auto >

<deo> Far </deo>

<Kupac> Mika Mikic </Kupac>

</auto>

Nije definisan

atribut, pa mu je

podrazumevana

vrednost Yugo

Deklaracije podrazumevanih vrednosti

• Oz ača a da li je at i ut obavezan ili ne

• Ukazuje a to šta t e a da se u adi ako se at i ut izostavi

• Može da sad ži podrazumevanu vrednost

• Oblici podrazumevanih vrednosti • #REQUIRED, oz ača a da se za s aki defi isa i at i ut o a u eti ed ost

• #IMPLIED, at i ut se ože defi isati ili izosta iti, p i če u se kod izosta lja ja ne dobija nikakva podrazumevana vrednost

• Vrednost_Atributa, je podrazumevana vrednost atributa. Bez obzira da li se at i ut defi iše ili e, dodeliće se defi isa a pod azu e a a ed ost, koja se stavlja pod znake navoda

• #FIXED Vrednost_Atributa, je podrazumevana vrednost, koja se eksplicitno aglaša a, iako e a pot e e, je je pod azu e a a, ali se ko isti adi lakše

čitlji osti koda.

Interni DTD

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE poruka

[ <!ELEMENT poruka ANY> ]

>

<poruka> Pozdrav</poruka>

Eksterni DTD dokument

• Ako je spisak p a ila u spoljaš joj DTD listi, o da se pozi a kroz DOCTYPE, sa imenom fajla u kome se nalazi

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE PERA SYSTEM "spoljasnji_kod.dtd"> <PERA> Neki tekst</PERA>

• Kod u fajlu spoljasnji_kod.dtd bi bio

<!ELEMENT Pera (#PCDATA)>

Kombinovani DTD

<?xml version="1.0" ?>

<!DOCTYPE Mika SYSTEM "mika_kod.dtd"

[

<!ATTLIST Mika Pol CDATA "Muski">

<!ELEMENT opis(#PCDATA)>

]

>

<Mika Pol="Muski">

<opis> Kupac iz Borce </opis>

</Mika>

Sadržaj mika_kod.dtd

<!ELEMENT Mika ANY>

Validacija

• Kod HTML g eške ogu da postoje, ali se kod iz ša a sa a je ili iše želje i ilje

• Kod XML-a, ilo koja g eška loki a dalje iz ša a je koda

• B o se i koji pod ža aju XML • Mozilla Firefox od verzije 1.0.2

• Netscape od verzije 8

• Opera od verzije 9

• Internet Explorer od verzije 6

Formatiranje prikaza XML fajla

Formatiranje prikaza XML fajla

• Obzirom da je inicijalni prikaz XML fajla u browser-u grubo stilizo a , i lo često ep iklada za eal e upot e e,

a eće se pot e a da se XML poda i stilio a o i fo ati a o p ikažu u o se -u

• Ovo se realizuje upotrebom CSS-a a isti ači kao i kod HTML-a

• Pisa je CSS koda se ealizuje a sta da d i ači i sa standardnim efektima prilikom prikaza

• Razlika je jedino u pozivanju eksetnog CSS-a fajla

• U XML-u to se realizuje instrukcijom

<?xml-stylesheet type="text/css" href="ime.css"?>

Upotreba CSS-a

<?xml version="1.0" encoding="UTF-8" ?>

<?xml-stylesheet type="text/css" href="2.css"?>

<Predmeti>

<predmet>

<naziv>Matematika</naziv>

<nastavnik>Pera Peric</nastavnik>

<smer>Internet</smer>

<godina>Prva</godina>

<tip>Obavezan</tip>

<fond_predavanja>3</fond_predavanja>

<fond_auditornih>2</fond_auditornih>

<fond_lab_vezbi>1</fond_lab_vezbi>

</predmet>

<predmet>

<naziv>Engleski</naziv>

<nastavnik>Mika Mikic</nastavnik>

<smer>Telekomunikacije</smer>

<godina>Prva</godina>

<tip>Izborni</tip>

<fond_predavanja>2</fond_predavanja>

<fond_auditornih>2</fond_auditornih>

<fond_lab_vezbi>1</fond_lab_vezbi>

</predmet>

</Predmeti>

Prikaz u XML

formatu

Pozivanje CSS-a

• <?xml-stylesheet type="text/css" href="ime.css"?>

Predmeti {

display: block;

margin-bottom:5pt;

margin-left: 30;

}

nastavnik, fond_predavanja, fond_auditornih, fond_lab_vezbi {

margin-bottom: 10pt;

.... }

naziv {

display: block;

color:red;

font-weight: bold;

margin-bottom: 10pt;

margin-left: 5pt;

font-family: Helvetica;

font-size: small;

background-color: #ffff00;

padding: 2px;

}

Upotreba CSS-a

Predmeti {

display: block;

margin-bottom:5pt;

margin-left: 30;}

naziv{

display: block;

color:red;

font-weight: bold;

margin-bottom: 10pt;

margin-left: 5pt;

font-family: Helvetica;

font-size: small;

background-color: #ffff00;

padding: 2px;}

nastavnik, fond_predavanja, fond_auditornih, fond_lab_vezbi {

margin-bottom: 10pt;

margin-left: 50pt;

font-family: Verdana;

font-size: 14 pt;

background-color: #CCC00;}

smer, godina, tip

{

display: block;

margin-bottom: 5pt;

margin-left: 5pt;

font-family: Verdana, Arial;

font-size: x-small;

background-color: #ffffff;

padding: 5px;

}

Fajl 2.css

Upotreba CSS-a

XML stranica

sa CSS-om

HTML stranica sa XML

podacima bez CSS-a

Praktič e pri e e XML-a sitemap

http://www.freeimage.com/sitemap.html

SITE MAP

• Site map je lista svih web stranica jednog sajta koji je dostupan za korisnike ili crawlers

• O aj spisak ože iti ealizo a k oz d a popula a ači a: XML sitemap ili HTML sitemap

• XML Sitemap je struktuirani XML dokument koji korisnik ne o a da idi a koji defi iše spisak st a i a, jiho u po eza ost,

it ost i i te zitet ažu i a ja

• HTML Sitemap je kreiran da bude vidljiv za korisnika sa ciljem da u po og e lakše p o alaže je sad žaja eke st a e

• Sitemap svakako doprinosi boljem SEO i inicijalno je namenjen crawler-u sa pravilima definisanim u robots.txt

Sintaksna pravila

• Site ap je klasiča XML doku e t

• Ovaj dokument ima definisana imena tagova koja su prepoznatljiva crawler-ima

• Root element ovog dokumenta je tag urlset

• Atribut u root elementu xmlns, defi iše i e ski p osto u ko e se alazi puta ja do XML še e sa p a ili a pisa ja o og dokumenta

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

</urlset >

• Unutar ovog taga definiše se p oiz olja oj tago a <url> koji opisuju pojedinač e st a i e

url tag

• Tag url ima nekoliko standardnih child-ova:

• loc (apsolutna URL adresa do konkretne web strane)

• lastmod (datum poslednjeg update-a)

• ha gef e učestalost p o e a sad žaja

• priority (prioritet stranice u odnosu na druge u sajtu)

<url>

<loc>http://www.example.com/?id=who</loc>

<lastmod>2009-09-22</lastmod>

<changefreq>monthly</changefreq>

<priority>0.8</priority>

</url>

Primer <?xml version="1.0" encoding="UTF-8"?>

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

<url>

<loc>http://www.example.com/?id=who</loc>

<lastmod>2009-09-22</lastmod>

<changefreq>monthly</changefreq>

<priority>0.8</priority>

</url>

<url>

<loc>http://www.example.com/?id=what</loc>

<lastmod>2009-09-22</lastmod>

<changefreq>monthly</changefreq>

<priority>0.5</priority>

</url>

</urlset>

http://en.wikipedia.org/wiki/Site_map

Kreiranje sitemap-a

• Site ap se ože k ei ati uč o, ali postoje i auto atski ači i ada

• Postoji eliki oj sajto a koji k ei a site ap, za postojeći sajt, u formi XML dokumenta

• Jedan od takvih sajtova je i http://www.xml-sitemaps.com/

http://www.xml-sitemaps.com/