使用Dreamweaver创建XML文档

本章主要介绍XML的基本知识以及概括地解释什么是XML,以及如何使用Dreamweaver创建XML文档。说明如何将各种不同的XML表达式组合在一起,XML文档是如何创建的并如何向人们发送这种文档。

3.1? XML概述

在当今的IT行业,XML(全称是“Extensible Markup Language”,可扩展标识语言)。越来越成为一个热门的话题。我们知道,Web上的通用语言是HTML,正是由于它的出现,Internet才像现在这样如此深入人心,规模也变得异常庞大。也正因为如此,以及HTML的不足,问题出现了,人们越发觉得HTML不够用了。1996年,W3C开始对HTML的后续语言进行研究,并于1998年2月正式推出了XML。在这一节中,首先介绍了HTML的不足,然后提出弥补这些缺陷的XML及其一些特点、优势、应用领域、诞生等问题,最后介绍了XML和其他网页编写语言的关系,使读者对XML有一个总体的概念,把握住其实质和方向。

3.1.1? HTML的不足

HTML——超文本标识语言以其简单精炼的语法、极易掌握的通用性与易学性,使Web网页可以亲近于每一个普通人,互联网也才得以普及发展以至今日的辉煌。然而,电子商务、电子图书、远程教育等全新领域如异军突起,迅猛发展并逐渐成为互联网世界必不可少且愈发重要的组成部分,随之而来的是Web文件的复杂化、多样化、智能化,于是高容量、高信息量、高效率便成为网络信息传输技术发展的追求。与此同时还有另一种需求变得愈发广泛而迫切,那便是同样的数据能否根据不同用户不同需求而以不同的效果、形式表达出来。而这一切是HTML所不能满足的。下面简单地介绍HTML在今天这个网络时代所面临的困境,它在机器之间互相交流、传递信息等方面的不足以及XML是如何弥补这些缺陷的。

1.难以扩展

HTML是符合SGML语法的一种固定格式的超文本标记语言,因其格式固定,故难以扩展。浏览器供应商通过非标准的扩展来获得市场份额,这就破坏了Web的交互操作性。HTML中有一个大问题就是它的tag的集合是固定的,用户不能新增有意义的能供他人使用的tag。
XML的诞生正是为了解决这个问题,从其全称“扩展标记语言”(Extensible Markup Language)就可以知道这一点。XML是SGML的一个子集,一个摒弃了其中一些复杂性并考虑到适合Web特性的一个子集。所以它和SGML一样,都是元语言,可以定义其他的语言。HTML 4.0现在由SGML描述,将来可能由XML重新定义。所以,HTML的标记是固定的,只有如H1,P,Table等在HTML标准DTD中定义的标记。而XML的标记是用户定义的,所以从理论上讲,其类型的数量可以是无限的。

2.交互性差

用户需要与应用进行交互,而使用HTML却并不容易做到。频繁的请求处理已经使现在的Web服务器不堪重负了,动态HTML可以把一些处理交给浏览器,但在这方面它远不及XML。更为重要的是,当我们想对同一数据以不同的视角进行观察时,HTML的办法是请求服务器重传另一个页面,这无疑更加重了服务器的负担。而如果使用XML,可以在本地排序、过滤和进行其他的数据操作。
网络浏览器是一个应用平台,以HTML作为数据标准,网络上的应用程序依赖服务器上的CGI(公共网关接口)脚本来处理网页上的数据。这样的结构是非常清晰的,但HTML却使在服务器的一端要处理的数据量过大,这使得网络速度降低,效率不高。

3.语义性差

