世界跨入21世纪,迎接我们的是势不可挡的知识经济浪潮。最近一段时间里,世界万维网联盟W3C的XML(Extensible
Markup Language)和微软公司不久前发布的Visual Studio.Net以及即将到来的3G无线网络、IPV6共同掀起一浪比一浪高的热潮。新的信息革命的时代已经到来,很多组织和公司都在致力于与web技术有关的开发和标准制定工作。为了能够跟上时代的步伐,当今的软件工作者,特别是web开发人员应该不断追踪这些技术,以期在风起云涌得技术更新浪潮中处于有利地位。作为一个现代的印刷工作者要十分清楚计算机技术对印刷业有着极其深刻
的影响力,最近几次的印刷技术更新换代都是信息革命直接造成的。在这个大环境下,本课题有两点是需要肯定的:第一,XML肯定是未来的发展趋势,不论是网络程序员还是印刷出版工作者,都应该及时学习和了解,等待只会让你失去机会;第二,新知识肯定会有很多新概念,尝试理解和接受,您才可能提高。不要害怕和逃避,毕竟我们还年轻。
本课题共分三大部分。第1部分为XML及相关基础技术的概述,第2部分是与印刷密切相关的基于XML技术的新图象格式SVG可扩展矢量图形规范(Scalable
Vector Graphics),第3部分是基于XML技术的个性化印刷置标语言PPML(Personalized Print Markup Language)。本课题从普通印刷工作者的角度,用平实生动的语言,讲述XML的方方面面,拨开XML的神秘面纱,快速步入XML的新领域,尤其是应用于现代印刷的全新天地。
二、XML的定义
W3C的XML工作组于1996年开发了XML(Extensible
Markup Language)可扩展性标识语言,XML设计到标准通用标记语言SGML(Stand Generation Mark Language).XML
是一种用于数据交换的开放技术(也就是说它是免费的),受到广泛欢迎和支持。
XML文档只包含数据不包括格式指令,因此处理这种文档的应用持续不必许决定如何显示文档的数据。实际上,XML允许文档作者为任何类型的信息创建标记。这一可伸缩性使文档作者能为了描述特定类型的数据(包括印刷置标、数学公式、化学公式、音乐、医生处方、无线网络等)而创建全新的标记语言。一些基于XML的标记语言包括XHTML(用于对HTML扩展)、MathML(用于数学)、CML(用于化学)、VoiceML(用于语音)、XBRL(用于金融数据交换)、PPML(用于印刷)、WML(用于无线通信)。
正如HTML一样,可扩展置标语言XML(eXtensible
Markup Language)也是一种置标语言。它同样依赖于描述一定规则的标签和能够读懂这些标签的应用处理工具来发挥它的强大功能。这一点,从XML的命名上也可窥见一斑。
“关于此规范的正确题目,亦即XML的正确全名,应该是Extensible
Markup Language, eXtensible Markup Language只不过是一个拼写错误罢了。但是,现在简写XML不仅正确,而且正如它在本规范的标题中一样,是Extensible
Markup Language的官方名称。
这个名称和简写是由James Clark最先提出的,其它可供选择的名称还包括小型标准置标语言MGML (Minimal Generalized
Markup Language), 标准置标语言的小型结构MAGMA (Minimal Architecture For Generalized Markup
Applications), 以及互联网置标结构语言SLIM (Structured Language for Internet Markup)。从对XML的最初命名可以看出,XML的核心归根结底还是置标。不过,XML这个置标语言可比HTML的功能要强大的多了。“人”如其名,XML的强大功能来自于“X”。也就是说,XML不但是置标语言,而且是可扩展的(eXtensible)置标语言。XML并非像HTML那样,提供了一组事先已经定义好了的标签,而是提供了一个标准,利用这个标准,你可以根据实际需要定义自己的新的置标语言,并为你的这个置标语言规定它特有的一套标签。准确的说,XML是一种源置标语言,它允许你根据它所提供的规则,制定各种各样的置标语言。这也正是XML语言制定之初的目标所在。
三、XML的机制
“XML的制定目标为:XML应该可以在互联网上直接使用。XML应该支持各种不同的应用方式(*不但包括浏览,还包括对内容的分析)。XML应该与SGML兼容,我们会讲到,SGML是XML的直接先驱)。处理XML文件的应用程序应该容易编写。
有了HTML,为什么还需要用XML? 因为现在网络应用越来越广泛,仅仅靠HTML单一文件类型来处理千变万化的文档和数据已经力不丛心,而且HTML本身语法十分不严密,严重影响网络信息传送和共享。(想想浏览器兼容的问题伤透多少设计师的脑细胞啊。)人们早已经开始探讨用什么方法来满足网络上各种应用的需要。使用SGML是可以的,但SGML太庞大,编程复杂,于是最终选择了"减肥"的SGML---XML作为下一代web运用的数据传输和交互的工具。
XML和HTML都来自于SGML,它们都含有标记,有着相似的语法,HTML和XML的最大区别在于:HTML是一个定型的标记语言,它用固有的标记来描述,显示网页内容。比如<H1>表示首行标题,有固定的尺寸。相对的,XML则没有固定的标记,XML不能描述网页具体的外观,内容,它只是描述内容的数据形式和结构。
我们看上面的例子,在myfile.htm中,我们只关心页面的显示方式,我们可以设计不同的界面,用不同的方式来排版页面,但数据是储存在myfile.xml中,不需要任何改变。
正是这种区别使得XML在网络应用和信息共享上方便,高效,可扩展。所以我们相信,XML做为一种先进的数据处理方法,将使网络跨越到一个新的境界。
作者: 唐泽勇[Jazz Wind]
日期: 公元2003年12月21日
