W3C于1998年2月批准了XML的1.0版本。可以认为,XML是SGML的一个子集,而HTML是SGML的一个应用。因为XML的众多优点,使得它成为在不同的应用间交换数据的理想格式。不少公司都开始以XML为基础来实施它们的EDI(Electronic Data Interchange)系统。
HTML与XML的区别:XML允许粒度更新,不必在XML文档每次有局部改变时都发送整个文档内容,只有改变的元素才必须从服务器发送到客户机,HTML不支持类似功能。HTML规范的最终版本是HTML 4.01,HTML目前已经不再是Web标记的标准,它已经被XHTML所取代。XHTML是HTML和XML的混合物,完全采用XML的语法和规则来编写Web页面,有效地结合了HTML的简单性和XML的可扩展性,所运用的标记和属性基本上还是HTML中所定义的那些标记。XHTML是XML在Web领域的一种应用。
XML与数据库的比较:多个XML文档的元素之间还可以像数据库字段一样定义主外键关系。可以把XML文档集看成一个非常小型的数据库。XML比数据库更适合于人们阅读。在实际应用中经常涉及数据库表与XML文档之间的相互转换问题。
W3C的XML 1.0规范里规定,所有的XML解析器必须接受UTF-8和UTF-16编码的Unicode字符,如果XML文档声明中没有指定encoding属性,则一律以Unicode编码看待。XML解析器通过寻找XML文档开始处的字节顺序标记,能够自动检测出文档中的Unicode编码是UTF8还是UTF16。
文档声明:<?xml version=“1.0” encoding=“UTF-8” standalone=“yes” ?>(standalone属性要位于encoding属性之后)
当XML文件使用非Unicode编码时,必须在XML文档声明中指定其字符集编码,而采用Unicode编码时则可以在XML文档声明中省略字符集编码。因为不能保证各种XML处理器都能处理非Unicode编码的XML文件,只有实在不能使用UTF-8或UTF-16编码文本文件时,才应考虑使用本地字符集。
使用名称空间引入XML Schema文档:要使用XML Schema文档对XML实例文档进行校验,除了要声明名称空间外,还必须指定该名称空间所对应的XML Schema文档的存储位置。在声明名称空间的元素中可以设置一个schemaLocation属性来指定名称空间所对应的XML Schema文档的存储位置。
schemaLocation属性的设置值中包含两个部分:第一部分就是名称空间的URI;第二部分就是该名称空间所标识的XML Schema文件的位置或URL地址,这两部分之间用空格分隔。
schemaLocation属性本身又是在另外一个公认的标准名称空间中定义的,这个公认的标准名称空间的标识URI为“http://www.w3.org/2001/XMLSchema-instance”。这个事实也说明了在XML文档规范中存在公认的标准名称空间和自定义名称空间的区别。
XML解析程序都应内嵌有那些公认的标准名称空间的XML Schema文档的内容信息,因而不用指定XML Schema文档的存储位置。