Объяснение синтаксиса Doctype - PullRequest
6 голосов
/ 22 июня 2010

Существует множество потоков, объясняющих, какой Doctype выбрать, но я не могу найти объяснения действительного синтаксиса. Возьмем для примера:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">

В частности:

  • Можно ли заменить PUBLIC другими значениями и что это значит?
  • Почему URL должен быть заключен в кавычки?
  • Что такое "-"?
  • Почему первая строка отделяется двумя косыми чертами, а не 1?
  • EN означает английский? Если да, то почему веб-сайты также используют lang=en?

Ответы [ 4 ]

2 голосов
/ 22 июня 2010

Пока он не отвечает на все ваши вопросы, но я думаю, что это хорошее начало. Википедия твой друг. ;)

http://en.wikipedia.org/wiki/Document_Type_Declaration

p.s. Что касается вопроса о двойных кавычках, я думаю, что кавычки существуют для того, чтобы правильно интерпретировать строки с пробелами

1 голос
/ 22 июня 2010

Почему первая строка отделяется двумя косыми чертами, а не 1?

Синтаксис SGML равен "Owner//Keyword Description//Language".

Но на практике это не имеет значения, поскольку браузеры фактически не используют парсеры SGML для HTML. DOCTYPE - это просто переключение между режимом причуд и режимом стандартов.

1 голос
/ 22 июня 2010

Хороший вопрос.Я никогда не думал об этом дважды.

Я нашел http://www.blooberry.com/indexdot/html/tagpages/d/doctype.htm, который подробно объясняет каждый раздел.

0 голосов
/ 20 декабря 2016

Типы документов не ограничиваются HTML-страницами.Типы документов используются для ссылки на определения типов документов (DTD), которые определяют ограничение на структуру документа XML.

Возможны различные типы, пример OP следует формату "public external DTD":

<!DOCTYPE root_element PUBLIC "DTD_name" "DTD_location">

где:

  • root_element: корень xml
  • DTD_name: идентификатор DTD, чтобы процессоры могли использовать локальныйего версия вместо необходимости загружать ее
  • DTD_location: местоположение DTD в случае, если оно не доступно локально.

DTD_name также имеет определенныйформат:

"prefix//owner_of_the_DTD//description_of_the_DTD//ISO 639_language_identifier"

, где prefix является одним из следующих:

  • ISO: DTD является стандартом ISO.Все стандарты ISO одобрены.
  • +: DTD является утвержденным стандартом не-ISO.
  • -: DTD является неподтвержденным стандартом не-ISO.

Источник: http://xmlwriter.net/xml_guide/doctype_declaration.shtml

...