Belge türü beyanı

Bir belge türü beyanı (document type declaration) veya DOCTYPE, belirli bir XML veya SGML belgesini (örneğin, bir web sayfası) bir belge türü tanımıyla (DTD) (örneğin, belirli bir HTML 2.0 sürümünün resmi tanımı -) ilişkilendiren bir talimattır. 4.0).[1] Belgenin serileştirilmiş biçiminde, belirli bir sözdizimine uyan kısa bir işaretleme dizisi olarak ortaya çıkar.

Modern web tarayıcılarındaki HTML yerleşim motorları, DOCTYPE "koklama" veya "anahtarlama" gerçekleştirir; burada text/html olarak sunulan bir belgedeki DOCTYPE, " tuhaflıklar modu " veya "standartlar modu" gibi bir düzen modunu belirler. HTML5'in SGML tabanlı olmayan text/html serileştirmesi, DOCTYPE'ı yalnızca mod seçimi için kullanır. Web tarayıcıları, genel amaçlı DTD tabanlı ayrıştırıcılar yerine özel amaçlı HTML ayrıştırıcılarla uygulandığından, DTD'leri kullanmazlar ve bir URL sağlanmış olsa bile bunlara asla erişmezler. DOCTYPE, HTML5'te "çoğunlukla işe yaramaz, ancak yalnızca yaygın tarayıcılarda" standartlar modunu "tetiklemek için gerekli" bir başlık olarak tutulur.[2]

DTD'ler değiştir

Sözdizimi değiştir

Bir belge türü beyanı için genel sözdizimi şöyledir:

<!DOCTYPE root-element PUBLIC "/quotedFPI/" "/quotedURI/" [ 
<!-- internal subset declarations -->
]>

veya

<!DOCTYPE root-element SYSTEM "/quotedURI/" [ 
<!-- internal subset declarations -->
]>

XML'de, belgeyi temsil eden kök öğe, belgedeki ilk öğedir. Örneğin, XHTML'de, kök öğe <html> şeklindedir, açılan ilk öğedir (doctype beyanından sonra) ve son kapatılır. SYSTEM ve PUBLIC anahtar sözcükleri, bunun ne tür bir Belge Türü Tanımı (DTD) olduğunu (özel bir sistemdeki veya halka açık olan) önerir. PUBLIC anahtar sözcüğü seçilirse, bunu çift tırnak içine alınmış Resmi Genel Tanımlayıcı (FPI) adı verilen sınırlı bir "genel tanımlayıcı" biçimi takip eder. Genel tanımlayıcıyı, aynı şekilde çift tırnaklı bir "sistem tanımlayıcısı" takip edebilir. Örneğin, XHTML 1.1 için FPI "-//W3C//DTD XHTML 1.1//EN" şeklindedir ve XHTML 1.1 için ihtiyaca bağlı olarak 3 olası sistem tanımlayıcısı mevcuttur. Bunlardan biri " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd 27 Haziran 2007 tarihinde Wayback Machine sitesinde arşivlendi. " URI referansıdır. Bunun yerine SYSTEM anahtar sözcüğü seçilirse, yalnızca bir sistem tanımlayıcı sağlanır. Bu, XML ayrıştırıcısının DTD'yi sisteme özel bir şekilde, bu durumda DTD'nin çift tırnak içine alınmış bir URI referansı aracılığıyla bulması gerektiği anlamına gelir. Köşeli parantezler ([]) ile çevrili son kısım, varlıkları eklemek/düzenlemek veya KAMU anahtar kelime davranışlarını eklemek/düzenlemek için kullanılabilen dahili bir alt küme olarak adlandırılır.[3] Dahili alt küme her zaman isteğe bağlıdır (ve hatta bazen basit SGML profillerinde, özellikle de tam bir SGML ayrıştırıcısı uygulamayan temel HTML ayrıştırıcılarında yasaklanmıştır).

XHTML belgelerinde, doctype bildirimi her zaman açıkça bir sistem tanımlayıcısı belirtmelidir. Öte yandan, HTML gibi SGML tabanlı belgelerde, uygun sistem tanımlayıcısı, verilen genel tanımlayıcıdan otomatik olarak çıkarılabilir. Bu ilişkilendirme, örneğin, FPI'yi bir sistem tanımlayıcısına çözümleyen bir katalog dosyası aracılığıyla gerçekleştirilebilir.[4]

Örnek değiştir

Bir World Wide Web sayfasının ilk satırı aşağıdaki gibi olabilir:

<!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">

XHTML için bu belge türü bildirimi, genel tanıtıcısı -//W3C//DTD XHTML 1.0 Transitional//EN ve sistem tanımlayıcısı http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd olan bir DTD'yi referans olarak içerir. http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd . Bir varlık çözümleyici, başvurulan harici varlığı bulmak için tanımlayıcılardan herhangi birini kullanabilir. Bu örnekte veya sonraki örnekte hiçbir dahili altküme belirtilmemiştir. Kök öğe html olarak bildirilir ve bu nedenle bu örnekte ve sonrakilerde de doctype bildiriminin bitiminden sonra açılacak ilk etikettir. HTML etiketi, doctype bildiriminin bir parçası değildir, ancak oryantasyon amacıyla örneklere dahil edilmiştir.

Yaygın DTD'ler değiştir

