HTML, XML, XHTML 有什么区别
先说一下三者的定义。
- HTML:HyperText Markup Language / 超文本标记语言
- XML: Extensible Markup Language / 可扩展标记语言
- XHTML: Extensible Hypertext Markup Language / 可扩展超文本标记语
这定义说了等于没说,只知道都是标记语言。
超文本是什么?可扩展是什么?
完全没概念。
作为一个前端,最熟悉是就是 HTML 了,所以我们先从 HTML 说起。
HTML 是用来描述和定义网页内容的标记语言,是构成网页的最基本的东西。
所谓超文本,就是说它除了能标记文本,还能标记其他的内容,比如:图片,链接,音频,视频等。
它的作用就是一个规范,告诉所有浏览器都统一标准,比如我给这段文字加个 <p>
标签,那就是告诉浏览器:这是一个段落。我加个 <img>
标签:这是一张图片,别弄错了。浏览器看到后,就会正确解析,产生相应的行为。
然后说一下 XML
它的表现形式就是给一个文档加一堆标签,说明每段文字是干什么的,有什么意义。这样做的目的是方便存储、传输、分享数据,人和机器都可以很方便的阅读。XML 和 HTML 有一个明显的区别就是:HTML 的标签都是预定义的,你不可以自己随便增加,比如你不能自造一个标签叫 <nihao>
, 但是 XML 可以,你可以自己“发明”标签————这也是“可扩展的”一个含义。
HTML 和 XML 一结合,就产生了 XHTML
XHTML 就是以 XML 的语法形式来写 HTML.
XHTML 出现的原因是:HTML 是一种语法形式比较松散的标记语言,语法要求也不严格。比如大小可以混用,属性值随便你加不加引号,单引号还是双引号也随便你,标签也可以不闭合。HTML 标准的制定者 W3C 一看这样下去不行,所谓无规矩不成方圆,所以就把 XML 的语法形式往 HTML 上一套,出现了 XHTML,所以你也可以把 XHTML 理解为 HTML 的严格语法形式,除此之外,其它方面基本一样。
比如 XHTML 有一些强制的要求,如下:
- 必须包含一个文件头声明
<!DOCTYPE>
- 所有元素名必须小写
- 所有空元素必须关闭
- 所有属性名必须小写
- 所有属性值必须加引号
- 所有布尔值属性必须加上属性值