Jezici za obele zavanje dr Jelena...

59
Veb programiranje Jezici za obeleˇ zavanje dr Jelena Graovac www.matf.bg.ac.rs/ ~ jgraovac Matematiˇ cki fakultet Beograd, 8. mart, 2017.

Transcript of Jezici za obele zavanje dr Jelena...

Page 1: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Veb programiranjeJezici za obelezavanje

dr Jelena Graovac

www.matf.bg.ac.rs/~jgraovac

Matematicki fakultetBeograd, 8. mart, 2017.

Page 2: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Pregled

1 Jezici za obelezavanje

2 SGML

3 XML

4 Literatura

dr Jelena Graovac Veb programiranje

Page 3: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Pregled

1 Jezici za obelezavanje

2 SGML

3 XML

4 Literatura

dr Jelena Graovac Veb programiranje

Page 4: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Jezici za obelezavanje

Dva paradigmaticna pristupa za kreiranje tekstualnihdokumenata:

Interaktivno-graficki pristup;Ekplicitno obelezavanje teksta.

dr Jelena Graovac Veb programiranje

Page 5: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Interaktivno-graficki pristup

“What You See Is What You Get“, ono sto vidis, to i dobijas

“What You See Is all You´ve Got“, ono sto vidis, to je sve stodobijas

Obelezja nisu vidljiva ni dostupna korisniku

Obelezja se uglavnom vezuju za graficke karakteristike teksta(npr. predstavljanje dela teksta krupnijim slovima, cirilicom ilinekim drugim pismom, postavljanje poravnanja i slicno)

Ovako funkcionisu mnogi danasnjih komercijalnitekst-procesori (npr. Microsoft Word)

dr Jelena Graovac Veb programiranje

Page 6: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Ekplicitno obelezavanje teksta

Tekst se dodatno obelezava informacijama koje ga opisuju

Naglasak je na opis logicke strukture teksta bez brige o tomekako on trenutno izgleda na ekranu

Za unos teksta se koristi proizvoljni editor

Obelezja korisnik eksplicitno unosi u tekst

Obelezja uglavnom oznacavaju logicke celine u tekstu

Prikazivanje se definise jedinstveno za sve instance kojeodgovaraju odre�enom logickom obelezju

dr Jelena Graovac Veb programiranje

Page 7: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Jezici za obelezavanje

Logicka struktura dokumenta

Organizacija dokumenta na manje jedinice (npr. poglavlja,sekcije, pasuse)oznacavanje istaknutih delova dokumenta (npr. primeri, citati,definicije i teoreme)

Vizuelna prezentacija

Odre�uje izgled dokumenta u trenutku prikazivanja ilistampanjaNa primer, ona odreduje vrstu i velicinu slova kojima seodredeni delovi teksta predstavljaju, prored koji se koristi,raspored delova dokumenta na papiru ili ekranu, boju delovadokumenta i slicno.

Razdvajanje logicke strukture dokumenata od njihove grafickeprezentacije ima dosta prednosti

dr Jelena Graovac Veb programiranje

Page 8: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Jezici za obelezavanje

Jezici za obelezavanje teksta (eng. markup languages)

To su vestacki jezici u kojima se koriscenjem posebnih oznakaopisuje logicka struktura teksta ili njegov graficki izgled.

Najpoznatiji jezici za obelezavanje su HTML, TEX tj. LATEX,PostScript, RTF, itd.

Svaki od ovih jezika odlikuje se konkretnom sintaksomoznacavanja i koristi se za oznacavanje jednog tipa dokumenta

Nazivaju se jos i objektni jezici

Svaki pojedinacni tip dokumenata zahteva svoj nacinoznacavanja i skup oznaka pogodnih za njegovo oznacavanje

dr Jelena Graovac Veb programiranje

Page 9: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Jezici za obelezavanje

Kako bi se na precizan i uniforman nacin omogucilodefinisanje konkretnih objektnih jezika za oznacavanjerazlicitih tipova dokumenata, razvijeni su i meta jezici.

Najpoznatiji meta jezici za obelezavanje su SGML i XML ucijem okviru su definisani objektni jezici HTML, XHTML,MathML, SVG itd.

dr Jelena Graovac Veb programiranje

