标记语言

XML、HTML、XHTML这三者都有ML。ML(Markup Language)标记语言在维基百科中的解释是:

一种将文本以及文本相关的信息结合起来,展示出关于文档结构和数据处理细节的计算机文字编码。与文本相关的其他信息(包括文本的结构和表示信息等)与原本的文本结合在一起,但是使用标记(markup)进行标识。

用html举个例子:

<h1>我爱我家</h1>

上面的例子中的”我爱我家“就是文本,与文本相关的其他信息”这段文本是个标题“就用标记h1进行标识。

HTML

HTML(Hyper Text Markup Language),即超文本标记语言。

  • HTML的标签是固定的,只能用已经规定好的标签来对文本进行特定的描述
  • HTML被设计用来显示数据。

XML

XML(Extensible Markup Language),即可扩展标记语言。可扩展体现在XML的标签不是固定的,需要自己定义。

比如描述一张桌子的相关信息:

<table>
<name>African Coffee Table</name>
<width>80</width>
<length>120</length>
</table>

我们可以根据自己的需要,定义自己的标签。

命名空间

为了防止大家定义的标签名重复(比如在A的命名里,table表示桌子;而在B的命名里,table表示表格),XML采用命名空间来避免命名冲突。为了区分世界各地的命名,需要一个独一无二的标识来区分不同的文件的命名,而域名无疑是一个完美的选择。

为标签添加一个xmlns属性

<table xmlns="http://www.baidu.com">
<name>African Coffee Table</name>
<width>80</width>
<length>120</length>
</table>

这样不同域名下的命名就不会冲突了。

XML与HTML的区别

XML和HTML都是标记语言,但两者可以说完全不一样

  • HTML的标签固定的,XML的标签是自定义的
  • XML旨在传输和存储数据;HTML旨在显示数据

XML与json

我目前的理解是,XML与json的设计初衷都是,实现一种通用且可读性高的数据格式。这两个目的XML和json都做到了,但是XML更像是先行者,在微软的推动下,开启了通用格式思想的大门,但相比json,还是有一些不足:

  • XML标签冗余高,数据体积大,传输速度慢
  • XML解析较难,json解析难度几乎为0

XHTML

简单来说,XHTML就是更严格更纯净的HTML版本。

与HTML的区别:

  • 文档结构

    XHTML DOCTYPE 是强制性的

    <html> 中的 XML namespace 属性是强制性的

    <html><head><title> 以及 <body> 也是强制性的
  • 元素语法

    XHTML 元素必须正确嵌套

    XHTML 元素必须始终关闭

    XHTML 元素必须小写

    XHTML 文档必须有一个根元素
  • 属性语法

    XHTML 属性必须使用小写

    XHTML 属性值必须用引号包围

    XHTML 属性最小化也是禁止的

最新文章

  1. HTML5新增及移除的元素
  2. LA 3027 Corporative Network
  3. C# zip/unzip with ICSharpCode.SharpZipLib
  4. poj 1383 Labyrinth【迷宫bfs+树的直径】
  5. NoSQL简要数据库
  6. sqlserver 操作xml
  7. sqoop关系型数据迁移原理以及map端内存为何不会爆掉窥探
  8. 【转】JY 博客
  9. Fragment与Acitvity通信
  10. linux 中的screen出现cannot find terminfo entry 的错误
  11. HDU 6300
  12. js捕获错误
  13. 让linux中 history显示每条命令的操作时间及操作用户【转】
  14. Codeforces Round #369 (Div. 2) E. ZS and The Birthday Paradox 数学
  15. mysql 连接字符串 CONCAT
  16. DBLinq (MySQL exactly) Linq To MySql
  17. 【js】批量判断表单中的文本框非空
  18. spring property标签中的 ref属性和ref 标签有什么不同? 如下:&lt;property name=&quot;a&quot; ref=&quot;b&quot; /&gt;
  19. C 标准库 - ctype.h
  20. nodejs 调试

热门文章

  1. SAS学习笔记8 循环语句(do函数)
  2. sysbench安装和测试
  3. RDS for MySQL 逻辑备份文件恢复到自建数据库
  4. (一)CXF之发布第一个WebService服务
  5. CCF 201712-1 最小差值
  6. 使用Canvas压缩图片
  7. Java流对象:InputStream、OutputStream、Reader、Writer
  8. zabbix-通过自动注册自动添加主机
  9. 关于Linux、python的PDF书籍整理(附带亲测的 IT 电子书网站)
  10. 6.Hbase 原理