为何说 HTML5「no longer based on SGML」?
程序员文章站
2022-05-22 14:06:03
...
回复内容:
SGML 是一种很强大但很复杂的标记语言,HTML、XML 就是从中衍生出来的。SGML 的例子如下:
typically something likethis
最初的 HTML 也很像上面的这种样子,但后来逐渐演变到了 HTML5 后,就有一些新的规定和习惯,比如标签里的标签名和属性名必须小写等。所以说现时的 HTML5 已经不再基于 SGML 了。
——————补充——————
有人指出 HTML5 并没有规定标签名和属性名必须小写,事实的确如此。实际上 SGML 也没有规定标签名和属性名必须大写。虽然习惯如此。(早期的 HTML 跟随这一习惯)
又查了一些资料,补充一下我的理解:
SGML 最为强大和古老,XML 是 SGML 的一个子集,HTML 最初也试图成为 SGML 的一个子集,但 HTML 4 以前并不严格符合 SGML 的标准。后来出现了 HTML4,XHTML (符合 XML 标准的 HTML),这两者都符合 SGML 的要求。
到现如今,W3C 在制定 HTML5 标准时,希望摆脱 SGML 的一些无用的功能和声明,并延续 HTML4 的风格,而非严格的 XHTML 的风格。
所以,实际上 W3C 下与网页(超文本)相关的标准有两个系列:HTML 系列和 XHTML 系列。前者从 HTML 第一版一直发展到 HTML 4.x、HTML5,而 XHTML 系列从 XHTML 1.0、1.1、2.0 跳跃到 HTML5 的一部分:所谓的“XHTML5”。HTML 系列的工作重点在于丰富与超文本相关的功能、标记,提供较好的兼容性,更加面向“人”;而 XHTML 系列的工作重点在于将 HTML 改为更加符合 XML 严格规范的格式,更加面向“机器”。
XML 的语法很严格,是 W3C 的宝贝,所以 W3C 试图把各种东西都变成 XML 的子集或应用,比如 MathML,SVG 等。可是其地位逐渐受到其他一些轻量标记语言的威胁。
————
最后想说一点,这些乱七八糟的东西很多都是历史遗留问题,没有必要过多纠结。能写出漂亮的,优雅的网页才是一个开发者应该努力的方向。