标题：!DOCTYPE
简介
！文档类型（英文简称!DOCTYPE，英文全称DOCumentTYPE），一个!DOCTYPE是一种标准通用标记语言的文档类型声明，它的目的是要告诉标准通用标记语言解析器，它应该使用什么样的文档类型定义（DTD）来解析文档。它出现如该文件的第一行，并具有如下形式：
<!DOCTYPE html
PUBLIC "引用的字符串">
“引用的字符串”是被调用壹个公共标识符，它指的是所需的文档类型定义（DTD）由一个“知名”的名字，通常是由一个相关的标准。[1]
可用性：
指定正式公开标识符(FPI)是可公开访问的对象还是系统资源。
国际互联网工程任务组(IETF)和万维网联盟(W3C)并非注册的ISO组织。
语法
该标签有叁种写法：
壹、私有的外联文档类型定义（使用系统标识符）：
<!DOCTYPE 根元素
SYSTEM "文档类型定义位置"
[< !--内部子集声明，可选项目-->]
>
实例：（根元素是超文本网页）
<!DOCTYPE HTML
SYSTEM "文档类型定义/严格.定义"
>
_____________________________
贰、公共的外联文档类型定义（使用公共标识符）：
<!DOCTYPE 根元素
PUBLIC "注册//组织//类型 标签//定义 语言"
"文档类型定义位置"
[< !--内部子集声明，可选项目-->][2]
>
实例：（根元素是超文本网页）
<!DOCTYPE HTML
PUBLIC "+//我公司//DTD超文本5//zh"
"网络页面文档类型定义/严格.定义"
>
_____________________________
叁、内联的文档类型定义：
<!DOCTYPE　根元素
[
文档类型定义:
元素/属性/实体/符号/
处理指令/批注/引用
]
>
实例：（根元素是“行标签”）
<!DOCTYPE 行标签
[
<!ELEMENT 多行 (排*)
<!ELEMENT 排 O - (#PCDATA)>
<!ENTITY 行标签 "</排>">
<!SHORTREF 壹行 "&#引;&#短;" 行标签 -- ！短参考 -->
<!USEMAP 壹行 排>
]
>公共标识符格式：
前缀//所有者//类型 标签描述//语言//显示版本
前缀：
前缀
定义
ISO
是"国际标准化组织"的标准
+
组织名称已注册
-
组织名称未注册
注：注册指组织是否由国际标准化组织注册。（各人也可以手动将文档类型定义注册自服务器）
组织（所有者）：你的公司/单位/组织的名称。
类型：表明该公共标识符所关联的文档的实际类型（比如超文本标记语言）。
标签描述：所关联的文档的简要说明。该描述可以是任何字符串，当然其中不应包含作为分隔符的“//”。（比如超文本5）。
语言：说明文档基于何种语言书写，通常使用国际标准化组织标准的两字母语言代码。
显示版本：该项目使用较少，用于说明文档是针对特定显示设备或者特定系统的。系统标识符系统标识符必须是一段统一资源标识符，指定文件（文档类型定义）位置。
隐式文档类型声明
用来暗示适用的文档类型定义，当解析时而不遵守文档类型声明，那么没有必要暗示一个适用的文档类型定义：
<!DOCTYPE #IMPLIED SYSTEM>
<!DOCTYPE #IMPLIED>
当两个文档类型的名称和外部子集的实体都隐含在一个文档类型声明里头，SYSTEM可能能够找到一个合适的外部子集。[3]
遗漏元素和属性声明
<!DOCTYPE 甩掉范例 #IMPLIED
[
<!--
“#暗示”是指使用该标签的文档元素可以有任何有效的元素类型名称。
该内部子集仅包含“！记号”和“！实体”声明。
“记号”声明需要能够使用的架构和实体声明，当然要启用使用实体（不能是标准通用标记语言的一个可选功能）。
可以指出在SYSTEM或标准通用标记语言声明里头一个新的可选功能，例如“暗示文档类型”或者其他某物。
-->
][4]
>
常用文档类型声明集合
互联网工程任务组超文本标记语言貮点零：[5]
<!DOCTYPE HTML
PUBLIC "-//IETF//DTD HTML//ZH">万维网联盟大多数万维网浏览器实际上并没有使用标准通用标记语言解析器，其中许多基于对文档的!DOCTYPE声明，显示有所不同的文件或缺乏。
类型 指定公开文本类，即所引用的对象类型。
标签 指定公开文本描述，即对所引用的公开文本的唯一描述性名称。后面可附带版本号。 HTML 默认。HTML。
定义 指定文档类型定义。框架集（英语：Frameset）文档。
严格（英语：Strict） 排除所有 W3C 专家希望逐步淘汰的代表性属性和元素，因为样式表已经很完善了。
过渡（英语：Transitional） 包含除框架集（frameSet） 元素的全部内容。
语言 指定公开文本语言，即用于创建所引用对象的自然语言编码系统。该语言定义已编写为 ISO 639 语言代码(大写两个字母)。
URL（资源定位器）指定所引用对象的位置。
注释
此声明必须出现在文档的起始处，出现在 html 标签之前。
功能简介：
你可使用此声明在 Internet Explorer 6 及以后版本中切换为严格的标准兼容模式。若想打开此开关，请在你的文档顶部包含 !DOCTYPE 声明，在声明中指定合法的标签，在某些情况下，还需要指定定义和/或统一资源定位。下面的表格列出了标准兼容模式的开关情况。
DOCTYPE 出现统一资源定位 未出现 统一资源定位 未出现
DOCTYPE 关 关
HTML (无版本) 关 关
HTML 2.0 关 关
HTML 3.0 关 关
HTML 4.0 开 开
HTML 4.0 Frameset 开 关
HTML 4.0 Transitional 开 关
HTML 4.0 Strict 开 开
XHTML 开 开
XML 开 开
无法识别的 DOCTYPE 开 开
注意 在标准兼容模式下，不能保证与其它版本的 Internet Explorer 保持兼容。当打开标准兼容模式时，文档的渲染行为也许与将来版本的 Internet Explorer 不同。若内容本来就是固定的(如刻录在激光唱片上)，则不应该使用此模式。
示例：
下面的例子演示了如何使用 !DOCTYPE 声明指定文档遵从的文档类型定义，并将 Internet Explorer 6 及更高版本切换到标准兼容模式。
下面例子中的声明都指定了遵从超文本4.0 文档类型定义。第二种声明指定了“Strict”。第一种声明没有指定。这两种声明都将会把 Internet Explorer 6 及以后版本切换到标准兼容模式。
<!DOCTYPE HTML
PUBLIC "-//W3C//DTD HTML 4.0//zh">
<!DOCTYPE HTML
PUBLIC "-//W3C//DTD HTML 4.0 Strict//zh">
下面例子中的声明都指定了遵从“Transitional”HTML 4.0 文档类型定义。第二种声明指定了文档类型定义的统一资源定位。第一种声明没有指定。第二种声明将会把 Internet Explorer 6 及以后版本切换到标准兼容模式。第一种声明不会。
<!DOCTYPE HTML
PUBLIC "-//W3C//DTD HTML 4.0 Transitional//zh">
<!DOCTYPE HTML
PUBLIC "-//W3C//DTD HTML 4.0 Transitional//zh"
"http://www . w3 . org/TR/html4/loose.dtd">
标准信息
此对象定义在 HTML 3.2 中。
下面例子中的声明都指定了遵从“MathML”数学标记语言2.0 文档类型定义。第二种将设置MATHML命名空间的前缀到MML。第三种附加了检查文档类型定义（DTD）[6]
<!DOCTYPE math
PUBLIC "-//W3C//DTD MathML 2.0//ZH"
"http://www.w3 .org/Math/DTD/mathml2/mathml2.dtd">
<!DOCTYPE mml:math
PUBLIC "-//W3C//DTD MathML 2.0//ZH"
"http://www.w3 .org/Math/DTD/mathml2/mathml2.dtd"
[
<!ENTITY % MATHML.prefixed "INCLUDE">
<!ENTITY % MATHML.prefix "mml">
]
>
<!DOCTYPE math
PUBLIC "-//W3C//DTD MathML 2.0//ZH"
"http://www.w3 .org/Math/DTD/mathml2/mathml2.dtd"
[
<!ENTITY % MathMLstrict "INCLUDE" --设置参数实体MathMLStrict。-->
]
>全国性影像传输格式<!DOCTYPE NITF
PUBLIC "-//IPTC-NAA//DTD NITF 2.0//zh" >[7]翻译存储交换公共标识符称为："-//LISA OSCAR:1998//DTD for Translation Memory eXchange//ZH"
<!DOCTYPE tmx
PUBLIC "-//LISA OSCAR:1998//DTD for Translation Memory eXchange//ZH"
"[8]"
>电子日历<!DOCTYPE iCalendar
PUBLIC "-//IETF//DTD iCalendar//ZH"
[9]>无线标记语言<!DOCTYPE wml
PUBLIC "-//WAPFORUM//DTD WML 1.1//ZH"
[10]
>