Doctype语法的说明

时间:2010-06-22 03:04:04

标签: doctype

有很多线程解释了Doctype的选择,但我找不到任何解释实际语法的内容。举个例子:

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

特别是:

  • PUBLIC可以替换为其他值吗?它是什么意思?
  • 为什么网址需要用引号括起来?
  • 什么是“ - ”?
  • 为什么第一个字符串被两个斜杠分隔而不是一个?
  • EN是否代表英语?如果是这样,为什么网站也使用lang=en

4 个答案:

答案 0 :(得分:2)

虽然它没有回答你所有的问题,但我认为这是一个好的开始。维基百科是你的朋友。 ;)

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

P.S。对于遗漏的双引号问题,我认为引号是为了正确解释空格的字符串

答案 1 :(得分:1)

好问题。我从来没有真正想过这件事。

我发现http://www.blooberry.com/indexdot/html/tagpages/d/doctype.htm详细解释了每个部分。

答案 2 :(得分:1)

  

为什么第一个字符串用两个斜杠分隔而不是1?

SGML syntax"Owner//Keyword Description//Language"

但实际上,这是无关紧要的,因为浏览器实际上并没有使用SGML解析器来实现HTML。 DOCTYPE只是一个在怪癖模式和标准模式之间做出决定的开关。

答案 3 :(得分:0)

Doctypes不仅限于HTML页面。 Doctypes用于引用文档类型定义(DTD),它定义了对XML文档结构的约束。

可能有不同类型,OP的示例遵循“公共外部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