Из Википедии, бесплатной энциклопедии
  (Перенаправлено из объявления типа документа )
Перейти к навигации Перейти к поиску

Объявление типа документа или DOCTYPE - это инструкция, которая связывает конкретный документ XML или SGML (например, веб-страницу ) с определением типа документа (DTD) (например, формальное определение конкретной версии HTML 2.0 - 4.0. ). [1] В сериализованной форме документа он проявляется как короткая строка разметки, которая соответствует определенному синтаксису.

Механизмы разметки HTML в современных веб-браузерах выполняют «сниффинг» или «переключение» DOCTYPE, при этом DOCTYPE в документе, который используется в качестве определения режима макета, например, « режим причуд » или «стандартный режим». При сериализации HTML5 , который не основан на SGML, DOCTYPE используется только для выбора режима. Поскольку веб-браузеры реализуются со специальными анализаторами HTML, а не с анализаторами на основе DTD общего назначения, они не используют DTD и никогда не будут обращаться к ним, даже если указан URL-адрес. DOCTYPE сохраняется в HTML5 как «в основном бесполезный, но обязательный» заголовок только для запуска «стандартного режима» в обычных браузерах. [2]text/htmltext/html

DTD [ править ]

Синтаксис [ править ]

Общий синтаксис объявления типа документа:

<! DOCTYPE  корневой элемент  PUBLIC  "FPI"  [ "URI" ]  [  <! - объявления внутреннего подмножества -> ]>

или же

<! DOCTYPE  корневой элемент  SYSTEM  "URI"  [  <! - объявления внутреннего подмножества -> ]>

В XML корневой элемент, представляющий документ, является первым элементом в документе. Например, в XHTML корневым элементом является <html>, который является первым открытым элементом (после объявления doctype) и последним закрытым. Ключевые слова SYSTEM и PUBLIC подсказывают, какой это тип определения типа документа (DTD) (тот, который находится в частной системе, или тот, который открыт для всех). Если выбрано ключевое слово PUBLIC, то за этим ключевым словом следует ограниченная форма «общедоступного идентификатора», называемая формальным общедоступным идентификатором.(FPI) заключены в двойные кавычки. После этого обязательно указывается «идентификатор системы», заключенный в двойные кавычки. Например, FPI для XHTML 1.1: «- // W3C // DTD XHTML 1.1 // EN», и для XHTML 1.1 доступны 3 возможных системных идентификатора в зависимости от потребностей, один из них - ссылка на URI « http: //www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ". Если вместо этого выбрано ключевое слово SYSTEM, должен быть указан только системный идентификатор. Это означает, что синтаксический анализатор XML должен найти DTD определенным для системы способом, в данном случае с помощью ссылки URI на DTD, заключенной в двойные кавычки. Последняя часть, заключенная в квадратные скобки ([]), называется внутренним подмножеством, которое можно использовать для добавления / редактирования сущностей.или добавить / изменить поведение ключевых слов PUBLIC. [3] Внутреннее подмножество всегда необязательно (а иногда даже запрещено в простых профилях SGML, особенно для базовых анализаторов HTML, которые не реализуют полный синтаксический анализатор SGML).

С другой стороны, объявления типов документов немного отличаются в документах на основе SGML, таких как HTML, где общедоступный идентификатор может быть связан с идентификатором системы. Это сопоставление может быть выполнено, например, с помощью файла каталога, преобразовывающего FPI в системный идентификатор. [4]

Пример [ править ]

Первая строка страницы в Интернете может выглядеть следующим образом:

<! 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 включает посредством ссылки DTD, общедоступный и системный идентификатор которого http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd. Сопоставитель сущностей может использовать любой идентификатор для определения местоположения внешней сущности, на которую имеется ссылка. Никакое внутреннее подмножество не было указано ни в этом, ни в следующих примерах. htmlОбъявляется корневой элемент, и, следовательно, это первый тег, который открывается после конца объявления doctype в этом и следующих примерах. Тег HTML не является частью объявления doctype, но был включен в примеры в целях ориентации.

Общие DTD [ править ]

Некоторые общие DTD помещены в списки. W3C подготовил список DTD, обычно используемых в сети, который содержит «чистый» HTML5 DTD, старые XHTML / HTML DTD, DTD распространенных встроенных форматов на основе XML, таких как MathML и SVG, а также «составные» документы, которые объединяют эти форматы. [5] Как W3C HTML5, так и соответствующая ему версия WHATWG рекомендуют браузерам принимать только XHTML DTD определенных FPI и предпочитать использование внутренней логики извлечению внешних файлов DTD. Кроме того, он определяет «внутреннее DTD» для XHTML, которое представляет собой просто список имен объектов HTML. [6] ( §13.2 )

