DOCTYPE 声明为文档提供了一个外部文件参考的空间来确定它的根节点以及DTD(document type definition),通过直接声明,或者全部。
一个DOCTYPE 声明包括:
- 文档或根节点名字。
如果DOCTYPE 声明是有用的,则需要用到这一项。 - 系统以及DTD公共标识符可以用来确定文档结构。
如果公共标识符要被用到,那么系统标识符也一定要出现。 - 一个内在的DTD定义子集。
内部定义需要在方括号中([])。
在确定的条件下,DOCTYPE 声明是强制性的。为了有效,DOCTYPE 声明必须确定一个DTD而来符合文档的文档结构。
这是一个仅仅有文档根节点的DOCTYPE 声明。
<!DOCTYPE rootElement>
通常,文档用DOCTYPE 声明参考外部文档包括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
]>