DOCTYPE 声明
DOCTYPE 声明为文档提供一个空间,通过引用外部文件、通过直接声明或通过这两种方式来标识其根元素和文档类型定义 (DTD)。
DOCTYPE 声明可以包含下列内容:
文档或根元素的名称。
如果使用 DOCTYPE 声明,此内容是必选项。
可以用于验证文档结构的 DTD 系统标识符和公共标识符。
如果使用公共标识符,必须同时提供系统标识符。
DTD 声明的内部子集。
内部子集出现在方括号 ([ ]) 之间。
如果文档要在验证环境中进行处理,DOCTYPE 声明是必选项。 要生效,DOCTYPE 声明必须标识与文档的文档结构对应的 DTD。 非验证分析器将接受没有 DOCTYPE 声明的文档。
最简单的 DOCTYPE 声明只标识文档的根元素。
<!DOCTYPE rootElement>
更常见的情况是,使用 DOCTYPE 声明的文档引用包含组成 DTD 的声明的外部文档。 以下内容可以用于标识外部 DTD。
<!DOCTYPE rootElement SYSTEM "URIreference">
URIreference
指向包含声明的文件。
<!DOCTYPE rootElement PUBLIC "PublicIdentifier" "URIreference">
PublicIdentifier
提供一个独立的标识符,有些 XML 分析器可以使用该标识符引用 DTD,代替 URIreference
。 如果使用分析器的系统没有网络连接,或该连接可能会明显减慢处理速度,可以使用此标识符。
DOCTYPE 声明还可以在内部子集中直接包含声明。 如果 DOCTYPE 声明直接包含整个 DTD,而没有引用外部文件,将使用以下语法。
<!DOCTYPE rootElement [
declarations
]>
如果 DOCTYPE 声明包含的声明将与外部文件或外部子集组合使用,将使用以下语法。
<!DOCTYPE rootElement SYSTEM "URIreference"[
declarations
]>
或
<!DOCTYPE rootElement PUBLIC "PublicIdentifier" "URIreference"[
declarations
]>