XML入门及简单应用

1。XML简介

XML 代表了由全球信息网协会(World Wide Web Consortium;W3C)的XML 工作小组所定义的可延伸标记语言。该小组将XML 描述如下:
    「可延伸标记语言(eXtensible Markup Language;XML)是SGML 的一个子集......其目标是让一般的SGML 能够在网站上被服务、接收与处理。如同HTML 一样,XML 被设计成容易实作,并且能够与SGML 及HTML 共同合作。」
    这段引言是从官方的XML 规格书1.0 版中摘录下来的,该规格是XML 工作小组于1998 年二月所完成。你可以从http://www.w3.org/TR/REC-xml 的W3C 网站上阅读整份文件。

2。XML解决方案

XML 解决方案

    XML 的定义部份是由基础的语法组成。当你建立XML 文件时,你可以建立自己的元素并以任何你喜爱的名字为它们命名,而不是只能使用那些受限制的预先定义好的元素群组,因而达成了可延伸卷标语言中的「可延伸(extensible)」的特性。所以你几乎可以使用XML 来描述所有形式的文件,从音乐乐谱到数据库。例如,你可以描述书籍的列表,如下面的XML 文件中所示。
<?xml version="1.0"?>
<INVENTORY>
<BOOK>
<TITLE>The Adventures of Huckleberry Finn</TITLE>
<AUTHOR>Mark Twain</AUTHOR>
<BINDING>mass market paperback</BINDING>
<PAGES>298</PAGES>
<PRICE>$5.49</PRICE>
</BOOK>
<BOOK>
<TITLE>Moby-Dick</TITLE>
<AUTHOR>Herman Melville</AUTHOR>
<BINDING>trade paperback</BINDING>
<PAGES>605</PAGES>
<PRICE>$4.95</PRICE>
</BOOK>
<BOOK>
<TITLE>The Scarlet Letter</TITLE>
<AUTHOR>Nathaniel Hawthorne</AUTHOR>
<BINDING>trade paperback</BINDING>
<PAGES>253</PAGES>
<PRICE>$4.25</PRICE>
</BOOK>
</INVENTORY>
注意
    当被用来描述数据库时,XML 拥有两项凌驾于专有格式(如Access .mdb 或dBase .dbf 格式)的优点:XML 是人类易读的,而且它是根据众所周知、开放式的标准所建立的。
    很重要的一点是,你必须要知道,在XML 文件中的元素名称(例如在这个范例中,元素的名称是INVENTORY、BOOK 与TITLE)并不是XML 定义中的一部份。不如说,当你建立特定文件时,你会编造这些元素名称。而且你可以为元素选择任何正确的名称(如,LIST 而不是INVENTORY,或者是ITEM 而不是BOOK)。
提示
    当你为XML 文件中的元素命名时,试着选择具描述性的名字-例如宁可取BOOK 或ITEM 而不是FOO 或BAR。XML 文件的一项优点是它可以自我描述,意即每一段信息可以拥有描述性的卷标附属在信息之上。
    如同你在前面范例中所见到的,XML 文件在组织上是利用树状阶层结构,里面的元素完全地套在其它元素与一个单一顶层(根)元素(在这个范例中是INVENTORY)之中-该元素被称之为文件元素(document element)或根元素(root element)-包含了所有其它元素。该范例XML 文件的结构可以绘制如下:

    因此你可以很快地使用XML 来定义阶层式结构化的文件,例如内含部、章以及不同等级的区段的书籍,如之前所提到的。

3。XML的官方目标

