DoNews.com
通用的语言XML
焦延伍 | 学习制作 | 出处:教程| 2005年12月23日 14:33 | 阅读
        

“推广标准的困难”中,描述了在早期浏览器环境下,说服大多数设计师和开发者遵循标准简直是白日做梦。一部分人固守着达不到目的且陈旧的


方法,另一部分则放弃使用HTMLCSSJavaScript等技术,转向使用Flash。在那个章节中,我们知道Web标准化正面临着一个在接受标准和正确使用标准的日益激烈的战争。那现在我们如何对待XML呢?

XMLextensible Markup Language)标准(www.w3.org/TR/2000/REC- XML-20001006),在19982月被提出,并在软件行业引起了风暴(如图4.1所示)。这是第一次,结构化文档和数据有了一个通用的、可适应的格式,不仅仅应用在Web上,也可以应用在任何地方。全世界都看着它,就像泥坑中来了一个身穿节日盛装的少年。

    

   图4.1“咦?在我的电脑上有好多XML文件!”,在任何一台Macintosh计算机上进行检索,你都会发现很多XML文件。一些文件保存着计算机的个性配置,还有一些保存设备信息。另外一些则可能包括AcrobatiPhotoiTunesEudoraInternet ExplorerMozillaChimeraFlash MX等应用程序组件的配置文件。XML是一个Web标准但却远远超出了Web应用的范畴

4.1.1  XMLHTML的比较

虽然和优秀的HTML来源于同样的技术SGML(类似HTML,也使用标记、属性和值来格式化文档结构),XML却完全不同于早期可代替的置标语言。

HTML是构架Web页面的一种基本语言。它由一些固定数量的标记和看起来好像有些矛盾的规则组成。在HTML中,你可以随意使用或者不使用某些标记,组合或者不组合其他标记。对于任何人来说,利用这种松散的随意性,使创建一个Web页面变得很容易,甚至他们不需要完全知道他们在做什么,这便是核心所在。

在早期,那时候Web只需要基本的内容并不需要更多其他信息,HTML是个很好的解决方法。但在今天,那些历经过长期成长的网站,经常需要频繁通过发布工具重新组装页面,经常需要将内容从数据库发布到Web页面或者无线设备。但HTML缺乏这种统一的规则,从而阻碍了数据的转化。我们很容易把文本转化成HTML,但是很难把标记在HTML文件中的数据转换成我们需要的其他文件格式。

同样,HTML仅仅是一种格式化语言,而不是一个能确切描述自己的语言。它没有任何信息来描述它所格式化的内容,因此限制了我们重用这些内容的能力。当然,HTML确实是适用于Web页面的。

相对而言,基于XML的标记,则由一些统一的规则组成并且具备超越Web领域的能力。当你用XML创建一个文档的时候,你不仅仅要考虑把它们在Web页面中显示出来。你应当对标记进行编码,以便使得任何支持XML的环境都能理解你的XML文档。

4.1.2  一个父母,多孩子

很明显,XML是一种能创造其他语言的语言。只要遵循XML本身的规则,图书馆管理员们可以通过适合图书分录的定制标记自由地创建XML标记。音乐公司也可以制作他们自己的XML文档结构,包括艺术家信息、唱片的信息、作曲家信息、制片人信息、著作权信息、版权信息等标签。作曲家可以通过一个叫MusicMLXML定制架构来进行谱曲。

这些定制的XML语言我们称为应用,并且它们都是XML,因此它们都能互相兼容。也就是说,一个XML解析器能够理解所有的这些应用,每个应用都能很容易地和其他应用进行数据交换。因此,不需要额外的工作,就可以将一个唱片公司的XML数据库中得到的数据很容易地转换到图书馆目录册中,并且不会产生错误,也不会陷入到软件不兼容的困境之中。

4.1.3  专业和定制软件的基本要素

XML的格式化、理解和交换数据的强大能力使得它就像可口可乐一样无处不在。XML不仅可以保存在线或者公共数据库的数据内容,而且也成为了像FileMaker Pro的面向数据库处理软件和更多非面向数据库软件的通用语言。从高端的应用程序到商业产品(比如微软的OfficeOpenoffice),都能看到基于XML的文件格式。

