Объявление типа документа - 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]

Смотрите также

Рекомендации

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

внешняя ссылка