Page 10: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Uvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

Pregled

1 Jezici za obelezavanje

2 SGMLUvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

3 XML

4 Literatura

dr Jelena Graovac Veb programiranje

Page 11: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Uvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

SGML

SGML (Standard Generalized Markup Language) —Standardni opsti jezik za obelezavanje

Osnovna motivacije prilikom standardizovanja ovog jezika jebila da se obezbedi trajnost dokumentima i njihovanezavisnost od aplikacija kojima su kreirani.

Pretecom jezika SGML smatra se jezik GML (GeneralizedMarkup Language) nastao u kompaniji IBM 1960-tih.

Jedna od znacajnijih primena jezika SGML je bila izradadrugog, elektronskog, izdanja ,,Oksfordskog recnika engleskogjezika (OED)“

dr Jelena Graovac Veb programiranje

Page 12: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Uvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

SGML

Najznacajnija primena jezika SGML dosla kroz objektni jezikHTML cije su prve verzije definisane upravo u okviru jezikaSGML

HTML — standardni jezik za obelezavanje dokumenata navebu

Svaki jezik za obelezavanje koji je definisan u SGML-u nazivase i SGML aplikacija

dr Jelena Graovac Veb programiranje

Page 13: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Uvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

Jezici za obelezavanje

dr Jelena Graovac Veb programiranje

Page 14: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Uvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

Uvodni primeri dokumenata

SGML se koristi da bi se obelezila struktura dokumenataodre�enog tipa

Na primer, zbirka pesama sadrzi nekoliko pesama, pri cemu sesvaka pesma sastoji od nekoliko strofa, a svaka strofa odnekoliko stihova

dr Jelena Graovac Veb programiranje

Page 15: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Uvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

Uvodni primeri dokumenata

HTML primer

dr Jelena Graovac Veb programiranje

Page 16: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Uvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

Uvodni primeri dokumenata

Dokumenti se sastoje od me�usobno ugnjezdenih elemenata

Za obelezavanje elemenata se koriste etikete (tagovi) oblika<ime-elementa> i </ime-elementa> (na primer, <strofa>i </strofa> ili <body> i </body>).

Elementi sadrze tekst, druge elemente ili kombinaciju i jednogi drugog

Elementi mogu biti dodatno okarakterisani atributima oblikaime_atributa="vrednost_atributa" (na primernaslov= "Zaba cita novine").

U okviru teksta mogu se pojaviti i karakterski entiteti oblika&ime-entiteta; (na primer &copy;) koji oznacavajuodre�ene karaktere

dr Jelena Graovac Veb programiranje

Page 17: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Uvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

Uvodni primeri dokumenata

Svaki objektni jezik definisan u okviru SGML-a definisesopstveni skup etiketa

Svakom dokumentu, pridruzen je njegov tip.

Tip dokumenta odre�uje sintaksu dokumenta

SGML parseri ili SGML validatori — ispitaju da li je dokumentu skladu sa svojim tipom tj. da li zadovoljava sva sintaksnapravila propisana odgovarajucim tipom

dr Jelena Graovac Veb programiranje

Page 18: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Uvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

Uvodni primeri dokumenata

<!DOCTYPE>

Definicija tipa dokumenta (eng. Document type definition —DTD)

zbirka-pesama.dtdhttp://www.w3.org/TR/html4/strict.dtd

Ove datoteke definisu elemente od kojih se grade konkretnidokumenti.

dr Jelena Graovac Veb programiranje

Page 19: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Uvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

Uvodni primeri dokumenata

Proces kreiranja novih tipova dokumenata podrazumevaizradu:

SGML deklaracijeDefinicije tipa dokumentaSemanticke specifikacije

dr Jelena Graovac Veb programiranje

Page 20: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Uvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

Osnovni konstrukti

Elementi i etikete

Atributi

Entiteti

Komentari

Oznacene sekcije

Instrukcije procesiranja

dr Jelena Graovac Veb programiranje

Page 21: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Uvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

Osnovni konstrukti

Elementi i etikete

Osnovna gradivna jedinica SGML dokumenata su elementiElementi su obicno oznaceni etiketama (eng. tag)