苹果公司的基于UNIX的操作系统Macintosh OS X采用XML来保存所有的配置信息。打印设计软件Quark XPress 5.0Adobe InDesign 2.0可以导入导出XML,并且支持创建基于XML的模板。可视化的Web编辑工具同样具备“XML智能”(如MacromediaDreamweaver MXAdobeGoLive 6),从而使得在打印的Web页面、Web布局以及运行你的在线商店和全局目录数据库之间的数据转化变得更容易(至少也会变得有可能)。

有一些软件除了处理XML就没有其他内容,软件竟然就是这样制作出来的。Macromedia公司的Dreamweaver MX就是由一些最终用户也能看得见的XML文件组成的(如图4.2、图4.3、图4.4所示),由此看来,通过编辑这些文件(www. alistapart.com/stories/dreamweaver/)来修改应用程序变成了可能。用这种方式定制Dreamweaver和出售这些定制化版本已经成为了一种职业。

          

4.2Dreamweaver MX,一个流行的Web开发工具,它由一些Web开发者熟悉的格式的文件组成。瞪大眼睛仔细看,Dreamweaver MX由一些XML文件组成……

4.3

还有GIFHTMLJavaScript。就像一个网站,Dreamweaver的组件被组织在多个子目录

 

 

 

  图4.4理解能力高的Dreamweaver用户可以对这些文件进行编辑,从而定制Dreamweaver。下面是一个用户通过编辑一个名叫menus.xmlXML文件来改变Dreamweaver默认的快捷键设置

 

一般通用软件也是喜欢采用XML技术。在你的PC机、Mac计算机或者PDA上的个人信息管理软件可以读写XML信息,也通过第三方的产品比如Palm Pilot上的Ælfred XML解析器(www.xml.com/pub/r/216)来处理。当一个数码相机在一张照片上记录拍摄时间、照片大小、文件大小和其他类似信息的时候,很有可能就是采取XML来记录这些数据。当你的父亲通过电子邮件给你发送了一个7MB的度假照片集,日落时刻的美丽照片很可能采用的就是XML格式。

甚至在一些惹人喜爱的图像处理软件也能处理XML格式(比如Apple iPhoto,如图4.5所示)。当你打印一张小奥斯卡第一次遇见小狗的时候的照片,小奥斯卡涨红的脸颊,以及小狗明亮的眼睛表现得非常真实,这些都要归功于Macintosh OS X操作系统中保存在XML数据中的打印设置。

   图4.5用户界面友好的iPhoto软件(www. apple.com/iphoto/),是AppleOS X操作系统中的一个免费组件,它通过XML来组织图像库数据,记住打印设置及其他信息

4.1.4  MTV更流行

为什么XML能发挥这么多不同的计算机厂商的想像力并且把它运用到他们的产品中呢?因为XML由各种标准化的特性组成:可扩展性(个性化定制能力)、可移植性(把数据从一种格式转化到另外一种格式的能力),以及在XML应用程序或者基于XML的软件产品和其他同类程序之间进行相对无缝的数据交换 能力。

作为一种不受到专利和版权限制的开放标准,XML扫除了过时的、私有的、不被广泛接受并且成本高昂的格式。如果你在你的软件中集成了XML或者创造自己的基于XML的个性化语言,W3C并不会让你支付任何的费用。不仅如此,接受XML就像病毒传播一样,越多的厂商发现XML的好处,就越能加速XML向其他厂商的传播,就越容易能在一个厂商和另外一个厂商的产品之间进行数据传输。

另外,可以想像XML的工作方式。过去如果你能从一个程序中导出用tab字符分开的文本,并且导入到另外一个程序中(一般都会丢失一些信息和进行手工重新排版),办公室的同事一定会以你为偶像。现在,XML能帮助厂商创造出让用户更好协同工作的软件产品,并且更加灵巧而不会让用户感到困难。用户是会很乐意掏出钱包来购买的!

不是万能药,但能电视中使用

然而XML并不是解决任何软件问题的万能药。比如一个JPEG图片的数据在二进制格式下能比XML文本格式得到更好的压缩比例。虽然大多数专业软件和大众软件采用XML,并且数量还不断增长,但我们并不是说市场上任何的软件都是采用XML的。不管实现上是否有缺陷,XML还是改变了软件工业。

