Объявление типа документа - Document type declaration
А объявление типа документа, или же DOCTYPE, это инструкция, которая связывает конкретный XML или же SGML документ (например, страница в Интернете ) с определение типа документа (DTD) (например, формальное определение конкретной версии HTML 2.0 - 4.0 ).[1] в сериализованный форме документа, он проявляется как короткая строка разметка который соответствует определенному синтаксису.
В HTML компоновка двигателей в современном веб-браузеры выполнять "прослушивание" или "переключение" DOCTYPE, при этом DOCTYPE в документе служит текст / html
определяет режим макета, например "режим причуд "или" стандартный режим ". текст / html
сериализация HTML5, который не основан на SGML, использует DOCTYPE только для выбора режима. Поскольку веб-браузеры реализованы с помощью специальных анализаторов HTML, а не универсальных анализаторов на основе DTD, они не используют DTD и никогда не будут обращаться к ним, даже если указан URL-адрес. DOCTYPE сохраняется в HTML5 как заголовок «в основном бесполезный, но необходимый» только для запуска «стандартного режима» в обычных браузерах.[2]
DTD
Синтаксис
Общий синтаксис объявления типа документа:
корневой элемент ОБЩЕСТВЕННЫЙ «ИПИ» ["URI"] [ <!-- internal subset declarations -->]>
или же
корневой элемент СИСТЕМА "URI" [ <!-- internal subset declarations -->]>
В XML корневой элемент, представляющий документ, является первым элементом в документе. Например, в XHTML корневым элементом является , который является первым открытым элементом (после объявления 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, где публичный идентификатор может быть связан с системным идентификатором. Это объединение может быть выполнено, например. g., с помощью файла каталога, разрешающего FPI в системный идентификатор.[4]
Пример
Первая строка страницы в Интернете может выглядеть следующим образом:
"- // W3C // DTD XHTML 1.0 Transitional // EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html язык="ар" реж="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:
"http://www.w3.org/TR/html4/strict.dtd"> <html>
Переходный DTD допускает использование некоторых устаревших атрибутов PUBLIC и устаревших:
"http://www.w3.org/TR/html4/loose.dtd"> <html>
Если кадры используются DTD Frameset, например:
"http://www.w3.org/TR/html4/frameset.dtd"> <html>
XHTML 1.0 DTD
XHTML DTD также бывают Strict, Transitional и Frameset.
XHTML Strict DTD. Нет устарел поддерживаются теги, и код должен быть написан правильно в соответствии со спецификацией XML.
<?xml version="1.0" encoding="UTF-8"?> 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" язык="en">
XHTML Transitional DTD похож на XHTML Strict DTD, но разрешены устаревшие теги.
<?xml version="1.0" encoding="UTF-8"?> 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" язык="en">
XHTML Frameset DTD - единственный XHTML DTD, который поддерживает Frameset. DTD находится ниже.
<?xml version="1.0" encoding="UTF-8"?> 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" язык="en">
XHTML 1.1 DTD
XHTML 1.1 - это последняя доработанная версия XHTML, в которой реализована поддержка Модуляризация XHTML. XHTML 1.1 имеет строгость XHTML 1.0 Strict.
"- // W3C // DTD XHTML 1.1 // EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
XHTML Basic DTD
XHTML Basic 1.0
"- // W3C // DTD XHTML Basic 1.0 // EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
XHTML Basic 1.1
"- // W3C // DTD XHTML Basic 1.1 // EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
HTML5 DTD-без DOCTYPE
HTML5 использует DOCTYPE
объявление, которое очень короткое из-за отсутствия ссылок на DTD в форме URL или FPI. Все, что он содержит, - это имя тега корневого элемента документа, HTML
.[7] По словам самого проекта спецификации:
Другими словами,
<!DOCTYPE html>
, без учета регистра.
За исключением отсутствия URI или строки FPI (строка FPI обрабатывается валидаторами с учетом регистра), этот формат (совпадение строки без учета регистра ! DOCTYPE HTML
) совпадает с синтаксисом HTML 4.01 на основе SGML. DOCTYPE
. Как в HTML4, так и в HTML5 формальный синтаксис определяется буквами верхнего регистра, даже если и нижний регистр, и смесь нижнего регистра верхнего регистра также считаются допустимыми.
В XHTML5 то DOCTYPE
должно быть совпадением строки с учетом регистра "<!DOCTYPE html>
". Это связано с тем, что в синтаксисе XHTML все имена элементов HTML должны быть в нижнем регистре, включая корневой элемент, на который имеется ссылка внутри HTML5. DOCTYPE
.
В DOCTYPE
является необязательным в XHTML5 и может быть просто опущено.[8] Однако если разметка должна быть обрабатывается как XML, так и как HTML, следует использовать DOCTYPE.[9]
Смотрите также
Рекомендации
- ^ HTML2 HTML3 HTML4
- ^ «Синтаксис HTML - HTML5». Получено 2011-06-05.
- ^ "Декларация DOCTYPE". msdn.microsoft.com.
- ^ «Архивная копия». Архивировано из оригинал на 2011-08-14. Получено 2011-09-09.CS1 maint: заархивированная копия как заголовок (связь)
- ^ «W3C QA - Рекомендуемый список объявлений Doctype, которые вы можете использовать в своем веб-документе». www.w3.org. Получено 22 марта 2019.
- ^ «Стандарт HTML». html.spec.whatwg.org. Получено 22 марта 2019.
- ^ «Синтаксис HTML - HTML5». Рабочая группа по технологиям веб-гипертекстовых приложений. Получено 2011-06-05.
3. Строка, являющаяся нечувствительным к регистру ASCII соответствием строке «DOCTYPE». 5. Строка, являющаяся нечувствительным к регистру ASCII соответствием строке «HTML».
- ^ «Синтаксис XHTML - HTML5». Рабочая группа по технологиям веб-гипертекстовых приложений. Архивировано из оригинал на 2012-06-07. Получено 2009-09-01.
- ^ «Разметка Polyglot: HTML-совместимые документы XHTML». Консорциум World Wide Web. Получено 2012-01-17.
внешняя ссылка
- Обзор HTML Doctype
- Рекомендуемые DTD для использования в вашем веб-документе - информативная (не нормативная) публикация W3C по обеспечению качества
- Сетка DOCTYPE - еще одна обзорная таблица [Последнее изменение 27 ноября 2006 г.]
- Режим причуд и переходный режим
- Настройка коробчатой модели