Otvarajuce etikete (eng. opening tag) oblika <ime-elementa>

Zatvarajuce etikete (eng. closing tag) oblika</ime-elementa>

dr Jelena Graovac Veb programiranje

Page 22: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Uvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

Osnovni konstrukti

Elementi i etikete

Moguce je izostaviti zavrsne etikete, dok je kod nekih cakmoguce izostaviti i pocetne etikete

Neki SGML elementi nemaju svoj sadrzaj. Npr. HTMLelement koji oznacava prelazak u novi red <br>. Kod praznihelemenata najcesce je zabranjeno navoditi zavrsnu etiketu.Svi elementi koji se mogu koristiti u okviru jednog dokumentase navode u okviru DTD. Za svaki element se navodi da li jeobavezno koriscenje etiketa i precizno se opisuje njegovdozvoljeni i nedozvoljeni sadrzaj.

dr Jelena Graovac Veb programiranje

Page 23: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Uvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

Osnovni konstrukti

Atributi

Atributi sadrze dodatne informacije o SGML elementimaAtributi imaju svoj naziv i vrednost

dr Jelena Graovac Veb programiranje

Page 24: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Uvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

Osnovni konstrukti

Entiteti

SGML daje mogucnost imenovanja delova sadrzaja naportabilan nacin.Koncept eniteta u SGML uvodi izvesnu vrstu makro zamena.Zamena entiteta se vrsi kada se dokumenti analizirajuodgovarajucim parserom.Na primer, moguce je deklarisati entitet pod imenom uvit kojise zamenjuje tekstom Uvod u Veb i Internet tehnologije, izatim se u okviru ovog dokumenta na ime predmeta pozivatikoriscenjem reference na entitet.

dr Jelena Graovac Veb programiranje

Page 25: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Uvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

Osnovni konstrukti

Vrste entiteta i referenci na entitete

Obicni entiteti (eng. regular entities) – pocinju sa znakom & izavrsavaju se sa ; i moguce ih je navoditi u okviru tekstadokumenta (ne u okviru DTD)

dr Jelena Graovac Veb programiranje

Page 26: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Uvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

Osnovni konstrukti

Vrste entiteta i referenci na entitete

Parametarski entiteti (eng. parameter entities) — pocinjuznakom % i zavrsavaju se sa ; i moguce ih je navoditi samo uokviru DTD dokumenta (ne u okviru objektnih dokumenata)Karakterski entiteti (eng. character entities) — njima se uvodeimena koja oznacavaju odre�ene karaktere. Koriste se da bi senaveli karakteri koji imaju specijalno znacenje, zatim neki retkokorisceni karakteri, karakteri koji nisu podrzani tekucimkodiranjem karaktera ili karakteri koje je nemoguce uneti uokviru softvera za kreiranje dokumenata.

dr Jelena Graovac Veb programiranje

Page 27: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Uvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

Osnovni konstrukti

Karakterski entiteti

Na primer, u jeziku HTML "&lt;" oznacava karakter <, dok"&quot;" oznacava karakter ".Pored referenci na karakterske entitete, za predstavljanjekaraktera u dokumentima je moguce koristiti i numerickekarakterske referenceNa primer, "&#1114;" i &#x45A oznacavaju cirilicno maloslovo nj. Heksadekadni kodovi pocinju sa malim ili velikimslovom x.

dr Jelena Graovac Veb programiranje

Page 28: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Uvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

Osnovni konstrukti

Komentari

Oznacene sekcije (eng. marked sections) — koriste se da bi seoznacili delovi dokumenta koji zahtevaju posebnu vrstuprocesiranja

CDATA — doslovan sadrzaj koji se ne parsiraIGNORE — oznacava da se sekcija ignorise tokom parsiranjaINCLUDE — oznacava da se sekcija ukljucuje tokom parsiranjaTEMP — oznacava da je sekcija privremeni deo dokumenta

dr Jelena Graovac Veb programiranje

Page 29: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Uvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

Osnovni konstrukti

Instrukcije procesiranja (eng. processing instructions) —lokalne instrukcije aplikaciji koja obra�uje dokument inapisane su na nacin specifican za aplikaciju

Navode se izme�u <? i ?>

