[英]In HTML, is the document type declaration an element?
在HTML中,文档类型声明是一个元素吗?
我想不,因为在XML中,文档类型声明<!DOCTYPE
是prolog的一部分而不是元素。 请参阅https://www.w3.org/TR/xml/#sec-prolog-dtd和https://www.w3.org/TR/xml/#NT-doctypedecl和https://stackoverflow.com/a /十五万六千四百五十八分之五千五百七十九万六千〇四十零
但Adam Freeman的HTML5权威指南说
DOCTYPE元素告诉浏览器它正在处理HTML文档。 这通过HTML布尔属性表示:
<!DOCTYPE HTML>
毫无疑问,面向标准的语言是DOCTYPE,称为元素 。
HTML5的权威指南 ,尽管它的名字很有吸引力 ,但它的术语却很草率。
XML
doctypedecl的语法
doctypedecl ::= '<!DOCTYPE' S Name (S ExternalID)? S? ('[' intSubset ']' S?)? '>'
与元素的区别明显不同且不相容:
element ::= EmptyElemTag | STag content ETag
STag ::= '<' Name (S Attribute)* S? '>'
Attribute ::= Name Eq AttValue
ETag ::= '</' Name S? '>'
HTML5
HTML5规范具有DOCTYPE( WHATWG / W3C )和元素( WHATWG / W3C )的单独部分,并且绝不会以任何方式混淆DOCTYPE与元素混淆的术语。
文档类型声明是标记文档的序言开头的语法结构。 在SGML中,通过扩展XML,DTD告诉解析器文档元素(文档的“根”元素的名称),并可选地包含或引用元素,属性,实体,符号,短引用的标记声明(SGML)仅),以及文档中使用的链接规则(仅限SGML)。
元素 OTOH是逻辑构造,由开始和结束元素标记组成 。
在Web浏览器中,doctype声明过去曾用于以奇怪的方式表达HTML版本级别,但HTML5仅接受<!DOCTYPE html>
或<!DOCTYPE html SYSTEM "about:legacy-compat">
。
标记声明绝不可以是元素,并且doctype声明中使用的HTML
不是属性,更不用说用作HTML5样式的布尔属性。 你引用的作者完全不知道他在说什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.