虽然从第一版的HTML 以来,预先定义好的HTML 元素已经有了相当大的扩充,HTML 仍
然不适合用来定义多种型式的文件。下面所列的就是一些无法使用HTML 来做适当描述的文件
范例:
•
非传统组件(标题、段落、串行、表格等等)所组成的文件 。例如,HTML 缺乏
用来标记音乐乐谱或数学方程式所需的元素。
•
数据库数据,如书籍的存货清单 。你可以使用HTML 网页来储存并显示静态的
数据库信息(如书籍叙述的列表)。然而,如果你希望进行排序、筛选、搜寻以
及利用其它方法来处理这些信息,那么信息的每一个个别区段都需要被标示(如
同数据库程序中所做像的一样,例如:Microsoft Access)。HTML 缺乏完成这项
工作所需的元素。
•
以树状的阶层式结构来进行组织的文件 。假设你正在撰写一本书,而且想要将书
籍的内容标记成篇、章、A 段、B 段、C 段等等。应用软件可以利用这种结构化
的文件来产生内容的目录,产生不同详尽程度的概要,摘录特定区段,并以其它
方式来运用这些信息。然而,HTML 的标题元素,只能标记标题本身的文字部份。
例如:
Web Site Contents
因为你无法将实际文字与属于文件区段的元素套到标题元素中建立套巢状结构,所以这些元素不
能被用来明确地表明文件的阶层结构。这些限制的解决之道就是XML。
XML 解决方案
XML 的定义部份是由基础的语法组成。当你建立XML 文件时,你可以建立自己的元素并以任何
你喜爱的名字为它们命名,而不是只能使用那些受限制的预先定义好的元素群组,因而达成了可
延伸卷标语言中的「可延伸(extensible)」的特性。
所以你几乎可以使用XML 来描述所有形式的文件,从音乐乐谱到数据库。例如,你可以描述书籍的列表,如下面的XML 文件中所示。
The Adventures of Huckleberry Finn
Mark Twain
mass market paperback
298
$5.49
Moby-Dick
Herman Melville
trade paperback
605
$4.95
The Scarlet Letter
Nathaniel Hawthorne
trade paperback
253
$4.25
注意
当被用来描述数据库时,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 能够取代HTML 吗?
就目前来说,这个问题的答案是不能。HTML 仍然是用来告诉浏览器如何在网站上显示信息的主
要语言。
在Internet Explorer 5 中,你可以在浏览器中直接开启一个附样式表的XML 文件,而不必使用
HTML 网页来显示XML 文件。
然而,另两种显示XML 文件的主要方法是:数据链路与DOM script-都是使用HTML 网页做为
媒介来显示XML 文件。(即使是利用样式表的方法也一样,如果你利用XSL,最终还是需要利
用HTML 来告诉浏览器如何安排XML 数据。)
XML 不是要用来取代HTML,XML 目前是用来与HTML 合作以扩展网站网页的功能,来达成:
• 传输任何型态的文件。
• 以其它方式来排序、筛选、重新安排、搜寻与管理信息。
• 呈现高度结构化信息。
XML 是设计来与HTML 共同合作的。
XML 的官方目标
接下来介绍的是公布在W3C 网站( -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 标签必须不能
太过简洁以免变得难以阅读。
标准的XML 应用程序
如你所见,你不但可以利用XML 来描述个别的文件,同时个人、公司,或标准委员会也可以定
义一组一般用途的XML 元素集以及文件结构,以提供针对特殊类别的文件使用。一般用途的元
素集与文件结构通常称之为XML 应用程序(XML application)或XML 字汇(XML vocabulary)。
例如,企业可以建立XML 应用程序,该程序可以建立定义分子结构的文件、描述人力资源的文
件、编排多媒体方式呈现的文件,或储存向量图形的文件等。在本章的结尾部份,笔者会列出某
些已经建构完成或已经被提出可以公开取得的XML 应用程序。
XML 应用程序通常藉由建立文件型态定义(DTD:document type definition)来进行定义,DTD是XML 文件的选择性组件。
DTD 就像数据库的概要:它用在当你为文件中的元素进行定义并命名、安排元素出现的顺序、可以使用的元素属性,以及其它文件的特性时。要使用特殊的XML应用程序,你通常会含括DTD 到你的XML 文件中,在文件中加入DTD 限制你可以使用的元素与结构,如此你的文件会被强迫符合应用程序的标准。使用标准XML 应用程序来发展文件的优点是你可以将文件分享给应用程序的其它使用者使用,而且文件可以使用针对该应用程序已经开发完成的各类软件来进行处理与显示。加强XML 文件的XML 应用程序
除了XML 应用程序可以描述特定类型的文件外,还有数个已经定义完成的XML 应用程序让你
可以用在任何型态的XML 文件之中。这些应用程序让建立文件变得更容易而且允许你强化文件
的功能。
这些应用程序包括有:
•
延伸样式表语言(XSL) 允许你利用XML 语法建立更具威力的文件样式表。
•
XML Schema 让你为你的XML 文件使用标准的语法撰写结构的细节。它提供了另一种更具威力的方式来撰写DTD。•
XML 链接语言(XLink) 允许你链接XML 文件。它允许多个链接目标以及其它
先进的特性,而且较HTML 的链接机制具有更强大的效能。
•
XML 指针语言(XPointer) 让你定义具有弹性的链接目标。你可以使用Xpointer
结合XLink 并链接到目标文件的任何位置,而不是只局限于卷标的链接目标。
你可以发现,XML 不但是定义文件的立即有效工具,它同时也能用来建立应用程序,并随着因
特网不断发展强化其架构。
XML 在实际例子中的使用概况
虽然XML 看起来似乎是一个很有趣的观念,但是你可能会怀疑在实际例子中你到底可以利用
XML 来做哪些事。在这里,列出了一些XML 实际用途的范例。包含目前XML 被使用的方
式,以及其它不同团体所建议的用途。如果某些XML 应用程序是针对特定用途被定义,它们将
会被括号起来。例如,从下面列表中你可以判断MathML 是一个XML 应用程序,让你可以格式
化数学方程式。
提示有关目前正在使用与各界建议的XML 应用程序的列表,包含每一个应用程序的详尽叙述,请参
阅Oasis SGML / XML Web 的网页(
org/cover/xml.html#applications )。
•
储存数据库 。就像专有的数据库格式,XML 可以用来标记数据库记录中的每一个字段。(例如,XML 可以标记地址列表数据库中每一笔数据记录的名字、住址
与电话号码。)标记每一个信息的片段让你可以用不同的方式来显示数据,并且
以其它方式来对资料进行搜寻、排序、筛选与处理。
•
组织文件 。
XML 文件的树状结构让XML 更适合制作文件,如小说、非文学类小
说,以及剧本等结构。例如,你可以使用XML 来标记剧本中的幕、镜头、旁白、
台词、舞台方向等等。XML 的卷标允许软件根据喜爱的格式来显示或打印文件;
来搜寻、摘要或管理文件的信息;来产生内容、纲要,与概要的表格,并以其它
方式来处理信息。
•
储存向量图形 。(VML(Vector Markup Language:向量卷标语言))
•
描述多媒体呈现模式 。(SMIL:多媒体同步整合语言,或者是HTML+TIME、
HTML,以及Timed Interactive Multimedia Extensions)
•
定义频道 。频道是推销给(自动传送)订阅者的网页。(CDF;Channel Definition
Format:频道定义格式)
•
描述软件包与其相互依赖性 。这些叙述让软件包可以在网络上部署与更新。
(OSD;Open Software Description:开放式软件描述)
•
在一种开放与可扩充的方式中使用以XML 为基础的讯息,跨网络来对应用程序进行通信 。
这些讯息独立于操作系统、对象模型,与使用的计算机语言。(SOAP;
Simple Object Access Protocol:简单对象使用协议)
•
透过电子邮件来传送电子商务名片 。
•
往来金融信息 。该信息是以开放的、人类可读的格式,在金融软件(如Quicken
与Microsoft Money)与金融机构(如银行与共同基金)间进行往来。(OFX;
Open Financial Exchange:开放式的金融往来)
•
为因特网上的商业交易建立、管理,与使用复杂的数字格式 。这些窗体可以包含
数字签名,让窗体成为可以合法连结的。(XFDL;Extensible Forms Description
Language:延伸窗体描述语言)
•
转换职务说明与个人简历 。(HRMML;Human Resource Management Markup
Language:人力资源管理卷标语言)
•
为网站上的数学方程式与科学内容格式化 。(MathML;Mathematical Markup
Language:数学卷标语言)
•
描述分子结构 。(CML;Chemical Markup Language:化学卷标语言)
•
编码并显示DNA、RNA、蛋白质串接信息 。(BSML;Bioinformatic Sequence
Markup Language:生物信息串接卷标语言)
•
宗谱数据编码 。(GedML;Bioinformatic Sequence Markup Language:宗谱数
据卷标语言)
•
转换天文学数据 。(AML;Astronomical Markup Language:天文学卷标语言)
•
撰写乐谱表 。(MusicML;Music Markup Language:音乐卷标语言)
•
为透过电话传输储存声音script 。例如,声音script 可以被用来产生有声邮件、
股市报价,以及天气报告。(VoxML)
•
利用信差服务来储存追踪信息 。例如,联邦快递目前就是使用XML 来达成这个
项目的。
•
以数字格式发送全国性的报纸广告 。( Ad Markup)
•
以电子方式为合法文件建档与往来合法文件 。(XCI,或XML 法庭界面)
•
气象观测报告编码 。(OMF;Weather Obser-vation Markup Format:气象观
测标签格式)
•
转换不动产交易信息 。(RETS;Real Estate Transaction Standard:不动产交
易标准)
•
转换保险相关数据 。•
使用开放式网站标准来转换新闻与信息 。(XMLNews)
•
呈现神学信息与卷标礼拜仪式文字 。(ThML;Theological Markup Language:
神学卷标语言,与LitML;Liturgical Markup Language:礼拜仪式卷标语言)