HTML最初是被设计用来标记文档以反映其结构的(如Title,H1,L1,P,Table等),同时它也包含一些用于显示格式的标记(如B,I),再加上超文本链接,HTML在Web上获得了巨大的成功。HTML对布局、外观方面很擅长,却极度缺乏对内容,也就是信息含义的表达能力,除了极少数几个用来表达内容或文义的标记外,如<p>、<address>、<title>、<strong>,几乎全都是用来设计网页格局的。所以HTML是设计来做人机交流用的。
HTML只是一种表达的技术。它并不一定能揭示HTML tag中的含义。举一个最简单的例子,“<h2>Text</h2>”这句话在网络浏览器中有特定的表现,但是HTML却并没有告诉我们它到底是什么。Text只是一个英文单词罢了,它在不同的环境之下可能会有不同的意义, HTML并没有告诉我们其具体的内容。

4.单向的超链接

虽然现在HTML提供的超文本链接机制被证明是很有用的并取得了巨大的成功,但这种机制的特征注定了它的局限性。实际上在早期的一些专用的超媒体系统中已经有一些更灵活的机制来表达更复杂的链接关系,如多个目的端、多向链接等,XML足以满足这样的需求。

5 .HTML缺乏对双字节或多国文字的支持

HTML缺乏对双字节或多国文字的支持,或者说支持不够。例如中文信息页面在不同的平台下会出现格式不齐等问题。
XML将使Web建立者创建真正的国际性站点变得比以前都容易。因为,比如Java,它由Unicode(ISO10646)定义,Unicode是一个国际接受的标准,用于描述世界上所有的字母、字型、字符和表意符,它包括ASCIIISO拉丁字符、日本、韩国、中国、印度、希腊、阿拉伯和其他字符,它甚至允许字符集的混合。例如,一篇以日文显示的XML文档可以通过一个元音变音参照到一个德文词汇。
开发者不需要学习任何脚本语言,以使Unicode在XML文档中生效,文档在用户的浏览器中用合适的字符集显示出来。
在HTML中不能使用中文标记,而在XML中标记可以由编写者自由定义,定义出的标记可以充分反映编写者的意思,因此在XML中我们就可以使用中文标记,更能充分表达我们的意思。

3.1.2? 什么是XML

