实用XML应用开发技术
上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。我们将在后面分别对这两种方法进行介绍。