
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.1 什么是XML
XML是一种比较新的数据储存格式。它使用树状结构的标签对数据进行格式化。这种方法和传统的HTML非常地类似,但HTML是格式、超文本和图形用户界面语义的混合体,要同时发展这些混合在一起的功能是很困难的。而XML提供了一种结构化的数据表示方式,使得用户界面与结构化数据相分离,并且XML的标签是可由用户自定义的,甚至可以使用中文等双字节编码文字作为XML标签。比如,我们可以建立这样一个XML文档:
<学生> <学号N="100001"> <姓名>顾雪明</姓名> <性别>男</性别> </学号> <学号N="1000002"> <姓名>韩志勇</姓名> <性别>男</性别> </学号> </学生>
对于这样一个文档,标签具有自我描述性,即使是不懂网络知识的人也可以轻易地从中找到大部分的信息。同时,XML在结合了CSS, XSL, ASP和PHP后更是在信息检索方面展现了自己的特长。这几年来,XML越来越受到了大家的青睐,其应用领域也越来越广泛,如已经应用于通信、航空、教育和医疗等领域。
下面的例子(清单1-1)来自www.moreover.com,这个发布新闻信息的系统是关于发行/订阅结构的相当好的例子。Moreover组织收集了来自全球超过1800个站点的新闻条目并对其进行处理,以便用户订阅。订阅用户只能够下载自己感兴趣的新闻。
清单1-1 XML编码的新闻
<? xml version="1.0" encoding="iso-8859-1"? > <! DOCTYPE moreovernews SYSTEM "http://p.moreover.com/xml_dtds/moreovernews.dtd"> <moreovernews> <article id="_13177343"> <url>http://c.moreover.com/click/here.pl? x13177340</url> <headline_text>Microsoft Signs Pact with Electronic Arts to Develop Games for lts X-Box Console</headline_text> </article> <article id="_13176679"> <url>http://c.moreover.com/click/here.pl? x13176678</url> <headline_text>Attorney general says children have easy access to violent video games </headline_text> </article> <article id="_13171770"> <url>http://c.moreover.com/click/here.pl? x13171767</url> <headline_text>Nintendo generation piling on the kilos</headline_text> </article> </moreovernews>
这里使用DTD(Document Type Define,文档类型定义)类型文件moreovernews.dtd对XML文档进行验证,即XML文档的元素、元素间嵌套关系、元素内容类型、取值范围等都要符合moreovernews.dtd的定义。另一种对XML文档进行验证的方法是XML Schema。我们将在后面分别对这两种方法进行介绍。