即使是那些不支持XML的软件作者们也相信他们的软件最终将会支持XML。在20024月,惨淡的销售和破碎的中间件市场令人悲哀,在iTV标准协会(iTV Production Standards Initiative)的规范下,一个由交互电视和技术提供商组成的组织成立了。这个组织的任务是:展示和支持一个基于XML的标准,从而“允许制片人可以一次编写交互式内容,并且能发送到所有的机顶盒和所有的PC平台上去”(www.allnetdevices.com/developer/news/2002/04 /09/itv_firms.html)。

听起来很熟悉?这个正是Web标准组织在20世纪90年代中后期浏览器大战中倡导的W3C标准。

4.1.5  选择XML的五个因素

Web上,工作在大型的协作或者特定的系统上的IT专业人员、开发者和内容专家,越来越多地选择XML作为数据格式。因为有五个因素而选择了XML,其中许多在前面的讨论中都已经提到了:

类似ASCII文本文件,XML是一个单一的、通用的文件格式用来和其他系统进行交互

不像ASCII文本文件(或者HTML),XML是一种智能的、同一的格式。XML不仅保存数据,它还可以保存数据的数据(元数据),易于检索和用于其他功能。

 XML是一种扩展性语言,容易定制以应用于任何协会、公司或者商业及其他领域,通过派生的其他基于XML的语言,可以应用并处理特定任务,比如数据同步或者Web服务的传递。

 XML基于如下规则:它要保证数据传输到其他数据库,转化成其他格式或者被其他XML应用程序处理中的一致性。

通过附加的XML协议和基于XML的帮助语言,从要出版的Web页面到年度报告,XML数据可以自动地转化成各种各样的数据格式。在XML出现之前,这样强大的功能对于开发者来说都只是一个梦。没有人能怀疑XML可以轻松地提高效率。

4.1.6  创造力的宝藏

下面的四个例子和课程,它们会揭示XMLWeb上受欢迎的深度,以及用图例展现XML派生的语言和协议是如何解决那些曾使最聪明的开发人员都感到沮丧的问题的。

扩展样式语言转化语言XSLTwww.w3.org/TR/xslt

这种基于XML的标记语言可以提取和排序XML数据,格式化为HTML或者XHTML,且可以立即给用户提供在线浏览。如果你愿意,XSLT还可以把你的数据转化成PDF文件或者文本文件,或者用来产生一个用可扩展向量图像语言格式(SVG)渲染的可持续更新的图表或者类似的商业图像。XSLT甚至可以同时处理这些事情。如果想看看一个简单的教程,可以参阅J. David Eisenberg的“使用XML”教程(www.alistapart.com/stories/usingxml/)。

资源描述框架RDFwww.w3.org/RDF/

这种基于XML的语言为应用程序在Web上交换数据元提供了一致性的架构。从实用角度来说,RDF集成了库分类和目录,将新闻、软件和其他各种内容收集和集成,并方便不同的集合之间通信和共享(例如个人照片和音乐收藏)。RDF的功能还在于它能驱动软件。如果你刚好在你的计算机上安装有Mozilla浏览器,打开它的文件夹进行查看。你会发现RDF文件(还有CSS文件),它们用来帮助浏览器实现它的功能。特别的是,在文件夹进行查找,每个配置文件都有自己基于XML的文件的设置。

丰富站点摘要RSShttp://backend.userland.com/rss092

丰富站点摘要(Rich Site Summary)是一个轻量级的XML框架,它用来描述一个Web站点,最早是由Dan Libby开发,用来组装AOL/Netscape的“我的Netscape”门户程序的。当在20014月份AOL对它失去兴趣后,Dave WinerUserLand 软件公司推动了这个规范继续前进。现在,RSS已经被成千上万的网站所使用,使它成为了在Web上最被广泛接受的XML格式(如图4.6所示)。

XML-RPCwww.xmlrpc.com

