Jump to content

Декларация типа документа

(Перенаправлено из Объявления типа документа )

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

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

Синтаксис

[ редактировать ]

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

<!DOCTYPE root-element PUBLIC "/quotedFPI/" "/quotedURI/" [ 
<!-- internal subset declarations -->
]>

или

<!DOCTYPE root-element SYSTEM "/quotedURI/" [ 
<!-- internal subset declarations -->
]>

Название типа документа

[ редактировать ]

Открытие <!DOCTYPE за синтаксисом следует разделительный синтаксис [3] : 403–404  (например, пробелы, [3] : 297–298, 372  или (кроме XML) комментарии, открывающиеся и закрывающиеся двойным дефисом ASCII ), [3] : 372, 391  за которым следует имя типа документа [3] : 403–404  (т.е. имя корневого элемента, который DTD применяет к деревьям, происходящим от него). В XML корневой элемент, представляющий документ, является первым элементом документа. Например, в XHTML корневым элементом является <html>, он является первым открытым элементом (после объявления типа документа) и последним закрытым.

Поскольку синтаксис внешнего идентификатора и внутреннего подмножества не является обязательным, [3] : 403–404  имя типа документа — единственная информация, которую обязательно указывать в объявлении DOCTYPE.

Внешний идентификатор

[ редактировать ]

Объявление DOCTYPE может дополнительно содержать внешний идентификатор , следующий за именем корневого элемента (и разделяющий синтаксис, например пробелы), но перед любым внутренним подмножеством. [3] : 403–404  Это начинается с ключевого слова SYSTEM или ключевое слово PUBLIC, [3] : 379  указание того, указано ли DTD с использованием общедоступного идентификатора, идентифицирующего его как общедоступный текст , т. е. текст, используемый несколькими компьютерными системами (независимо от того, является ли это доступным общедоступным текстом, доступным для широкой публики, или недоступным общедоступным текстом, совместно используемым только внутри организации ). [3] : 180–182  Если используется ключевое слово PUBLIC, за ним следует общедоступный идентификатор, заключенный в двойные или одинарные ASCII кавычки . Публичный идентификатор не указывает на место хранения, а скорее представляет собой уникальную фиксированную строку, предназначенную для поиска в таблице (например, в каталоге SGML ); [3] : 180  однако в некоторых (но не во всех) профилях SGML общедоступный идентификатор должен быть создан с использованием определенного синтаксиса, называемого формальным общедоступным идентификатором (FPI), который определяет владельца, а также то, доступен ли он широкой публике. [3] : 182–183 

Публичный идентификатор (если присутствует) или SYSTEM ключевое слово (в противном случае) может (а в XML должно) [4] за ним следует «системный идентификатор», который также заключен в кавычки. Хотя интерпретация системных идентификаторов в целом SGML полностью зависит от системы (и может быть именем файла, ключом базы данных, смещением или чем-то еще), [3] : 378  XML требует, чтобы они были URI . [5] Например, FPI для XHTML 1.1 равен "-//W3C//DTD XHTML 1.1//EN" и для XHTML 1.1 доступны 3 возможных системных идентификатора в зависимости от потребностей. Одним из них является на URL-адрес. ссылка "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd". Это означает, что анализатор XML должен найти DTD специфическим для системы способом, в данном случае с помощью URL-ссылки на DTD, заключенной в двойные кавычки.

В документах XHTML объявление типа документа всегда должно явно указывать системный идентификатор. С другой стороны, в документах на основе SGML, таких как HTML, соответствующий системный идентификатор может быть автоматически выведен из данного общедоступного идентификатора. Эта ассоциация может, например, выполняться посредством файла каталога, преобразующего FPI в системный идентификатор. [6] SYSTEM Ключевое слово (за исключением XML) также может использоваться без последующего системного идентификатора, указывающего на то, что DTD существует, но его следует вывести из имени типа документа. [3] : 378 