Bazı yaygın DTD'ler listelere konulmuştur. W3C, "çıplak" HTML5 DTD'yi, eski XHTML/HTML DTD'leri, MathML ve SVG gibi yaygın gömülü XML tabanlı biçimlerin DTD'lerini ve bunları birleştiren "bileşik" belgeleri içeren, web'de yaygın olarak kullanılan DTD'lerin bir listesini oluşturmuştur.[5] Hem W3C HTML5 hem de karşılık gelen WHATWG sürümü, tarayıcıların yalnızca belirli FPI'lerin XHTML DTD'lerini kabul etmesini ve harici DTD dosyalarını getirmek yerine dahili mantığı kullanmayı tercih etmesini önerir. Ayrıca, yalnızca HTML varlık adlarının bir listesi olan XHTML için bir "dahili DTD" belirtir.[6] : §13.2 

HTML 4.01 DTD'ler değiştir

Strict DTD, bunun yerine CSS kullanılması gerektiği argümanıyla sunumsal işaretlemeye izin vermez. Strict DTD şu şekilde görünür:

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

Geçiş DTD'si, kullanımdan kaldırılmış bazı eski PUBLIC ve özniteliklere izin verir:

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

Frame (HTML ögesi) kullanılıyorsa, bunun yerine şunun gibi Frameset DTD kullanılmalıdır:

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

XHTML 1.0 DTD'ler değiştir

XHTML'nin DTD'leri de Strict, Transitional ve Frameset'tir.

XHTML Katı DTD. Kullanımdan kaldırılan etiketler desteklenmez ve kod, XML Spesifikasyonuna göre doğru yazılmalıdır.

 <?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 Transitional DTD, XHTML Strict DTD'ye benzer, ancak kullanımdan kaldırılan etiketlere izin verilir.

 <?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">

XHTML Çerçeve Kümesi DTD, Çerçeve Kümesini destekleyen tek XHTML DTD'dir. DTD aşağıdadır.

 <?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 değiştir

XHTML 1.1, XHTML'nin en güncel nihai revizyonudur ve XHTML Modülerleştirme desteği sunar. XHTML 1.1, XHTML 1.0 Strict katılığına sahiptir.

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

XHTML Temel DTD'leri değiştir

XHTML Temel 1.0

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

XHTML Basic 1.1

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

HTML5 DTD'siz DOCTYPE değiştir

HTML5, bir URL veya FPI biçiminde bir DTD'ye atıfta bulunmaması nedeniyle çok kısa olan bir DOCTYPE bildirimi kullanır. Tüm içerdiği, belgenin kök öğesinin etiket adıdır, HTML .[7] Spesifikasyon taslağının sözleriyle:

<!DOCTYPE html> 29 Kasım 2012 tarihinde Wayback Machine sitesinde arşivlendi., case-insensitively.

Bir URI veya FPI dizesinin olmaması dışında (FPI dizesi, doğrulayıcılar tarafından büyük/küçük harfe duyarlı olarak ele alınır), bu biçim (büyük/küçük harfe duyarlı olmayan ! DOCTYPE HTML ), SGML tabanlı HTML 4.01 DOCTYPE sözdiziminde bulunanla aynıdır. Hem HTML4'te hem de HTML5'te, hem küçük harf hem de küçük büyük harf karışımları da geçerli kabul edilse bile, resmi sözdizimi büyük harflerle tanımlanır.

XHTML5'te DOCTYPE, " <!DOCTYPE html> <!DOCTYPE html> ". Bunun nedeni, XHTML sözdiziminde, HTML5 DOCTYPE içinde başvurulan kök öğe de dahil olmak üzere tüm HTML öğesi adlarının küçük harf olması gerekmesidir.

DOCTYPE, XHTML5'te isteğe bağlıdır ve basitçe atlanabilir.[8] Ancak işaretleme hem XML hem de HTML olarak işlenecekse DOCTYPE kullanılmalıdır.[9]

Ayrıca bakınız değiştir

Kaynakça değiştir

  1. ^ HTML2 25 Mart 2023 tarihinde Wayback Machine sitesinde arşivlendi. HTML3 25 Aralık 2021 tarihinde Wayback Machine sitesinde arşivlendi. HTML4 7 Mayıs 2023 tarihinde Wayback Machine sitesinde arşivlendi.
  2. ^ "The HTML syntax ― HTML5". 1 Eylül 2008 tarihinde kaynağından arşivlendi. Erişim tarihi: 5 Haziran 2011. 
  3. ^ "DOCTYPE Declaration". msdn.microsoft.com. 14 Eylül 2008 tarihinde kaynağından arşivlendi. 
  4. ^ "The DOCTYPE Declaration". 14 Ağustos 2011 tarihinde kaynağından arşivlendi. Erişim tarihi: 9 Eylül 2011. 
  5. ^ "W3C QA - Recommended list of Doctype declarations you can use in your Web document". www.w3.org (İngilizce). 18 Kasım 2002 tarihinde kaynağından arşivlendi. Erişim tarihi: 22 Mart 2019. 
  6. ^ "HTML Standard". html.spec.whatwg.org. 15 Aralık 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 22 Mart 2019. 
  7. ^ "The HTML syntax ― HTML5". Web Hypertext Application Technology Working Group. 1 Eylül 2008 tarihinde kaynağından arşivlendi. Erişim tarihi: 5 Haziran 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". 
  8. ^ "The XHTML syntax ― HTML5". Web Hypertext Application Technology Working Group. 18 Haziran 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Eylül 2009. 
  9. ^ "Polyglot Markup: HTML-Compatible XHTML Documents". World Wide Web Consortium. 29 Haziran 2010 tarihinde kaynağından arşivlendi. Erişim tarihi: 17 Ocak 2012. 

Dış bağlantılar değiştir