HTML 4.01 DTD [ править ]

Строгий DTD не допускает презентационную разметку с аргументом, что вместо этого следует использовать каскадные таблицы стилей. Вот как выглядит Strict DTD:

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

Переходное DTD допускает использование некоторых устаревших атрибутов PUBLIC и устаревших:

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

Если используются фреймы , вместо этого должно использоваться DTD Frameset, например:

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

XHTML 1.0 DTD [ править ]

DTD XHTML также могут быть Strict, Transitional и Frameset.

XHTML Strict DTD. Нет устаревшие теги поддерживаются и код должен быть написан правильно , в соответствии со спецификацией XML.

 <? 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, но разрешены устаревшие теги.

 <? 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 Frameset DTD - единственный XHTML DTD, который поддерживает Frameset. DTD находится ниже.

 <? 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, в которой реализована поддержка модуляризации XHTML . XHTML 1.1 имеет строгость XHTML 1.0 Strict.

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

XHTML Basic DTD [ править ]

XHTML Basic 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-less DOCTYPE [ править ]

HTML5 использует DOCTYPEочень короткое объявление из-за отсутствия ссылок на DTD в форме URL или FPI. Все, что он содержит, - это имя тега корневого элемента документа HTML. [7] По словам самого проекта спецификации:

Другими словами, <!DOCTYPE html>без учета регистра.

За исключением отсутствия URI или строки FPI (строка FPI обрабатывается валидаторами с учетом регистра), этот формат (совпадение строки без учета регистра !DOCTYPE HTML) совпадает с синтаксисом HTML на основе SGML. 4.01 DOCTYPE. Как в HTML4, так и в HTML5 формальный синтаксис определяется буквами верхнего регистра, даже если и нижний регистр, и смесь нижнего регистра верхнего регистра также считаются допустимыми.

В XHTML5DOCTYPE должен быть чувствителен к регистру матч строки « <!DOCTYPE html>». Это связано с тем, что в синтаксисе XHTML все имена элементов HTML должны быть в нижнем регистре, включая корневой элемент, на который имеется ссылка внутри HTML5 DOCTYPE.

DOCTYPEНе является обязательным в XHTML5 и может быть просто опущен. [8] Однако, если разметка должна обрабатываться и как XML, и как HTML , следует использовать DOCTYPE. [9]

См. Также [ править ]

  • Определение типа документа содержит пример
  • RDFa
  • Схема XML
  • Каскадные таблицы стилей

Ссылки [ править ]

  1. ^ HTML2 HTML3 HTML4
  2. ^ «Синтаксис HTML - HTML5» . Проверено 5 июня 2011 .
  3. ^ "Декларация DOCTYPE" . msdn.microsoft.com .
  4. ^ "Архивная копия" . Архивировано из оригинала на 2011-08-14 . Проверено 9 сентября 2011 .CS1 maint: заархивированная копия как заголовок ( ссылка )
  5. ^ «W3C QA - Рекомендуемый список объявлений Doctype, которые вы можете использовать в своем веб-документе» . www.w3.org . Проверено 22 марта 2019 .
  6. ^ "Стандарт HTML" . html.spec.whatwg.org . Проверено 22 марта 2019 .
  7. ^ «Синтаксис HTML - HTML5» . Рабочая группа по технологиям веб-гипертекстовых приложений . Проверено 5 июня 2011 . 3. Строка, являющаяся нечувствительным к регистру ASCII соответствием строке «DOCTYPE». 5. Строка, являющаяся нечувствительным к регистру ASCII соответствием строке «HTML».
  8. ^ «Синтаксис XHTML - HTML5» . Рабочая группа по технологиям веб-гипертекстовых приложений . Архивировано из оригинала на 2012-06-07 . Проверено 1 сентября 2009 .
  9. ^ «Разметка полиглота: HTML-совместимые документы XHTML» . Консорциум World Wide Web . Проверено 17 января 2012 .

Внешние ссылки [ править ]

  • Обзор HTML Doctype
  • Рекомендуемые DTD для использования в вашем веб-документе - информативная (не нормативная) публикация W3C по обеспечению качества
  • Сетка DOCTYPE - еще одна обзорная таблица [Последнее изменение 27 ноября 2006 г.]
  • Режим причуд и переходный режим
  • Доработка коробчатой ​​модели