haizlin / fe-interview

前端面试每日 3+1,以面试题来驱动学习,提倡每日学习与思考,每天进步一点!每天早上5点纯手工发布面试题(死磕自己,愉悦大家),6000+道前端面试题全面覆盖,HTML/CSS/JavaScript/Vue/React/Nodejs/TypeScript/ECMAScritpt/Webpack/Jquery/小程序/软技能……
http://www.h-camel.com
MIT License
25.34k stars 3.25k forks source link

[html] 第911天 HTML5是SGML的子集吗? #4567

Open haizhilin2013 opened 2 years ago

haizhilin2013 commented 2 years ago

第911天 HTML5是SGML的子集吗?

3+1官网

我也要出题

ferrinweb commented 2 years ago

以下内容转自网友博客文章,并经过编辑整理。

"ML" 即 "Markup language (置标语言)"。根据维基百科对其的解释,"Markup language" 是用标准的标记来解释纯文本文档的内容,从而提供关于文档结构或文档该如何渲染的信息。置标语言的发展可以用下图来表示:

1288677-20180102165648440-35197995

GML

GML 是第一代置标语言,使文档能明确将标示和内容分开,所以文件使用同样的标示方法。

SGML

SGML 在 GML 的基础上进行整理,形成了一套非常严谨的文件描述方法。它的组成包括语法定义、DTD、文件实例三部分。SGML 因太严谨规范达 500 多页,故而不易学、不易用、难以实现,所以在它的基础上又发展出了其他的更易用的置标语言。

HTML

HTML 是人们抽取了 SGML 的一个微小子集而提取出来的。其早期规范比较松散,但比较易学。

XML

XML 也是 SGML 的一个子集,但使用比较严格的模式。

XHTML

XHTML 的出现是因为 HTML 扩充性不好,内容的表现跟不上时代的变化(如无法表示某些化学符号等),以及因为性能的问题,官方逐渐趋于严格的模式,所以使用 XML 的严格规则的 XHTML 成了 W3C 计划中 HTML 的替代者。

HTML5

HTML 经过一系列修订,到现在说的 HTML 一般指 HTML 4.01;而现在的 HTML5 则是 HTML 的第五个修订版,其主要的目标是将互联网语义化,以便更好地被人类和机器阅读,并同时提供更好地支持各种媒体的嵌入。而HTML5本身并非技术,而是标准。它所使用的技术早已很成熟,国内通常所说的 HTML5 (H5) 实际上是 html、css3、、JavaScript 及 web API 等的一个组合,大概可以用以下公式说明:HTML5 ≈ HTML + CSS3 + JavaScript + web API.

keenesun commented 2 years ago

H5不是SGML的子集,逆推一下,H5不需要引入DTD,所以不是