另外一个UserLand软件公司的创新就是XML-RPC,它是一个规范,使运行在完全不同的操作系统或者不同的环境中运行的进程能够通过Internet进行调用。除此之外,XML-RPC还可以用来在Web发布工具中进行站点的自动化管理。

                      

   图4.6Splorp.com上的网络日志和个人期刊,提供了一个XML RSS,从而能够使这个站点的内容非常容易地被其他站点同步(www. splorp.com

Web发布工具

正如这个简短的调查所显示的一样,本章先前讨论的一些基于XML的软件产品价格昂贵,而基于XML的语言对聪明的开发者却是免费的。因此,这些开发者经常会为设计师、开发者和作者们提供符合他们需求的新产品。

个人发布工具,比如Movable Typewww.movabletype.org)可以让那些不太懂技术的发布人员和HTML专家一样方便地管理网站杂志、新闻站点  Web网志。Movable Type使用了XML-RPC来进行方便的站点管理,用XML RSS来自动进行同步及分发内容到其他具备XML能力的站点,如图4.7所示。Movable Type给它的用户提供了极其强大的内容发布功能,而正是XML赋予了它生命力。

                         

   图4.7Movable Type是一个方便的Web发布工具,使用了XML来衍生出站点管理,以及使内容能让那些同样采用XML技术的站点所用(www.movabletype.org

Movable Type只不过是众多采用XML来管理和同步内容的网站发布产品中的一个。其他产品还包括RadioUserLand,如图4.8所示,UserLandFrontier站点(http://frontier.userland.com/)和Pyra SoftwareBlogger站点(www.blogger.com)。这些产品持续的发展和普及,使那些个人(包括错过了第一次Web“革命”的人们)能方便地在线上分享他们想法和乐趣,从而掀起了第二次Web浪潮。

   

  图4.8Radio UserLandhttp:// radio.userland.com/)使用类似SOAPXML技术来“抛弃所有Web发布问题的争论,让您专注于写作、发布图片和链接到您喜欢的站点”

因此,随着个人发布工具的传播,XML就不仅仅被那些资深的开发人员使用,而且也被那些从来没听过XML标准或者不会书写XML文档(有时候甚至连HTML也不会)的人应用来完成他们的工作。

Flash MX使用XML来导入、导出数据并且基于XML工作,因此能够和Macromedia的私有的、有创造性能力的、被广泛使用的设计工具交换标准数据而获益。开发人员可以使用同样的XML数据来驱动一个站点的Flash和非Flash版本,从而能够更好地使用资源,节省时间和费用。

4.1.8  听候您的吩咐

XML的逻辑性也促进了整个Web服务市场的形成。基于XML的简单对象访问协议(SOAP)(www.develop.com/soap/),使得在分布式、平台独立的网络环境中交换数据、访问服务、对象和服务器、编码、解码,以及消息的处理变得非常便利。XML的强大能力使得SOAP能够不用考虑多个平台和产品间的复杂性。

SOAP只是在急速增长的Web服务(www.w3.org/2002/ws/)领域中的一个协议,一些大公司急切希望能够拥有它,如IBMwww-106.ibm.com/ developerworks/webservices/)和Microsoftwww.microsoft.com/ net/)。规模小的、独立的和开放源码的开发者们提供了一些与之竞争的分布式Web服务软件,但没有哪个公司能够占明显优势。David Rosam定义Web服务如下:

Web服务由基于XML的可重用的软件组成,并且相关的协议可以使商业系统以接近零成本进行交互。它们可以用来在Internet上为你的客户、提供商及合作伙伴提供快速构建低成本的应用集成。

[原文:www.dangerous-thinking.com/stories/2002/02/16/Web -ServicesDefined.html]

XML驱动着大部分的Web服务的协议,它内置的强大交互能力是实现这样服务的主要原因。只要XML对所有人都是免费的,那就没有任何理由让任何公司(不论它有多大和多强大)垄断这个领域。Web发布工具

正如这个简短的调查所显示的一样,本章先前讨论的一些基于XML的软件产品价格昂贵,而基于XML的语言对聪明的开发者却是免费的。因此,这些开发者经常会为设计师、开发者和作者们提供符合他们需求的新产品。

 


发表评论| 收藏此页到365Key
相关讨论

    没有评论        
焦延伍介绍

焦延伍 网络是我生活的第二空间……

焦延伍更新

本站更新

本站焦点

焦延伍归档

>>More
关于我们 [English] | 合作联系 | 版权信息 | 聚会相册 | 友情连接 | 使用指南
Copyright (C) 2000-2005 DoNews.COM ( IT社区&媒体平台 )
All Rights reserved.