XML是Extensible Markup Language的缩写,意为可扩展的标记语言。它将SGML的丰富功能与HTML的易用性结合到Web的应用中。XML保留了SGML的可扩展功能,这使XML从根本上有别于HTML。XML要比HTML强大得多,它不再是固定的标记,而是允许定义数量不限的标记来描述文档中的资料,允许嵌套的信息结构。HTML只是Web显示数据的通用方法,而XML提供了一个直接处理Web数据的通用方法。HTML着重描述Web页面的显示格式,而XML着重描述的是Web页面的内容。
为了使编写的Web页面成为有效的XML文档,文中每一个添加的标记必须记入一个独立的CSS(Cascading Style Sheets,层叠样式表)文件中。如果没有相关的CSS文件,则在浏览器中显示成源代码。但是如果有相关的CSS文件,当客户浏览此文档时,相关的CSS文件是随着文档一起下载到客户端,客户浏览器就懂得怎样来处理它们,例如可以将同一出版社出的书显示在一起,或者按价格的多少排序显示出来等。
CSS文件使XML页面能包含更多的内容,表现更复杂的形式。XML页面信息是结构化的,有些与数据库结构类似,因而更具访问性,其检索结果更有针对性、更准确。
另外也可以将URL地址定义在CSS文件中,当Web主页地址发生变化时,只需改动CSS文件中的定义即可,而不必一一在HTML文档中改变URL地址,从而使Web的维护更方便,用户也不会遇到URL地址找不到的信息,这样一来,Web的应用更稳定。
并不是所有的CSS文件都要下载到客户端,已经制订成为标准的协议,例如化学标记语言CML、数学标记语言MML等是不需要CSS文件的。
除了CSS外,XML中还包括可扩展格式语言XSL(Extensible Style Language)和可扩展链接语言XLL(Extensible Linking Language)。
XSL用于将XML数据翻译为HTML或其他格式的语言。XSL提供了一种叠式页面CSS的功能,使开发者构造出具有表达层结构的Web页面来,以有别于XML的数据结构。XSL也能和HTML一起构造叠式页面。XSL可以解释数量不限的标记,它使Web的版面更丰富多彩,例如动态的文本、跑马式的文字。此外,XSL还处理多国文字、双字节的汉字显示、网格的各种处理等。
XLL是XML的链接语言,它与HTML的链接相似,但功能更强大。XLL支持可扩展的链接和多方向的链接。它打破了HTML只支持超级文本概念下最简单的链接限制,能支持独立于地址的域名、双向链路、环路、多个源的集合链接等。XLL链接可不受文档制约,完全按用户要求来指定和管理。
原来的链接规范XLL,正被分为两个不同的规范,XPointer和XLink。
在HTML中,要链接到一个页面的中间,页面作者必须在那儿加上定位标识符。当使用XPointer,可以“取址到”(不是“连接到”)其他人的文本的任何部分。
当用户单击一个HTML超链接时,当前的网页被连接到的文件替代。XLink令Web建立者给链接增加行为,例如,现在必须用一些JavaScript,使在链接处弹出一个独立的窗口,但是XLink让Web建立者对链接进行编码来执行一系列动作,包括弹出一个链接选择的菜单。
另一个应用可以是弹出一个对话框,可能是一个提醒用户它们正要更新数据库的警告。链接弹出菜单可能需要用户单击一个框来表示在进一步处理前它们接受义务。现在,实现这样的功能要写许多的脚本代码。
XML也让Web建立者创建类似Web环工作的Extended Link,Web环是通过“下一个/前一个”行进来导航的自己选择出来的关于相同主题的网站组。对于弹出菜单太长的相关链接站点表,Web建立者可以创建一个链接表,这个表在不同的站点页面时会有变化。用户可以单击一个图标,来自动转移到环中的下一个成员。现在这样的功能需要使用CGI Scripts,而Extended Links 提供了一个标准的、非私有的建立资源间联系的方法。
但是仍然有更多的问题需要解决,特别是在行为政策方面。必须由一种方法来协调以下三方面的关系,文档作者对链接所建议的行为、用户所喜欢的显示链接信息的方式,以及是否和何时忽视用户的意愿的政策。
XML设计中也考虑了它的易用性,易用性来自两个方面:一方面用户编写Web页面方便,另一方面设计人员实现XML浏览器也不太困难。
总之,XML使用一个简单而又灵活的标准格式,为基于Web的应用提供了一个描述数据和交换数据的有效手段。HTML描述了显示全球数据的通用方法,而XML提供了直接处理全球数据的通用方法。
3.1.3? XML的优越性
从上面的介绍中,可以看出XML具有几项革命性的优越性,它必将大幅度改善当今世界的计算机网络世界。XML是一种元语言,可以定义其他的语言,并且它的标记是用户定义的,从理论上讲,其类型的数量可以是无限的。XML的前景被人看好,有人预言,在21世纪,XML语言将成为世人皆知的“世界语”。
HTML由于难以扩展、交互性差、语义性差以及单向的超链接等缺点,使其在电子数据交换、数据库与搜索引擎等领域的应用存在着障碍,而XML的出现就是为了解决这些问题。因此XML的优越性也主要表现在解决HTML中存在的不足。归纳为以下几个方面。
1.异质系统间的通信
由于计算机世界的无政府性、盲目性,造成当今不同企业之间,甚至企业内部的各个部门之间存在许多不同的系统。常常由于不同的平台、数据库软件等,造成信息流通相当困难。要想在这些异质系统之间进行通信或交换数据,通常需要使用专门的软件,才能顺利地完成。如果哪个系统有一天换装了新的软件,甚至或者升级了软件,都会造成系统之间不能按照原先的方式进行通信,而必须重新开发新的软件进行通信,浪费了人力物力。但是XML出现以后,这些必须依靠特殊软件才能进行通信的系统之间,可以方便地通过XML来做信息交流。因为XML格式非常简单易读,对于各种类型的资料,不论文档或二元档,都能标注。只要各系统之间安装了XML解析器,便可解读另外计算机传过来的信息,进而加以利用,完成不同系统、不同机型间的通信。异质系统之间,不用再担心看不懂对方传输的资料格式。有商务来往的公司之间,只要他们都用XML来做中介格式,用不着也不需要知道对方内部是采用何种格式来存储文件,就可以完全准确无误地进行通信。如此一来,由于XML提供了一个理想的缓冲层,所以某个系统内部的更改,并不会影响和它进行通信的其他系统。因此对于商业界来说,XML的这一异质系统间通信功能意义最大。XML这项利于资料的交换和传递的特性,让很多人认为,XML将给电子商务带来革命性的冲击。