Внутреннее подмножество

[ редактировать ]

Последняя, ​​необязательная часть объявления DOCTYPE заключена в квадратные скобки ( []) и называется внутренним подмножеством . Его можно использовать для добавления/редактирования сущностей или добавления/редактирования поведения ключевых слов PUBLIC. [7] Возможно, но редко, включить весь DTD в документ во внутреннее подмножество, а не ссылаться на него из внешнего файла. [3] : 402  И наоборот, внутреннее подмножество иногда запрещено в простых профилях SGML, особенно для базовых анализаторов HTML, которые не реализуют полный анализатор SGML.

Если в объявление DOCTYPE включены как внутреннее подмножество DTD, так и внешний идентификатор, внутреннее подмножество обрабатывается первым, а внешнее подмножество DTD обрабатывается так, как если бы оно было включено в конец внутреннего подмножества. Поскольку более ранние определения имеют приоритет над более поздними определениями в DTD, это позволяет внутреннему подмножеству переопределять определения во внешнем подмножестве. [3] : 402–403 

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

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

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

Строгий 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>

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

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

XHTML DTD также являются строгими, переходными и наборами фреймов.

XHTML строгое 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 ОТД

[ редактировать ]

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">

Базовые DTD XHTML

[ редактировать ]

XHTML базовый 1.0

<!DOCTYPE html PUBLIC
  "-//W3C//DTD XHTML Basic 1.0//EN"
  "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">

XHTML базовый 1.1

<!DOCTYPE html PUBLIC
  "-//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. [10] По словам самого проекта спецификации:

<!DOCTYPE html>, без учета регистра.

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

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

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

См. также

[ редактировать ]
  1. ^ HTML2 HTML3 HTML4
  2. ^ «Синтаксис HTML ― HTML5» . Проверено 5 июня 2011 г.
  3. ^ Jump up to: а б с д и ж г час я дж к л м н Гольдфарб, Чарльз Ф. (1990). Справочник по SGML . Оксфорд : Кларендон Пресс . ISBN  0-19-853737-9 .
  4. ^ Уолш, Норман (6 августа 2001 г.). «XML-каталоги» . Организация по развитию стандартов структурированной информации (OASIS).
  5. ^ Кларк, Джеймс (15 декабря 1997 г.). «Сравнение SGML и XML» . W3C . ПРИМЕЧАНИЕ-sgml-xml-971215.
  6. ^ «Декларация DOCTYPE» . Архивировано из оригинала 14 августа 2011 г. Проверено 9 сентября 2011 г.
  7. ^ «Доктайп-декларация» . msdn.microsoft.com .
  8. ^ «W3C QA — Рекомендуемый список объявлений Doctype, которые вы можете использовать в своем веб-документе» . www.w3.org . Проверено 22 марта 2019 г.
  9. ^ «Стандарт HTML» . html.spec.whatwg.org . Проверено 22 марта 2019 г.
  10. ^ «Синтаксис HTML ― HTML5» . Рабочая группа по технологиям веб-гипертекстовых приложений . Проверено 5 июня 2011 г. 3. Строка, соответствующая строке «DOCTYPE» в формате ASCII без учета регистра. 5. Строка, соответствующая строке «HTML» в формате ASCII без учета регистра.
  11. ^ «Синтаксис XHTML — HTML5» . Рабочая группа по технологиям веб-гипертекстовых приложений . Архивировано из оригинала 18 июня 2012 г. Проверено 1 сентября 2009 г.
  12. ^ «Полиглотская разметка: HTML-совместимые документы XHTML» . Консорциум Всемирной паутины . Проверено 17 января 2012 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 6f99d66c9cab3f209498bb5056f06bcf__1711287900
URL1:https://arc.ask3.ru/arc/aa/6f/cf/6f99d66c9cab3f209498bb5056f06bcf.html
Заголовок, (Title) документа по адресу, URL1:
Document type declaration - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)