Početna

   Video tutorijali

   HTML

   CSS

   JavaScript

   SMIL

   Windows

   Mreže

   XML i XSL

   Ostalo



Zapamti me
  Lozinka       Registracija
   O Svemu

affiliate_link

Apartmani Djurovic

MrdniSe

Document Type Definitions – DTD


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.

<!ELEMENT grupa (ime_grupe, album*)> <!ELEMENT album (naziv_albuma, god_izdanja)> <!ELEMENT ime_grupe (#PCDATA)> <!ELEMENT naziv_albuma (#PCDATA)> <!ELEMENT god_izdanja (#PCDATA)>

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:

  • * - nula ili više elemenata
  • + - jedan ili više elemenata
  • ? – nula ili jedan element

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.

<?xml version="1.0" standalone="no"?> <!DOCTYPE grupa SYSTEM "grupa.dtd"> <grupa> <ime_grupe>GRUPA</ime_grupe> <album> <naziv_albuma>ALBUM 1</naziv_albuma> <god_izdanja>1998</god_izdanja> </album> <album> <naziv_albuma>ALBUM 2</naziv_albuma> <god_izdanja>2004</god_izdanja> </album> </grupa>

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

<!DOCTYPE grupa SYSTEM "grupa.dtd">

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:

<!DOCTYPE podaci SYSTEM "http://www.moja_stranica/podaci.dtd">

Sada možemo malo promijeniti XML dokument tako da ga napravimo neispravnim.

<?xml version="1.0" standalone="no"?> <!DOCTYPE grupa SYSTEM "grupa.dtd"> <grupa> <album> <naziv_albuma>ALBUM 1</naziv_albuma> <god_izdanja>1998</god_izdanja> </album> <album> <naziv_albuma>ALBUM 2</naziv_albuma> <god_izdanja>2004</god_izdanja> </album> </grupa>

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.

<?xml version="1.0"?> <!DOCTYPE grupa [ <!ELEMENT grupa (ime_grupe, album*)> <!ELEMENT album (naziv_albuma, god_izdanja)> <!ELEMENT ime_grupe (#PCDATA)> <!ELEMENT naziv_albuma (#PCDATA)> <!ELEMENT god_izdanja (#PCDATA)> ]> <grupa> <ime_grupe>GRUPA</ime_grupe> <album> <naziv_albuma>ALBUM 1</naziv_albuma> <god_izdanja>1998</god_izdanja> </album> <album> <naziv_albuma>ALBUM 2</naziv_albuma> <god_izdanja>2004</god_izdanja> </album> </grupa>

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.




Ako ste naučili nešto novo napišite jedan komentar podrške.
Hvala!
Autor: VedranDatum objave: 21.07.2009

Za vas smo izdvojili:
  XML atributi
  Provjera XML pravopisa
  Uvod u XML

KOMENTARI:

Nema još ni jednog komentara.

Samo registrirani korisnici mogu komentirati.

copyright (c) 2008/09 osvemu.com | besplatnitutorijali.com  |   Webmaster   |   Podrška  |   Pravila korištenja