2.更有意义和更准确的搜索

数据可被XML唯一的标识。没有XML,搜索软件必须了解每个数据库是如何构建的。这实际上是不可能的,因为每个数据库描述数据都是不同的。例如,有了XML,书就可以很容易以标准的方式按照作者、标题、ISBN序号或其他的标准分类。搜索书就变得十分方便,所以XML提供了更有意义的搜索。
XML的标记含义丰富、意义明确,明白地提示所标记的内容,所以让搜索依靠标记和内容之间的依存关系,准确地定位、找到目标、完成任务。所以XML可以提供更准确的搜索。

3.开发灵活的Web应用软件

数据一旦建立,XML能被发送到其他应用软件、对象或者中间层服务器做进一步的处理。或者它可以发送到桌面用浏览器浏览。XML和HTML、脚本、公共对象模式一起为灵活的三层Web应用软件的开发提供了所需的技术。
(1)不同来源数据的集成
现在搜索多样的不兼容的数据库实际上是不可能的。XML能够使不同来源的结构化的数据很容易地结合在一起。软件代理商可以在中间层的服务器上对从后端数据库和其他应用处来的数据进行集成,然后,数据就能被发送到客户或其他服务器做进一步的集合、处理和分发。
(2)多种应用得到的数据
XML的扩展性和灵活性允许它描述不同种类应用软件中的数据,从描述搜集的Web页到数据记录。同时,由于基于XML的数据是自我描述的,数据不需要有内部描述就能被交换和处理。
(3)本地计算和处理
XML格式的数据发送给客户后,客户可以用应用软件解析数据并对数据进行编辑和处理。使用者可以用不同的方法处理数据,而不仅仅是显示它。XML文档对象模式(DOM)允许用脚本或其他编程语言处理数据。数据计算不需要回到服务器就能进行。分离使用者观看数据的界面,使用简单灵活开放的格式,可以给Web创建功能强大的应用软件,这些软件原来只能建立在高端数据库上。
(4)数据的多样显示
数据发到桌面后,能够用多种方式显示。通过以简单开放扩展的方式描述结果化的数据,XML补充了HTML,被广泛地用来描述用户界面。HTML描述数据的外观,而XML描述数据本身。由于数据显示与内容分开,XML定义的数据允许指定不同的显示方式,使数据更合理地表现出来。本地的数据能够以客户配置、使用者选择或其他标准决定的方式动态地表现出来。CSS和XSL为数据的显示提供了公布的机制。
(5)粒状的更新
通过XML,数据可以粒状地更新。每当一部分数据变化后,不需要重发整个结构化的数据。变化的元素必须从服务器发送给客户,变化的数据不需要刷新整个用户界面就能够显示出来。目前,只要一条数据变化了,整页都必须重建,这严重限制了服务器的升级性能。XML也允许加进其他数据,比如预测的温度。加入的信息能够流入存在的页面,不需要浏览器发一个新的页面。

4.在Web上发布数据

