Pređi na sadržaj

Document type declaration

S Vikipedije, slobodne enciklopedije

Deklaracija tipa dokumenata, ili DOCTYPE, je instrukcija koja povezuje poseban SGML ili XML dokument (na primer, veb stranica sa definicijom tipa dokumenta (DTD) (na primer, formalna definicija posebne verzije HTML-a).[1] U serijalizacionoj formi dokumenta, ogleda se kao kratak niz obeležavačkih jezika koji odgovaraju posebnoj sintaksi.

HTML raspoređivačka mašina u modernim veb pregledačima izvršava DOCTYPE "njuškanje" or "prebacivanje", gde DOCTYPE u dokumentu postavljen kao text/html određuje način raspoređivanja, kao npr. "quirks mode" ili "standardni način raspoređivanja". text/html serijalizacija HTML5, koji nije baziran na SGML-u, koristi DOCTYPE samo za način selekcije. Otkad je veb pregledač ugrađen sa specijalno namenjenim HTML parserom, više nego generalno namenjenim DTD-baziranim parserima, oni ne koriste DTD i nikada mu neće pristupiti dok je URL obezbeđen. DOCTYPE je zadržan u HTML5 kao "većinom beskorisno, ali traženo" zaglavlje samo da aktivira "standardni način" u uobičajenim pregledačima.[2]

DTD[uredi | uredi izvor]

Sintaksa[uredi | uredi izvor]

Uobičajena sintaksa za DTD je:

<!DOCTYPE root-element PUBLIC "FPI" ["URI"] [ 
<!-- интерни подсет декларација -->
]>

ili

<!DOCTYPE root-element SYSTEM "URI" [ 
<!-- интерни подсет декларација -->
]>

U XML-u, koreni element koji predstavlja dokument je prvi element u dokumentu. Na primer, u XHTML-u, koreni element je <html>, tako što je prvi element koji se otvara (posle DOCTYPE deklaracije) i poslednji zatvara. Ključne reči SYSTEM i PUBLIC pokazuju koji tip deklaracije tipa dokumenata (DTD-a) je u pitanju (prvi je na privatnom sistemu, a drugi je otvoren za javnost). Ako je izabrana ključna reč PUBLIC onda je ova ključna reč praćena ograničenom formom "javni identifikator" nazvan Formalni javni identifikator (FJI) priložen dvostrukim navodnicima. Posle toga, neophodan "sistemski identifikator" priložen dvostrukim navodnicima, je obezbeđen. Na primer, FJI za XHTML 1.1 je "-//W3C//DTD XHTML 1.1//EN" i, postoje 3 moguća sistemska identifikatora dostupna za XHTML u zavisnosti od potreba, jedna od njih je URI preporuka "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd". Ako se umesto toga izabere ključna reč "SYSTEM", potrebno je dati samo sistemski identifikator. To znači da XML parser mora da locira DTD na sistemsko-specifičan način, u ovom slučaju pomoću URI preporuke DTD-a sa dvostrukim navodnicima. Poslednji deo, označen uglastim zagradama ([]) se zove interni podset koji može da se koristi da se dodaju/izmene ponašanja ključne reči "PUBLIC".[3] Interni podset je uvek opcionalan (i ponekad čak zabranjen u okviru jednostavnih SGML profila, uglavnom onih za osnovne XTML parsere koji ne implementuju puni SGML parser).

Sa druge strane, deklaracija tipa dokumenata su malo drugacija u SGML-baziranim dokumentima kao što je XTML, gde se javni identifikator može asocirati sa sistemskim identifikatorom. Ova asocijacija se moze izvršiti, npr. koristeći katalogni fajl pridajući FJI sistemskom identifikatoru.[4]

Primer[uredi | uredi izvor]

Prvi red mnogih World Wide Web stranica je:

<!DOCTYPE html PUBLIC
  "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="ar" dir="ltr" xmlns="http://www.w3.org/1999/xhtml">

Ova deklaracija tipa dokumenata za XHTML uključuje, po preporuci DTD-a, čiji je javni identifikator, -//W3C//DTD XHTML 1.0 Transitional//EN i čiji je sistemski identifikator http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd. ". Entity resolver može da koristi jedan od ta dva identifikatora za lociranje pomenutog spoljnog lica. Interni podset nije ukazan u ovom primeru ili u sledećim. Korenski element je deklarisan da bude htmli stoga je prvi "tag" koji se otvara posle kraja deklaracije tipa dokumenta u ovom primeru kao i u sledećim. html "tag" nije deo deklaracije tipa dokumenta ali je uključen u primere radi orijentacije.

HTML 4.01 DTDs[uredi | uredi izvor]

Striktni DTD ne dozvoljava prezentacionu oznaku sa argumentima koja Cascading Style Sheets treba da koristi umesto toga. Ovo je kako striktni DTD izgleda:

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
 <html>

Prelazni DTD dozvoljava stariji PUBLIC i atribute koji su zastareli:

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
 <html>

Ako su korišćeni ramovi, set ramova DTD mora biti iskorišćen na ovakav način:

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
   "http://www.w3.org/TR/html4/frameset.dtd">
 <html>

XHTML 1.0 DTDs[uredi | uredi izvor]

XHTML-ovi DTD-ovi su takođe striktni, prelazni i setovi ramova.

XHTML striktni DTD. Nijedan zastareli tag nije podržan i kod mora da bude ispravno napisan.

 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE html
     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

XHTML prelazni DTD je kao XHTMLov striktni DTD, ali zastareli tagovi su dozvoljeni.

 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE html
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

XHTMLov set ramova DTDa je jedini XHTML DTD koji podržava set ramova. DTD je ispod.

 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE html
     PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

XHTML 1.1 DTD[uredi | uredi izvor]

XHTML 1.1 najnovija završna revizija XHTMLa, uvođenjem podrške za XHTML Modularization. XHTML 1.1 ima strogost striktnog XHTMLa 1.0.

<!DOCTYPE html PUBLIC
  "-//W3C//DTD XHTML 1.1//EN"
  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

XHTML osnove DTDa[uredi | uredi izvor]

XHTML osnove 1.0

<!DOCTYPE html PUBLIC
  "-//W3C//DTD XHTML Basic 1.0//EN"
  "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">

XHTML osnove 1.1

<!DOCTYPE html PUBLIC
  "-//W3C//DTD XHTML Basic 1.1//EN"
  "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">

XHTML mobilni profil DTDa[uredi | uredi izvor]

XHTML Mobile Profile 1.0

<!DOCTYPE html PUBLIC
  "-//WAPFORUM//DTD XHTML Mobile 1.0//EN"
  "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">

XHTML mobilni profil 1.1

<!DOCTYPE html PUBLIC
  "-//WAPFORUM//DTD XHTML Mobile 1.1//EN"
  "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile11.dtd">

XHTML mobilni profil 1.2

<!DOCTYPE html PUBLIC
  "-//WAPFORUM//DTD XHTML Mobile 1.2//EN"
  "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd">

HTML5 DTD bez DOCTYPE-a[uredi | uredi izvor]

HTML5 koristi DOCTYPE deklaraciju tipa dokumenta koja je veoma kratka, zbog nedostatka preporuka na DTD u formi URL-a ili FJI-a. Sve sto sadrži je ime oznake korenskog elementa dokumenta, HTML.[5] Rečima iz same specifikacije:

Drugim rečima, <!DOCTYPE html>, nije slovno osetljiv.

Sa izuzetkom nedostatka URI-a ili FJI stringa stringa (FJI string se tretira slovno osetljivim od strane validatora), ovaj format (slovno osetljiv string <!DOCTYPE HTML) je isti kao i u sintaksi SGML baziranog HTML 4.01 DOCTYPE. U HTML4 i HTML5, formalna sintaksa se definiše velikim slovima, čak i ako se miks većih i manjih slova smatra ispravnim.

U XHTML5, DOCTYPE mora biti slovno osetljivog stringa "<!DOCTYPE html>". Ovo se dešava zato što je u XHTML-u sintaksa svih HTML PUBLIC zahtevana da bude malim slovima, uključujući korenski element preporučen u HTML5 DOCTYPE. Takođe, XHTML prihvata samo velika slova unutar DOCTYPE string.[traži se izvor]

DOCTYPE je opcionalan u XHTML5 i može jednostavno da bude izostavljen.[6] Ali, ako označavanje treba obraditi kao XML i HTML, DOCTYPE treba da se koristi.[7]

Vidi još[uredi | uredi izvor]

Reference[uredi | uredi izvor]

  1. ^ „35 Helpful HTML & HTML5 Interview Questions & Answers”. Arhivirano iz originala 17. 02. 2015. g. Pristupljeno 19. 2. 2015. 
  2. ^ „The HTML syntax ― HTML5”. Pristupljeno 5. 6. 2011. 
  3. ^ DOCTYPE Declaration
  4. ^ „Arhivirana kopija”. Arhivirano iz originala 14. 08. 2011. g. Pristupljeno 26. 05. 2015. 
  5. ^ „The HTML syntax ― HTML5”. Web Hypertext Application Technology Working Group. Pristupljeno 5. 6. 2011. „3. A string that is an ASCII case-insensitive match for the string "DOCTYPE"... 5. A string that is an ASCII case-insensitive match for the string "HTML". 
  6. ^ „The XHTML syntax ― HTML5”. Web Hypertext Application Technology Working Group. Arhivirano iz originala 7. 06. 2012. g. Pristupljeno 1. 9. 2009. 
  7. ^ „Polyglot Markup: HTML-Compatible XHTML Documents”. World Wide Web Consortium. Pristupljeno 17. 1. 2012. 

Spoljašnje veze[uredi | uredi izvor]