XML 的官方目标

    接下来介绍的是公布在W3C 网站( http://www.w3.org/TR/REC-xml )上的官方XML 规格书中所阐述的XML 的十个设计目标:
    1. XML 应该在因特网上直接可用 。
    如同你在本章中已看到的,XML 主要是设计来在网站上储存与传输信息。
    2. XML 应该支持各类不同的应用程序 。
    虽然XML 的主要目的是在网站上透过服务器与浏览器程序来传输信息,XML 也被设计来供其它型式的软件使用。例如,XML 已被用来在金融软件间往来信息、分发与更新软件,以及被用来撰写声音script 以便能透过电话传输。
    3. XML 应该与SGML 兼容 。
    如同之前解释过的,XML 是SGML 的一组特殊用途的子集。这项特点的好处是SGML 软件工具可以轻易地加入来和XML 共同运作。
    4. 应该很容易撰写处理XML 文件的程序 。
    如果XML 要能够广泛地被实作,那么浏览器与其它负责处理XML 文件的程序应该要很容易撰写。事实上,推衍出SGML 的XML 子集的主要原因是撰写负责处理SGML 文件程序的不方便。
    接下来所提的设计目标主要都是为了支持这项基础目标。
    5. XML 中的选择性功能的数目应该维持在最小值,理想情况是零。
    在XML 中使用最少数目的选择性功能让开发人员在撰写程序来处理XML 文件时变得较为容易。在SGML 中丰富的选择性功能就是SGML 被认为无法定义网站文件的主因。这些选择性的SGML 功能包含了在卷标中重新定义限定字符(一般是「<」与「>」)以及当处理程序可以指出元素在那里结束时,可以省略结束标签。一个用来处理SGML 文件功能的完整应用软件,必须对所有选择性功能负责,即使是那些不常使用的功能。
    6. XML 文件应该是易读且合理清楚的 。
    XML 是为了成为世界上使用者与应用程序之间往来信息的通用媒介而设计的。易读的特性让人们和某些特定的软件程序可以容易地撰写及阅读XML 文件。XML的易读性将XML 从用于数据库与文字处理文件的大多数专有格式中区别出来。因为XML 文件是以纯文字撰写且拥有逻辑的树状结构,所以人们可以轻易地阅读XML 文件。你可以藉由它为你文件的元素、属性与实体选择有意义的名称,并加入有用的批注来加强XML 的可读性。(笔者将在后面的章节中解释元素、属性、实体与批注。)
    7. XML 的设计应该能迅速地完成准备 。
    当然,XML 只有在程序设计人员与使用者族群愿意接受它的情况下才能成为可实行的标准。因而该标准必须在族群开始接受其它替代标准之前完成,因为软件公司当然希望能快速的产生成品。
    8. XML 的设计应该合乎格式并且简洁 。
    XML 的规格以用来定义计算机语言的正规语言撰写,一般称之为Extended Backus-Naur Form(EBNF)标签法。这种正规语言,虽然有时难以阅读,但是它解决了意义不明确的问题,并在最后让撰写XML 文件与(尤其是)XML 处理软件变得更为容易,进而促进了XML 被接受的可能性。
    9. XML 文件应该容易建立 。
    为了让XML 成为网站文件实际应用的卷标语言,不只是XML 的处理程序必须容易撰写,而且XML 文件本身也必须容易建立。
    10. 将XML 标签简化是最不重要的 。
    为了与目标6 一致(XML 文件应该是易读的且合理清楚的),XML 标签必须不能太过简洁以免变得难以阅读。

4。XML的某些基本规则

文件必须严格限定只能拥有一个顶层元素(文件元素或根元素) 。所有其它的元素都必须套迭在这个元素之下。
    元素必须适当地套迭 。也就是说,如果元素是在另一个元素之中开始,它必须在同一个元素之中结束。
    每一个元素都必须拥有起始元素与结束元素 。不像HTML,XML 并不允许你省略结束标签-即使是浏览器能够判断元素在何处结束。(然而,在第三章中,你将学习一种简洁的卷标来使用空白元素-即没有内容的元素。)
    在起始卷标中,元素型态的名称必须完全符合对应结束标签中的名称 。
    元素型态的名称是区分大小写的 。事实上,所有XML 卷标中的文字都是有大小写区分的。例如,下面的元素因为起始卷标中的型态名称与结束卷标中的型态名称并不相同,所以它是不合法的。
<TITLE>Leaves of Grass</Title><!--illegal element -->

5。XML的一个简单例子sample.xml

<?xml version="1.0" ?>
<!--File Name:Inventory.xml-->
<SAMPLE>
<BOOK>
<TITLE>The Adventures of Huckleberry
Finn</TITLE>
<AUTHOR>Mark Twain</AUTHOR>
<BINDING>mass market paperback</BINDING>
<PAGES>298</PAGES>
<PRICE>$5.49</PRICE>
</BOOK>
</SAMPLE>

应用显示使用串接样式表的XML 文件

首先建立sample.css文件
BOOK
{display:block;
margin-top:12pt;
font-size:10pt}
TITLE
{font-style:italic}
AUTHOR
{font-weight:bold}

然后在sample.xml的<SAMPLE>标签之上加入
<?xml-stylesheet type="text/css" href="Inventory01.css"?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值