由于XML是一个开放的基于文本的格式,它可以和HTML一样使用HTTP进行传送,不需要对现存的网络进行变化。
(1)升级性
由于XML彻底把标识的概念同显示分开,处理者能够在结构化的数据中嵌套程序化的描述,以表明如何显示数据。这是令人难以相信的强大机制,使得客户计算机同使用者间的交互作用尽可能地减少,同时减少了服务器的数据交换量和浏览器的响应时间。另外,XML使个人的数据只能通过更新的布告发生变化,减少了服务器的工作量,大大增强了服务器的升级性能。
(2)压缩性
XML压缩性能很好,因为用于描述数据结构的标记可以重复使用。XML数据是否要压缩要根据应用来定,还取决于服务器与客户间数据的传递量。XML能够使用HTTP? 1.1中的压缩标准。

5.开放的标准

XML基于的标准是为Web进行过优化的。微软和其他一些公司以及W3C中的工作组正致力于确保XML的互用性,以及为开发人员、处理人员和不同系统和浏览器的使用者提供支持,并进一步发展XML的标准。
XML包括一套相关的标准。
(1)可扩展标识语言(XML)标准,这是W3C正式批准的。这意味着这个标准是稳定的,完全可用于Web和工具的开发。
(2)XML名域标准,这用来描述名域的句法,支持能识别名域的XML解析器。一个XML文档可能包含被不同的DTD或其他机制定义的元素和属性,这就难免产生识别和冲突的问题,XML Namespaces使用URL的机制来解决这个问题。
(3)文档对象模式(DOM—Document Object Model)标准,这为给结构化的数据编写脚本提供了标准,这样开发人员就能够同计算机在基于XML的数据上进行交互作用。对文档结构的标准化的内部表示,目的是让编程人员可以方便地访问文档的元素,删除、增加和编辑文档的内容、属性和风格等,其最大的特点是平台独立性和语言中立性。
(4)可扩展类型语言(XSL)标准,这是一个工作草案。XSL包含XSL转换语言和XSL格式化对象两个模块。转换语言可用来转换XML以满足显示要求。由于XSL的两部分是模块,转换语言能够独立地用来进行多用途的转换,包括把XML转换成结构完整的HTML。CSS可应用于结构简单的XML数据,但不能以不同于信息如何传递来的方式显示信息。
(5)层叠样式表(CSS—Cascading Style Sheets)标准,另外一种格式化描述语言,主要用于HTML,但在不需要XSLT进行转换的情况下,XML文档可以使用CSS。
(6)可扩展链接语言(XLL—XML Link Language)标准和XML指针语言(Xpointer—XML Pointer Language)标准是当前的工作草案。XLL提供类似于HTML的链接,但功能更强大。例如,链接可以是多方向的,可以存在于对象上而不仅仅是页面上。IE 5内在不支持XLL。XPointer是关于XML文档的内部结构寻址的标准,它是建立在XPath基础上的一种语言,HTML中相应的机制是片段标识符。
(7)XML路径语言(XPath—XML Path Language),为XSLT和XPointer提供了一种公用的语法和语义机制,用于XML内部结构寻址。
(8)资源描述框架(RDF—Resource Description Framework)标准,关于元数据的标准,它是处理元数据的基础。RDF十分强调Web资源的自动处理,可应用于多个领域,如搜索引擎,资源分类编目,知识共享及交流,网页的著作权描述等。该标准引进了一个表示元数据的模型和用于编码和传输元数据的语法规则,其中语法由XML表达,因此XML和RDF是互为补充的。
(9)RDF Schema(Resource Description Framework Schema)标准,RDF定义了一个用命名的属性和值的方法来描述资源间关系的简单模型,RDF的属性值就是代表资源间的关系,这类似数据库技术中的E-R图。但是这个模型既没有提供声明这些属性的机制,也没有提供定义这些属性和资源之间的关系的机制,RDF Schema的任务就在于此。
(10)XML Schema标准,对XML文档的结构进行描述和内容进行限制的语言,它包含XML的DTD提供的全部功能并有所扩展,它本身用XML来表达。目前的版本由XMLSchemaPart1:Structures和XMLSchemaPart2:Datatypes两部分组成。
(11)Canonical XML标准,对XML文档进行规范化的标准。两个在外在表现形式上不同的XML文档可能在许多应用中是等价的,称之为“逻辑等价”。Canonical XML就是一个将XML文档转换为其“逻辑等价”的规范化的XML文档的语法规则。
(12)XML Signature Core Syntax and Processing,关于XML数字签名的语法和处理规则,它提供了一种对XML文档和其他Internet资源进行数字签名的机制,这种签名是用XML来进行编码的。
(13)XML Fragment Interchange,XML标准支持可能由多个实体组成的逻辑文档,一个用户可能想浏览或编辑其中一些实体或实体的部分内容却对文档的其他部分没有兴趣和需求。XML Fragment Interchange提供一种机制来传输用户需要的片段及片段所在的上下文关系。
(14)XML Information Set,关于XML信息集的标准,XML信息集是一个抽象的数据集,是对一个成形的(well-formed)XML文档可包含信息的描述。
3.2? 在Dreamweaver 4中导出XML
如果网页中使用了XML,可以应用Dreamweaver的XML导出功能,导出应用了模板的文档中的可编辑区,以便在Dreamweaver之外处理那些内容。
下面通过一个实例来说明如何将一个文件中的可编辑区域的内容到处为一个XML文件,其具体的操作步骤如下:
(1)启动Dreamweaver ,选择File|Open命令,打开一个文件,如图3.1所示。该文档基于test1.dwt模板创建的,test1.dwt模板中有一个名为main的可编辑区域。

