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 **Betik hatası: Böyle bir "webarşiv" modülü yok.** " 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. : §13.2

### 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:

> `​<!DOCTYPE html>​` **Betik hatası: Böyle bir "webarşiv" modülü yok.**, 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. Ancak işaretleme hem XML hem de HTML olarak işlenecekse DOCTYPE kullanılmalıdır.

## Ayrıca bakınız

* Belge türü tanımı bir örnek içerir
* RDFa
* XML şeması

## Kaynakça

<templatestyles src="Kaynakça/styles.css" />

1. ↑ HTML2 **Betik hatası: Böyle bir "webarşiv" modülü yok.** HTML3 **Betik hatası: Böyle bir "webarşiv" modülü yok.** HTML4 **Betik hatası: Böyle bir "webarşiv" modülü yok.**
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

* HTML Belge Türüne genel bakış **Betik hatası: Böyle bir "webarşiv" modülü yok.**
* Web belgenizde kullanmanız için önerilen DTD'ler **Betik hatası: Böyle bir "webarşiv" modülü yok.** - bilgilendirici (normatif olmayan) bir W3C Kalite Güvencesi yayını
* DOCTYPE ızgarası **Betik hatası: Böyle bir "webarşiv" modülü yok.** - başka bir genel bakış tablosu [Son değiştirilme tarihi 27 Kasım 2006]
* Tuhaflıklar modu ve geçiş modu **Betik hatası: Böyle bir "webarşiv" modülü yok.**
* Kutu modeli düzenlemesi **Betik hatası: Böyle bir "webarşiv" modülü yok.**