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). 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.
DTD'ler
Sözdizimi
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 " 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. 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.
Örnek
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
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. 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. :&hairsp;13.2&hairsp;
HTML 4.01 DTD'ler
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
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
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
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
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. Spesifikasyon taslağının sözleriyle: , 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, " ". 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. Ancak işaretleme hem XML hem de HTML olarak işlenecekse DOCTYPE kullanılmalıdır.