Razlika između inačica stranice »Document Type Definition«

bez sažetka
m (robot Dodaje: fi:DTD, tr:DTD Mijenja: ca:Document Type Definition)
'''DTD''' (Document Type Definition) je stariji način određivanja pravila strukture [[XML]] dokumenta. U zaglavlju [[XML]] dokumenta navodi se oznaka DTDa prema pravilima kojeg je dokument formatiran. Za vrijeme kreiranja [[XML]] dokumenta, kreator koristi DTD kako bi formirao [[XML]] dokument prema odgovarajućim pravilima. Svaki korisnik tog [[XML]] dokumenta koristeći odgovarajući DTD zna na ispravan način interpretirati sadržaj [[XML]] dokumenta. Također primjenom pravila iz DTDa osoba koja kreira novi [[XML]] dokument može provjeriti da li ga je na ispravan način formirala.
 
 
== DTD formatiranje ==
DTD formatiranje se odvija na slijedeći način:
# definira se skup elemenata
# definira se sadržaj svakog elementa
# definiraju se atributi elemenata
# definiraju se entiteti koji će se koristiti u dokumentu
 
== Sintaksa DTDa ==
# '''Elementi''' su osnovni blokovi [[XML]] dokumenta. Elementi mogu sadržavati druge elemente, sadržaj ili biti prazni. <br />
# '''Atributi''' sadrže dodatne informacije o elementima. Navode se unutar početne oznake elementa. <br />
# '''EnitetiEntiteti''' su varijable koje definiraju često korišteni tekst. Postoje i reference na entitete. Jedna od najpoznatijih i najčešće korištenih je referenca na znak praznine &amp;nbsp;.<br />
# '''PCDATA''' predstavlja tekst koji će parsirati [[XML]] parser. [[XML]] oznake na koje parser naiđe tretirati će kao posebne [[XML]] oznake i interpretirati ih na odgovarajući način.<br />
# '''CDATA''' predstavlja tekst koji [[XML]] parser neće parsirati. [[XML]] oznake na koje parser naiđe tretirati će kao običan tekst i neće ih interpretirati kao [[XML]] oznake.<br />
Deklaracija svakog DTD elementa započinje oznakom '''&lt;!ELEMENT''' i završava znakom '''&gt;'''. Sastoji se od '''naziva''' elementa i '''opisa''' [[model|modela]]. Četiri su tipa sadržaja:
* '''podaci''' su sadržaj najniže razine i unutar njega se navodi krajnji sadržaj. Model toga sadržaja označava se s '''<nowiki>#</nowiki>PCDATA'''.
 
* '''elementi''' sadrže elemente podređene razine. Model toga sadržaja sastoji se od niza podređenih elemenata razdvojenih zarezima. Redoslijed niza je važan;
<table class="wikitable" border="1">
* '''praznina''' ne sadrži niti podatke niti elemente. Model tog sadržaja označava se s '''EMPTY'''.
<tr><td> '''DTD'''</td><td> '''XML'''</td></tr>
<tr><td><tt><!ELEMENT ime (#PCDATA)><br><!ELEMENT prezime (#PCDATA)></tt></td>
<td><tt><ime>Pero</ime><br>
<prezime>Perić</prezime></tt></td></tr>
</table>
 
* '''elementi''' sadrže elemente podređene razine. Model toga sadržaja sastoji se od niza podređenih elemenata razdvojenih zarezima. Redoslijed niza '''je važan''';
<table class="wikitable" border="1">
<tr><td> '''DTD'''</td><td> '''XML'''</td></tr>
<tr><td><tt><!ELEMENT osoba (ime, prezime?)></tt></td>
<td><tt><osoba><br><ime>Pero</ime><br>
<prezime>Perić</prezime><br>
</osoba>
</tt></td></tr>
</table>
* '''prazninaprazni elementi''' ne sadrži niti podatke niti elemente. Model tog sadržaja označava se s '''EMPTY'''.
<table class="wikitable" border="1">
<tr><td> '''DTD'''</td><td> '''XML'''</td></tr>
<tr><td><tt><!ELEMENT br EMPTY></tt></td>
<td><tt>&lt;br /&gt;</tt></td></tr>
</table>
 
* '''miješani sadržaj''' sastoji se od podataka i elemenata podređene razine. Model se sastoji od niza podređenih elemenata i od oznake '''<nowiki>#</nowiki>PCDATA'''.
 
* atributi čija vrijednost je niz znakova su tipa '''CDATA'''
* atributi čija vrijednost mora biti jedna iz navedenog niza su tipa '''(vrijednost1|vrijednost2|..)'''
* atributi čija vrijednost je jedinstvenijedinstvena brojoznaka su tipa '''ID'''
* atributi čija vrijednost je jedinstvenijedinstvena brojoznaka nekog drugog elementa ssu tipa '''IDREF'''
* atributi čija vrijednost je lista drugih jedinstvenih oznaka su tipa '''IDREFS'''
* atributi čija vrijednost je ispravan [[XML]] naziv su tipa '''NMTOKEN'''
* '''<nowiki>#</nowiki>IMPLIED''' označava da je vrijednost atributa opcionalna i ne mora biti uključena
* '''<nowiki>#</nowiki>FIXED''' označava da je vrijednost atributa fiksno određena
 
=== DTD entiteti ===
DTD entiteti definiraju prečace do određenih vrijednosti. Određeni enetiteti standardno su zadani unutar XMLa. To su npr.
* znak "manje od (<) - &amp;lt;
* znak "veće od" (>) - &amp;gt;
* razmak - &amp;nbsp;
* navodnik (") - &amp;quot;
 
Druga vrsta entiteta su oni koje sami deklarirate unutar DTD dokumenta i koristite unutar XML dokumenta. Prilikom obrade (parsiranja) XML dokumenta DTD entitet će se pretvoriti u vezanu vrijednost. Entiteti se deklariraju unutar '''ENTITY''' deklaracije.
 
<table class="wikitable" border="1">
<tr><td> '''DTD'''</td><td> '''XML prije parsiranja'''</td><td>'''XML nakon parsiranja'''</td></tr>
<tr><td><tt><!ENTITY imeAutora "Pero Perić"></tt></td>
<td><tt><autor><br>&amp;imeAutora;<br></autor></tt></td>
<td><tt><autor><br>Pero Perić<br></autor></tt></td>
</tr>
</table>
 
== Deklariranje DTD modela ==
'''<!DOCTYPE Studenti SYSTEM "studenti.dtd" >'''
<Studenti>
<Osoba id="s201">
<Ime>Pero</Ime>
<Prezime>Perić</Prezime>
<KontaktPodaci>
<Telefon>01-111-777</Telefon>
<Telefon vrsta="Mobilni">098-111-1778</Telefon>
<Email>pperic@zg.tel.hr</Email>
<KorisnickoIme>pperic</KorisnickoIme>
<!ELEMENT Telefon (#PCDATA)>
<!ELEMENT Email (#PCDATA)>
<!ATTLIST Osoba id ID #REQUIRED>
<!ATTLIST Telefon vrsta (Fiksni|Mobilni) #IMPLIED>
 
 
== Prednosti i nedostaci DTDa ==
95

uređivanja