图3.1? 打开一个基于test1.dwt创建的文档
(2)选择File|Export|Export Editable Regions as XML命令,则会弹Export Editable Regions as XML对话框,如图3.2所示。在该对话框的Notation(符号)选项中选择一种标记符号,如果选择Use Standard Dreamweaver XML tags,表示使用标准Dreamweaver XML标记;如果选择Use Editable Regions Names as XML tags,表示使用可编辑区名字作为XML标记。

图3.2? Export Editable Regions as XML对话框
(3)单击Export Editable Regions as XML对话框中的OK按钮,则会弹出一个保存文件对话框,将该可编辑区域保存为test.xml文件。
在浏览器中浏览test.xml文件,其显示效果如图3.3所示。
由于test.xml文件没有相关的CSS文件或XSL文件,所以在浏览器中显示成源代码。如果打开该文件的源文件,可以看到该文件的源代码与图3.3中显示的内容一模一样。其中test1.dwt是模板的名称,main是模板的可编辑器区域。
有关该文件的语法,将在后面的章节中详细介绍,在这里只需要了解如何将一个文件中的可编辑区域的内容导出为一个XML文件。

图3.3? test3.xml显示效果

3.3? 在Dreamweaver 4中导入XML

在Dreamweaver 4中,可以将一个XML文件导入到一个基于模板创建的文件中。下面通过一个实例来说明如何将一个文件一个XML文件导入到一个基于模板创建的文件中,其具体的操作步骤如下:
(1)启动Dreamweaver 4,定义一个站点。假设在该站点中有一个名为test1.dwt的模板,其显示效果如图3.4所示。

图3.4? 模板文件显示效果
(2)假设有一个test1.xml文件,其源代码如下(可以在test.xml文件的基础上稍做修改即可):
<?xml version="1.0" encoding="gb2312"?>
<templateItems template="/Templates/test1.dwt">
<item name="main"><![CDATA[<font size="5">这是一个XML文件,该文件将导入到Import_xml文件的可编辑区域中。</font>]]></item>
</templateItems>
(3)选择File|Import|import XML into Template命令,则会新建一个文档,显示效果如图3.5所示。
注意:当XML文件被导入时,Dreamweaver把XML内容与XML文件中指定的模板合并,并在新的文档窗口显示结果。如果没有找到指定的模板,Dreamweaver会弹出一个提示对话框。

[NEXt]