Ova instrukcija procesiranja govori PHP interpetatoru kojiobra�uje dokument da je u pitanju deo PHP koda koji je ondapotrebno interpretirati

dr Jelena Graovac Veb programiranje

Page 30: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Uvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

Definicije tipa dokumenta (DTD)

Deklaracije entiteta

dr Jelena Graovac Veb programiranje

Page 31: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Uvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

Definicije tipa dokumenta (DTD)

Deklaracija elementa pocinje sa <!ELEMENT, zavrsava se sa >,a izme�u se navodi:

Ime elementaPravila minimalizacije koja odre�uju da li je neka od etiketaopciona

Dve crtice nakon imena oznacavaju da su obe etikete obavezneCrtica za kojom sledi O oznacava da se zavrsna etiketa mozeizostavitiDva slova O oznacavaju da se obe etikete mogu izostaviti

Sadrzaj elementa. Dozvoljeni sadrzaj elementa se naziva modelsadrzaja (eng. content model).

Prosti modeli sadrzajaSlozeni modeli sadrzaja

dr Jelena Graovac Veb programiranje

Page 32: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Uvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

Definicije tipa dokumenta (DTD)

Prosti modeli sadrzaja

EMPTY — elementi koji nemaju sadrzaj, tj. prazni elementiANY — element moze imati proizvoljan sadrzaj koji se sastojiod teksta i drugih elemenataCDATA (character data) — tekst koji se nece analiziratipomocu SGML parsera. Sadrzaj se tumaci doslovno kako jenapisan tj. reference na enititete se ne zamenjuju entitetimadok etikete koje se u njemu nalaze ne oznacavaju elemente.RCDATA (replacable character data) — slicno kao CDATA,osim sto se reference zamenjuju (etikete i dalje ne oznacavajuelemente).

Slozeni modeli sadrzaja — koriste se u slucaju kada elementmoze da sadrzi druge ugnjezdene elemente

dr Jelena Graovac Veb programiranje

Page 33: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Uvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

Definicije tipa dokumenta (DTD)

Modeli grupe su predstavljeni izrazima u zagradama pri cemuatomi u izrazima mogu da budu:

Imena elemenata#PCDATA (parsed character data)

Atomi se dalje mogu kombinovati sledecim veznicima

A?A+A*A | BA, BA & B

Dodatna pravila ukljucivanja i iskljucivanja sadrzaja

+(S)-(S)

dr Jelena Graovac Veb programiranje

Page 34: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Uvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

Definicije tipa dokumenta (DTD)

Definicije elemenata mogu da sadrze reference parametarskihentiteta

dr Jelena Graovac Veb programiranje

Page 35: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Uvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

Deklaracije atributa

Deklaracija atributa u okviru DTD pocinje sa <!ATTLIST,nakon koga se navodi element za koji se deklarise atribut,potom sledi lista deklaracija pojedinacnih atributa i na krajuse navodi simbol >Svaka deklaracija pojedinacnih atributa je trojka koja definise:

Ime atributaTip vrednosti atributa, ili eksplicitno naveden skup dopustivihvrednosti.

CDATA (character data)NAMEIDNUMBER

Naznaku da li je vrednost atributa:implicitna #IMPLIED – podrazumevanu vrednost odre�ujesoftver koji vrsi obradu dokumentafiksirana #FIXED

zahtevana #REQUIRED

dr Jelena Graovac Veb programiranje

Page 36: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Uvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

Definicije tipa dokumenta (DTD)

Nekoliko primera:

dr Jelena Graovac Veb programiranje

Page 37: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Uvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

Ukljucivanje DTD

DTD moze biti naveden ili kroz unutrasnju ili kroz spoljasnjudeklaraciju.

dr Jelena Graovac Veb programiranje

Page 38: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Uvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

Ukljucivanje DTD

Primer unutrasnje deklaracije

<?xml version="1.0"?>

