SGML/HTML/XML之间的关系
1 历史起源
SGML——1986年国际标准化组织出版发布了一个信息管理方面的国际标准(ISO 8879:1986信息处理)。 HTML 2.0——1995年11月作为RFC 1866发布 XML 1.0——1998年,W3C发布了XML1.0规范,使用它来简化Internet的文档信息传输 XHTML 1.0——2000年成为W3C的推荐标准 HTML5——2014年,W3C宣布,该标准制定完成注意:HTML 1.0在1993年6月作为互联网工程工作小组(IETF)工作草案发布,并非标准。
从上表可以看出SGML最为古老,SGML成为国际标准的接近20年之后,HTML 2.0才称为W3C的推荐标准,XML发展的最晚,SGML和HTML显然是XML的先驱。
2 SGML简介
SGML是一个用于定义标记语言的系统。为用户提供一种类似语法的机制,用于定义文档的结构和指示文档结构的标签。
每一个使用SGML定义的标记语言都被称为SGML应用。一个SGML应用通常具有以下特点:
SGML声明。SGML声明指定义了应用程序中可能出现的字符和分隔符。 文档类型定义(DTD,document type definition)。DTD定义了标记构造的语法。DTD可能包含其他定义,如字符实体引用。 描述标记所表达的语义。此规范还定义了无法在DTD中表达的语法的限制。 包含数据(内容)和标记的文档实例。每个实例都包含一个对DTD的引用,用于解释它。3 SGML与HTML
SGML与HTML有什么关系呢?HTML4以前的版本(包含HTML4)理论上是基于SGML的一个实例,因此需要在doctype中引用相关的DTD。之所以用理论上,是因为有人说HTML4以前的版本(不包含HTML4)并不严格符合SGML。
下面简单介绍一下HTML是如何使用SGML构建的。
1)元素
SGML文档类型定义声明了表示结构或所需行为的元素类型。HTML 包括表示段落、超文本链接、列表、表、图像等的元素类型。
每个元素类型声明通常描述三部分:开始标记、内容和结束标记。
元素的名称出现在开始标记(<element-name>)和结束标记(</element-name>)中。
等等。
2)属性
元素可能具有关联的属性,它们可能具有值。属性/值对出现在元素的开始标记的">"之前。由空格分割任意数量的属性值。
等等。
3)字符引用
字符引用可能包含在 HTML 文档中的字符的数字或符号名称。它们对于引用不常见的字符或那些编写工具很难键入的字符非常有用。字符引用以"&"标记开始,以分号(;)结束。一些常见的例子如下:
"<"代表 < 符号 ">" 代表> 符号4)注释
HTML注释以"<!--"开始,以"-->"结束。
以上中所有的语法均依据HTML的文档类型定义(DTD)。
4 SGML与XML
SGML与XML有是什么关系呢?XML是SGML的一个子集,比SGML要简单,但是能实现SGML的大部分功能。
5 XHTML与XML
之后发展的XHTML是基于XML的一个应用,XHTML的出现是为了解决HTML语法要求松散的问题,它的语法要求更严格。
6 HTML5
如今的HTML5标准制定了两种实现语法HTML和XHTML。HTML不再基于任何特定的标记语言系统,它有自己完整的标准。XHTML是XML的一个应用。
备注:当HTML5文档使用text/html MIME类型传输时,它将被Web浏览器是为HTML文档处理。当使用XML MIME类型,例如application/xhtml+xml传输时,它将被Web浏览器视为XML文档,由XML处理器进行分析。
参考资料
1 On SGML and HTML - W3C https://www.w3.org/TR/html4/intro/sgmltut.html
2 HTML 5.2 - W3C https://www.w3.org/TR/html5/introduction.html#html-vs-xhtml
3 标准通用标志语言 - 百度百科 https://baike.baidu.com/item/%E6%A0%87%E5%87%86%E9%80%9A%E7%94%A8%E7%BD%AE%E6%A0%87%E8%AF%AD%E8%A8%80/10471466?fr=aladdin&fromid=2901416&fromtitle=SGML
4 HTML - 百度百科 https://baike.baidu.com/item/HTML
5 可扩展标记语言 - 百度百科 https://baike.baidu.com/item/%E5%8F%AF%E6%89%A9%E5%B1%95%E6%A0%87%E8%AE%B0%E8%AF%AD%E8%A8%80?fromtitle=xml&fromid=86251
6 《HTML5秘籍》https://book.douban.com/subject/11610880/
上一篇: 聊一聊Javasript继承
下一篇: 基于Redis的分布式锁的简单实现
推荐阅读
-
通过实例解析spring bean之间的关系
-
全面解释java中StringBuilder、StringBuffer、String类之间的关系
-
PHP中空字符串介绍0、null、empty和false之间的关系
-
百度快照与网站权重之间的关系
-
Oracle数据库中SP和表之间的关系
-
mybatis 的 dao 接口跟 xml 文件里面的 sql 是如何建立关系的?一步步解析
-
揭秘古代皇帝和太子之间的关系 皇帝死后太子为什么又喜又悲的
-
秦始皇与巴寡妇之间真的有暧昧关系吗 秦始皇地宫中的水银是用来做什么的
-
张飞的妻子为何要刘备厚葬夏侯渊 他们之间到底是什么关系
-
从西魏到大唐的皇族之间是什么关系?门阀集团是一个怎么样的存在?