XML je veoma jednostavna skupina podataka. U sebi ne nosi nikakvu informaciju o tome jesu li svi elementi dobro napisani i je li svaki element na svom mjestu. Kao što smo vidjeli sami biramo koje elemente staviti, a koje ne i koji elementi dođu na koje mjesto. Mnoge aplikacije koje čitaju ovakve XML dokumente nisu tako fleksibilne i potrebno im je točno definirati koji elementi postoje i redoslijed pojedinih elemenata. Znači, aplikacija mora znati koji element očekivati nakon nekog elementa koji je već učitala i naravno prikazati ga na pravi način.
Rješenje ovog problema je upotreba Document Type Definitions ili DTD-a. Ovo je dodatni dokument koji prati XML dokumente. U njemu je formalno zapisano koji se elementi smiju pojaviti, kakva može biti vrijednost ovih elemenata i koji atributi elemenata se smiju pojaviti. Laički govoreći DTD može definirati da ''Element osoba mora imati atribute ime i prezime''. Nakon što smo definirali naš DTD dokument XML parser provjerava da li je XML dokument napisan prema tim specifikacijama koje se nalaze u DTD dokumentu.
Probajmo napisati jedan jednostavan DTD dokument i isprobajmo kako funkcionira sa XML dokumentima. Otvorite Notepad, kopirajte sljedeći kod i sačuvajte ga kao grupa.dtd.
Pogledajmo malo gornji kod. Ovdje smo definirali da u XML dokumentu postoji element grupa. Ovaj element sadrži child elemente ime_grupe i album. Zvjezdica na kraju album* znači da može postojati nula ili više album elemenata. Evo i ostalih znakova koje možete koristiti:
Ako ne napišemo ni jedan album element XML će ispravno raditi, a ako napišemo pet album elemenata XML će isto biti ispravan. Jednako kao što grupa možda još nije izdala album ili ih možda ima pet. Nadalje, svaki element album ima svoje child elemente, a to su naziv_albuma i god_izdavanja. Ovo je bila struktura XML dokumenta. Sada definiramo podatke. Postavili smo elemente ime_grupe, naziv_albuma, god_izdanja da sadržavaju tekst. Sada napišimo kako izgleda jedan valjani XML dokument koji će pratiti sva pravila iz DTD dokumenta.
Ovaj XML dokument sačuvajte kao grupa.xml. Važno je napomenuti da u ovom primjeru XML i DTD moraju biti u istoj mapi jer smo tako definirali u sljedećem redu koda
Kada su oba sačuvana otvorite XML u Internet Exploreru i pogledajte rezultat. Ovaj DTD dokument se obično nalazi na nekom serveru. XML u tom slučaju može biti i na lokalnom računalu, ali trebamo promijeniti ovaj red koda na sljedeći način:
Sada možemo malo promijeniti XML dokument tako da ga napravimo neispravnim.
U gornjem primjeru izbacili smo obavezni element ime_grupe. Ako otvorite sad XML dokument u Internet Exploreru nećete dobiti nikakvu grešku. To je zbog toga što web preglednici nisu obavezni da vam prijave ovakve greške. Da bi provjerili valjanost morate oba dokumenta stavili na web server (svoju web stranicu) te posjetiti jedan od XML web validatora kao što je:
Na ovoj stranici možete provjeriti da li XML dokument zadovoljava DTD shemu dokumenta. Osim u posebnom dokumentu DTD shema može biti zapisana i unutar istog XML dokumenta. Kopirajte sljedeći kod u Notepad i sačuvajte ga kao grupa.xml.
Na ovaj način imamo u jednom dokumentu i XML i pripadajući DTD. Ovo se rijetko kada radi jer onda morate u svaki XML dokument staviti cijeli DTD. Velika mana ovoga je ako dođe do promjene DTD sheme onda je trebate u svim dokumentima mijenjati. Praksa je napraviti DTD dokument i postaviti ga na web server te ga pozivati iz XML dokumenta.
| Autor: Vedran | Datum objave: 21.07.2009 |
|
KOMENTARI:
Samo registrirani korisnici mogu komentirati.