<!DOCTYPE note [

<!ELEMENT note (to,from,heading,body)>

<!ELEMENT to (#PCDATA)>

<!ELEMENT from (#PCDATA)>

<!ELEMENT heading (#PCDATA)>

<!ELEMENT body (#PCDATA)>

]>

<note>

<to>Tove</to>

<from>Jani</from>

<heading>Reminder</heading>

<body>Don’t forget me this weekend</body>

</note>

dr Jelena Graovac Veb programiranje

Page 39: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Uvodni primeri dokumenataOsnovni konstruktiDefinicije tipa dokumenta (DTD)

Ukljucivanje DTD

Primer spoljasnje deklaracije

note.dtd

<!ELEMENT note (to,from,heading,body)>

<!ELEMENT to (#PCDATA)>

<!ELEMENT from (#PCDATA)>

<!ELEMENT heading (#PCDATA)>

<!ELEMENT body (#PCDATA)>

note.xml

<?xml version="1.0"?>

<!DOCTYPE note SYSTEM "note.dtd">

<note>

<to>Tove</to>

<from>Jani</from>

<heading>Reminder</heading>

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

</note>

dr Jelena Graovac Veb programiranje

Page 40: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Ispravnost dokumenata

Pregled

1 Jezici za obelezavanje

2 SGML

3 XMLIspravnost dokumenata

4 Literatura

dr Jelena Graovac Veb programiranje

Page 41: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Ispravnost dokumenata

XML

SGML — izrazito opsti jezik koji omucava kodiranje veomaraznorodnih dokumenata

DTD — formalizam koji omogucava korisnicima da najezgrovit nacin iskazu sirok spektar sintaksnih pravila zaodre�eni tip dokumenata.

Posledica toga je da je SGML dizajniran kao veomakompleksan jezik sa mnostvom razlicitih sintaksnihkonstrukcija

Dopusten je veliki broj viseznacnosti i proizvoljnosti

Rad sa SGML-om je otezan a izrada alata koji obra�ujuSGML dokumente je veoma komplikovana

dr Jelena Graovac Veb programiranje

Page 42: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Ispravnost dokumenata

XML

eXstensible Markup Language (XML) — meta jezik zaobelezavanje koji je nastao sredinom 1990-tih

XML — veoma slican jeziku SGML ali jednostavniji zaparsiranje (rasclanjavanje) i obradu.

Ovaj jezik je iz SGML-a izbacio proizvoljnosti tako da sepisanjem dokumenata u ovom jeziku moraju postovati mnogostriktnija pravila

Svaki ispravan XML dokument je ujedno i ispravan SGMLdokument

dr Jelena Graovac Veb programiranje

Page 43: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Ispravnost dokumenata

XML

Osnovni ciljevi koji su vodili dizajn jezika XML su:

XML ce biti koriscen na Internetu.XML ce podrzavati veliki broj aplikacija.XML ce biti kompatibilan sa jezikom SGMLBice jednostavno pisati programe koji procesiraju XMLdokumenteXML nece sadrzati opcione i proizvoljne deloveXML dokumenti moraju biti citljivi i jasni za ljude.XML ce biti brzo razvijenDizajn jezika XML ce biti formalan i koncizanXML dokumente ce biti jednostavno kreirati.

dr Jelena Graovac Veb programiranje

Page 44: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Ispravnost dokumenata

XML

Vremenom se pojavio se jako veliki broj XML aplikacija

XHTML - zapis hipertekstualnih dokumenataMathML - zapis matematickog sadrzajaSVG - zapis vektorskih crtezaSMIL - zapis multimedijalnog sadrzajaWML - zapis sadrzaja pogodnog za pregledanje na mobilnimure�ajimaSOAP - koriscenje veb servisa

dr Jelena Graovac Veb programiranje

Page 45: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Ispravnost dokumenata

XML

S obzirom na ostriju sintaksu XML dokumenata, XML jevremenom postao jezik za zapisivanje raznovrsnihstruktuiranih i polustruktuiranih informacija

Doslo je do razvoja specijalnih baza podataka koje suzasnovane na skladistenju informacija u XML dokumentima ikoriscenju specijalizovanih jezika (npr. XPath, XQuery) zapretrazivanje.

dr Jelena Graovac Veb programiranje

Page 46: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Ispravnost dokumenata

Dobro formirani i validni dokumenti

Navedimo neka opsta sintaksna pravila koje uvodi XML,naglasavajuci pri tom razlike izme�u jezika SGML i XML:

Svi elementi u jeziku XML moraju sadrzati i pocetnu i zavrsnuetiketu, sto nije slucaj u jeziku SGMLMoguce je koristiti specijalnu vrstu etiketa kojima seobelezavaju prazni elementi. Na primer, umesto <br></br>,moguce je pisati <br />. U jeziku SGML prazni elementi cestone smeju imati zavrsnu etiketu.

dr Jelena Graovac Veb programiranje

Page 47: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Ispravnost dokumenata

Dobro formirani i validni dokumenti

Opsta sintaksna pravila koje uvodi XML:

XML razlikuje velika i mala slova i imena XML elemenata seobicno pisu se malim slovom. SGML nije osetljiv na velicinuslova.U XML-u i u SGML-u svi elementi moraju biti dobro ugnjezdeniSvaki XML dokument mora imati sadrzaj napisan u okvirujednog elementa koji se nalazi na najvisem nivou i koji senaziva koreni element (eng. root element). Na primer, uokviru svakog HTML dokumenta, ceo sadrzaj se nalazi uokviru elementa html. SGML dokumente nije neophodno pisatiu okviru jednog elementa koji se nalazi na najvisem nivou.U jeziku XML, nije dozvoljeno izostavljanje vrednosti atributa,kao ni izostavljanje navodnika prilikom navodenja vrednostiatributa, sto je dozvoljeno u jeziku SGML.

dr Jelena Graovac Veb programiranje

Page 48: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Ispravnost dokumenata

Dobro formirani i validni dokumenti

Opsta sintaksna pravila koje uvodi XML:

U okviru XML dokumenta (isto kao i u okviru SGMLdokumenta) karakteri < i & imaju specijalno znacenje i nije ihdozvoljeno koristiti osim za oznacavanje etiketa i referencientiteta. Umesto njih potrebno je koristiti reference entiteta&lt; i &amp;. Karakteri >, " i ’ nisu zabranjeni, ali je umestonjih preporucljivo koristiti &gt;, &quot; i &apos;. Ovo sujedini predefinisani eniteti jezika XML.Na pocetku XML dokumenta pozeljno je navesti XMLdeklaraciju — instrukciju procesiranja oblika<?xml version="1.0" encoding="utf-8" ?>

koja govori o verziji XML-a i koriscenom kodiranju karaktera.Ukoliko je kodiranje razlicito od utf-8 ili utf-16, neophodno jenavesti xml deklaraciju koja specifikuje kodiranje

dr Jelena Graovac Veb programiranje

Page 49: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Ispravnost dokumenata

Dobro formirani i validni dokumenti

S obzirom na kompleksnost i striktnost opste sintakse kojusvaki XML dokument mora da zadovolji, dokumenti kojipostuju ove sintaksne zahteve smatraju se ispravnim (uslabom smislu te reci) i za njih se kaze da su dobro formirani(eng. well formed).

dr Jelena Graovac Veb programiranje

Page 50: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Ispravnost dokumenata

Dobro formirani i validni dokumenti

Na primer, dokument narednog sadrzaja se moze smatratiispravnim HTML 4.01 dokumentom jer postuje sva pravilasintakse jezika SGML (u kome je jezik HTML 4.01 definisan).

dr Jelena Graovac Veb programiranje

Page 51: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Ispravnost dokumenata

Dobro formirani i validni dokumenti

Ipak, dokument prethodnog sadrzaja se ne moze smatratidobro formiranim XML dokumentom jer narusava mnogaopsta pravila sintakse jeizka XML. Na primer, nedostajuzavrsne etikete elemenata <p> i <img> i mesana su velika imala slova.

dr Jelena Graovac Veb programiranje

Page 52: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Ispravnost dokumenata

Dobro formirani i validni dokumenti

Naredni sadrzaj predstavlja dobro formirani dokument kojiodgovara prethodnom, a koji je opisan u jeziku XHTML(definisanom u okviru jezika XML):

dr Jelena Graovac Veb programiranje

Page 53: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Ispravnost dokumenata

Dobro formirani i validni dokumenti

Pored ovih opstih pravila, isto kao i u jeziku SGML, svakompojedinacnom tipu dokumenta je pridruzena njegovaspecificna sintaksa kojom su propisani elementi, atributi ientiteti od kojih se dokument sastoji.

Jezik XML zadrzava koncept definicije tipa dokumenta (DTD)za specifikovanje tipova dokumenta, ali uvodi i alternativninacin da se ovo uradi koriscenjem XML sheme (eng. XMLschema).

Dokumenti koji su dobro formirani i koji dodatno postuju svasintaksna pravila svog tipa dokumenta smatraju se ispravnim(u jakom smislu te reci) i za njih se kaze da su validni (eng.valid).

dr Jelena Graovac Veb programiranje

Page 54: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Ispravnost dokumenata

Dobro formirani i validni dokumenti

Tako, na primer, iako je naredni dokument dobro formiran, onnije validan (jer element html jezika XHTML mora da sadrzizaglavlje koje ovde nedostaje, i tako�e element body sadrziatribut color koji nije na ovom mestu dopusten).

dr Jelena Graovac Veb programiranje

Page 55: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Ispravnost dokumenata

XML DTD i XML Schema

Iako na prvi pogled XML DTD i SGML DTD izgledaju veomaslicno, XML znacajno smanjuje izrazajnost prilikom pisanjaDTD ukidajuci neke konstrukcije i uvodeci neke restrikcije.

U nastavku ce biti samo veoma grubo skicirane razlike uodnosu na SGML:

Velicina slova nije bitna u okviru SGML DTD, dok u XMLDTD postaje bitna.Nije dozvoljena minimalizacija elemenata tako da DTD nemoze da sadrzi pravila minimalizacijeMnogi skraceni zapisi u okviru zapisa DTD nisu vise podrzani.Na primer, nije moguce koristiti komentare u okvirudeklaracija, nije moguce koristiti istovremenu deklaraciju viseelemenata i slicno.Mnogi tipovi atributa su ukinuti.

dr Jelena Graovac Veb programiranje

Page 56: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Ispravnost dokumenata

XML DTD i XML Schema

U nastavku ce biti samo veoma grubo skicirane razlike uodnosu na SGML:

U slucaju deklaracije mesanog modela sadrzaja dokumentauvedena su striktnija pravila. Na primer, #PCDATA mora da sejavi na prvom mestu u deklaraciji i ne moze biti vezanoveznikom , koji odreduje redosled teksta i elemenata.Dodatno ukljucivanje i iskljucivanje sadrzaja (+(S) i -(S))nije dozvoljenoZabranjeno je koriscenje veznika &.CDATA i RCDATA modeli sadrzaja nisu vise dozvoljeni.Umesto njih se mora koristiti (#PCDATA). Ovim su tvorcidokumenata primorani da sve delove dokumenta koji ne bitrebalo da se obra�uje XML parserom oznace sa oznacenomCDATA sekcijom u okviru samog dokumenta.

dr Jelena Graovac Veb programiranje

Page 57: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Ispravnost dokumenata

XML DTD i XML Schema

XML Schema (XSD) predstavlja XML-zasnovanu alternativuza DTD tj. XML Schema dokumenti su dokumenti koji suzapisani u XML formatu.

U ovom primeru definisan je element student. Element sadrzi,redom, elemente ime i prezime koji imaju tekstuelni sadrzaj.

dr Jelena Graovac Veb programiranje

Page 58: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Pregled

1 Jezici za obelezavanje

2 SGML

3 XML

4 Literatura

dr Jelena Graovac Veb programiranje

Page 59: Jezici za obele zavanje dr Jelena Graovacpoincare.matf.bg.ac.rs/~jgraovac/courses/vebp/2016_2017/...Jezici za obele zavanje SGML XML Literatura Interaktivno-gra cki pristup \What You

Jezici za obelezavanjeSGML

XMLLiteratura

Literatura

Slajdovi su pripremljeni na osnovu glave 2 e-knjigeFilip Maric: Uvod u Veb i Internet tehnologije, 2013.(www.matf.bg.ac.rs/~filip/uvit/uvit.pdf)

Slajdovi profesora Vlade Filipovica, za predmet ”Uvod u Veb iInternet tehnologije”

Za pripremu ispita, slajdovi nisu dovoljni, neophodno je ucitiiz knjige!

dr Jelena Graovac Veb programiranje