Xml基础
XML究竟是什么?
关于定义
- XML全称是Extensible Markup Language,即可扩展标记语言
怎么解释呢,拿我们平时熟悉的HTML语言来说,HTML就是一种规定了特定标签的语言,而XML语言则没有规定特定的标签(可能有一些基本的?目前我还没有学习到,以后学习到了来补充),所以说XML语言是一种元语言,利用XML可以创造新的语言,换个角度来说,即XML是一种文件标准,是一种约束和规则。
以下这段话引自《计算机是怎样跑起来的》
那么是XML规定了这些标签吗?答案是否定的。XML本身并不会限定标签的种类,反倒是允许XML的使用这随心所欲的创建标签。也就是说,在’<’和’>’之间的单词可以是任意的。这就是所谓的“可扩展”。在HTML中,我们只能使用由HTML定义出的那若干种标签,因此HTML是固定的标记语言。与此相对,XML是可扩展的标记语言。
XML是元语言
XML仅仅限定了进行标记时标签的书写格式(书写风格)。也就是说通过定义要使用的标签种类,就可以创造出一门新的标记语言通常把这种用于创造语言的语言称作“元语言”。
通常把遵循XML约束、正确标记了的文档称作“格式良好的XML文档”。换言之,只要能通过XML解析器的解析,就是格式良好的XML文档。
XML可以为信息赋予意义
这句话如何理解呢,比如我们写一个网页中的表格,我们可以通过如下的方式:
商品名 | 重量 | 价格 |
---|---|---|
阿炳 | 120 | 10 |
小鸡 | 100 | 11 |
如上,我们通过表格上方的标题,例如阿炳的120是重量,10是他的价格,小鸡的重量是100,价格11。
但是如果我们如下
阿炳 | 120 | 10 |
小鸡 | 100 | 11 |
那么请问你,你知道阿炳的120是什么含义吗。显然不能够分清120和10的含义,我们甚至不能分清“阿炳”这个词语的含义。
总结来说,HTML虽然能呈现表格,但是不能用标签来展示表格内部的含义(这个不能展示是相对于计算机来说的,即上方的120和10我们都用<td><td>和</td></td> 包含起来,并没有用可以代表信息的<price><price>和</price></price> 类似的标签来包含)。
因此,我们无法用程序或者说用程序从一个HTML文件的源代码中提取相关价格和重量类似的信息是非常繁琐的。但是我们使用XML定义新的标签,那么一个文件使用了这种新的标签之后就可以很轻松地通过计算机来识别价格、重量这些类似的信息了。 因为这些数字代表的含义已经被包含它的标签给标识出来了。
XML是一种通用的数据交换格式
计算机是处理数据的,因此数据交换必不可少。那么不同厂商之间的应用程序和同一个厂商的不同应用程序之间进行数据交换时就可以使用XML文件。某一个程序可以通过加载另一个程序保存的XML文件来得到并使用数据。另外还有CSV(Comma Separated Value,即逗号分隔符)也作为通用的数据交换格式沿用至今。CSV文件较小,但是只是含有信息,而且没有为各个信息赋予含义,但是因为含有总信息量的减少,从信息论的角度来讲,文件大小比XML文件小。Microsoft Excel2002使用了CSV和XML两种数据交换格式。
可以为XML标签设定命名空间
前面我们讲到可以通过设定标签为xml里面的信息赋予含义,那么必然会出现几个人或者几个组织为各自的数据设定了相同标签的状况。解决这种情况的办法就是设定命名空间。即使是相同的标签,只要命名空间不同,那么就可以通过规定命名空间来解决这种冲突。
关于解析XML文件
XML文件储存了信息,那么要想解析出XML文件中的信息,我们当然想要使用现成的工具,DOM和SAX组件就是用来解析XML文件的。
最后附一个SOAP使用XML技术进行分布式计算的示意图帮助理解: