xml - 为什么 <!DOCTYPE> 在 XML 中是强制性的?

标签 xml html xhtml

我正在阅读 this page来自 W3Schools 关于 XHTML 的内容,它说 <!DOCTYPE>对于 XHTML 文档是强制性的

我的问题仅仅是理论上的:这条规则从何而来?

我的意思是,我读过很多关于 XML 的教程,但没有人说必须始终有 DOCTYPE 声明,只有在需要验证时才需要它。所以,XHTML 是一个 XML 文档,我试图阅读 XHTML DTD(严格)但我没有找到说明 DOCTYPE 是强制性的行。

最佳答案

<!DOCTYPE>在 XML 中不是强制性的

正如@Lashane 所回答的那样,它在 XHTML 中是强制性的。它 ( doctypedecl ) 是 optional in XML :

[1]   document    ::= prolog element Misc*
[22]  prolog      ::= XMLDecl? Misc* (doctypedecl Misc*)?
[28]  doctypedecl ::= '<!DOCTYPE' S Name (S ExternalID)? S? ('[' intSubset ']' S?)? '>'

XHTML 可以施加额外的要求并且仍然是 XML,只要额外的要求不与 XML 的要求相矛盾。这种 DOCTYPE 要求与 XML 完全一致。没有矛盾。

关于xml - 为什么 &lt;!DOCTYPE> 在 XML 中是强制性的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36070967/

相关文章:

XML 不间断空格

xml - 使用 sed 创建 XML 数组

html - 最长和最短的 HTML 字符实体名称分别是什么?

css - 父级 <ul> 覆盖其子级样式

php - 将 xml 传递给 php 函数

xml - 在 XML + XSLT 中保持实体完整

javascript - 显示加载程序直到幻灯片完全加载

sockets - HTML5 Web 套接字接口(interface)如何工作?

javascript - 在图像上定位图像

javascript - 计算 anchor 标记的点击次数