论文部分内容阅读
利用新版本微软Office以及Open Office的文件格式可以创建出更多跨程序兼容性的Office文档,本文对此进行了介绍。
更小、更兼容,更安全,这是新一代Office文件的主要目的。以后,所有主要的办公软件开发商都会准备使用基于XML的文件格式。尽管如此,目前依然没有迹象表明会出现一个标准格式。
目前已经有多种互相竞争的对手:由IBM、Sun(Star Office)以及Openoffice.org推荐的Open Document格式,以及由微软开发的另一种形式的XML格式。Office 2007可以读写微软自己的Open XML文件,但是默认情况下并不能支持Open Document格式。微软最近的政策有些松动,表示自己正在进行一项有关Open XML转换器的项目,这个项目可以让开发者在相关的格式之间创建一座桥梁。
虽然文档格式之间的竞争就好像战争一样激烈,不过实际上双方在技术上是很相似的。每一种文件类型都有一个用XML(eXtensible Markup Language,可扩展标记语言)写成的通用基础(common basis)。所有的文字性文档内容,例如描述、文字或者表格都被存储在一个XML文件中,所有其他文档元素,例如图片或者OLE(Object Linking and Embedding,对象链接与嵌入)或VBA(Visual Basic for Applications,VB应用程序)对象和文字内容是严格隔离起来的。
组成文档的其他XML文件还可以保存有关文档的模板、定义、注释、链接到文档资源的路径、作者、字符数等额外的信息(元数据)。
开放的思想
不管是Open Document还是Open XML,所有组成文档的部件都是用Zip文件作为容器打包在一起并供用户使用的。这两种类型的文件都使用了压缩文件格式,这样可以减少文件占用的硬盘空间。
XML很小巧,这也使得文件变得很小巧。插入文档的图片文件会在保存文件的时候被转换成节省空间的格式,然后被无损压缩的Zip技术进一步减小文件体积。在我们的测试中,使用这种新格式保存的文件和原始文件相比体积减小了50%到90%。
通过使用CRC(Cyclic Redundancy Check,循环冗余检查)校验,这种格式还能保证更好的文件完整性。这种功能和Zip压缩技术中的算法类似,可以检查打包后文件中每一个文件的完整性。CRC校验对文件中数据哪怕很小的变化都可以检测到,就算Zip压缩包中有一部分被损坏,你依然可以顺利读出其余的数据。
一旦使用Star Office(选择保存为Open Document Text格式)保存了一个文档,或者使用Microsoft Word 2007(使用docx,Word Open XML格式)保存了一个文档,你就可以信任这个文件的安全性,因为有相关的算法对安全性进行检查。独立的数据存储、压缩和CRC校验都有各自的好处。
因为Windows本身就带有解压缩功能,使用Zip压缩格式就更合理了。如果不需要特殊软件就想读取这样的文件,只要将文档的扩展名由Odt或Docx改为Zip,你就可以在Windows资源管理器或者兼容Zip格式的解压缩软件,例如PKZip中像查看压缩文件的内容那样查看其中包含的数据了。
至于Openoffice.org,所有文字信息都被保存成了一个纯粹的XML文件。你可以使用复制和粘贴功能将这些内容移动到其他程序,例如其他文字编辑器中,而不用在计算机中安装这套软件的Writer组件。通过使用PHP脚本以及PCLzip(www.phpconcept.net/pclzip)的加载项,我们还可以从大量文档中自动解压缩其内容。
直接利用Office文件中全部或者部分组件的可能性,对那些需要处理来自文件管理系统中的数据的企业,提供了很大的吸引力,而XML则可以简化这一处理过程。
数据完整性
Open Document和微软的Open XML格式的差别在于文件组件的差异:Open Document格式会把所有内容、文字、页眉也放在一个文件中,而微软的Open XML格式也会把这些数据放在主要的XML文件中,不过Word 2007会使用Document.XML作为名称将这些数据保存在Docx容器中。这个Docx文件还会包含诸如Header.XML、Footnotes.XML以及Endnotes.XML等文件,只不过这些文件中只包含脚注或页眉等信息。
在用户看来,这些文件格式之间的差别可能会产生其他后果。不完整的,或者只载入了一部分的新一代文件中,类似插入的图片等内容可能会丢失,而文字则可能完全正常。这样从部分损坏的文件中恢复数据就容易多了。尤其是微软的Open XML,因为内容和格式是严格分离的,在这方面做得要比Open Document更好。
在Open Document中,对格式的定义是保存在一起的,而且对硬盘空间的占用也要比Open XML更少。因此,一般情况下,Open XML文件的体积要比同内容的Open Document文件大二到三倍。
软件开发商正在通过不同方式在自己的办公软件套装中实现这种文件格式。在Open Document派系中,包括Openoffice.org的开发商,以及Koffice、Sun、Novell、Oracle和IBM,默认情况下都使用了这种Odt格式,但依然允许保存成老格式,并允许修改默认的保存选项。例如Openoffice.org的组件Writer,默认的保存格式是Odt而非Doc。在Office 2007以及Open XML上也有类似的情况:XML是默认的格式,但是运行在兼容模式下的Word、Excel以及Powerpoint都可以读取和保存老格式的文件。
为了让老版本微软程序的用户可以打开Open XML文件,Office 2007正式发布时还同时提供了转换工具。Office 2000、XP以及2003的用户就都可以读取和保存Open XML文档了。
虽然微软承诺免费提供Open XML标准,和Open document相比这个标准还是有些表面上的区别。使用这种标准的要求已经公布,方便开发人员在自己的产品中集成这类功能。标准化组织OASIS(Organization for the Advancement of Structured Information Standards,结构化信息标准促进组织)也不对这一标准收费。
Open Document免费工具
Open Document标准的功能还可以用在其他方面,目前已经出现的很多工具显示了以后应用程序的潜力。例如Open Document Converter(AODC)转换器可以将Open Document文件转换成HTML页面,ODF Reader可以在Firefox 1.5的窗口中显示Open Document的内容,依然在开发的Open Open Office(O3)插件则可以让微软Office的用户处理Open Document文件。
虽然看起来在Open Document和Open XML格式之间会有一场战争,不过最终的胜者还是用户,以及这些文件的通用基础—XML,这意味着以后在使用Office文档的时候会有更多跨程序特性供我们使用。
更小、更兼容,更安全,这是新一代Office文件的主要目的。以后,所有主要的办公软件开发商都会准备使用基于XML的文件格式。尽管如此,目前依然没有迹象表明会出现一个标准格式。
目前已经有多种互相竞争的对手:由IBM、Sun(Star Office)以及Openoffice.org推荐的Open Document格式,以及由微软开发的另一种形式的XML格式。Office 2007可以读写微软自己的Open XML文件,但是默认情况下并不能支持Open Document格式。微软最近的政策有些松动,表示自己正在进行一项有关Open XML转换器的项目,这个项目可以让开发者在相关的格式之间创建一座桥梁。
虽然文档格式之间的竞争就好像战争一样激烈,不过实际上双方在技术上是很相似的。每一种文件类型都有一个用XML(eXtensible Markup Language,可扩展标记语言)写成的通用基础(common basis)。所有的文字性文档内容,例如描述、文字或者表格都被存储在一个XML文件中,所有其他文档元素,例如图片或者OLE(Object Linking and Embedding,对象链接与嵌入)或VBA(Visual Basic for Applications,VB应用程序)对象和文字内容是严格隔离起来的。
组成文档的其他XML文件还可以保存有关文档的模板、定义、注释、链接到文档资源的路径、作者、字符数等额外的信息(元数据)。
开放的思想
不管是Open Document还是Open XML,所有组成文档的部件都是用Zip文件作为容器打包在一起并供用户使用的。这两种类型的文件都使用了压缩文件格式,这样可以减少文件占用的硬盘空间。
XML很小巧,这也使得文件变得很小巧。插入文档的图片文件会在保存文件的时候被转换成节省空间的格式,然后被无损压缩的Zip技术进一步减小文件体积。在我们的测试中,使用这种新格式保存的文件和原始文件相比体积减小了50%到90%。
通过使用CRC(Cyclic Redundancy Check,循环冗余检查)校验,这种格式还能保证更好的文件完整性。这种功能和Zip压缩技术中的算法类似,可以检查打包后文件中每一个文件的完整性。CRC校验对文件中数据哪怕很小的变化都可以检测到,就算Zip压缩包中有一部分被损坏,你依然可以顺利读出其余的数据。
一旦使用Star Office(选择保存为Open Document Text格式)保存了一个文档,或者使用Microsoft Word 2007(使用docx,Word Open XML格式)保存了一个文档,你就可以信任这个文件的安全性,因为有相关的算法对安全性进行检查。独立的数据存储、压缩和CRC校验都有各自的好处。
因为Windows本身就带有解压缩功能,使用Zip压缩格式就更合理了。如果不需要特殊软件就想读取这样的文件,只要将文档的扩展名由Odt或Docx改为Zip,你就可以在Windows资源管理器或者兼容Zip格式的解压缩软件,例如PKZip中像查看压缩文件的内容那样查看其中包含的数据了。
至于Openoffice.org,所有文字信息都被保存成了一个纯粹的XML文件。你可以使用复制和粘贴功能将这些内容移动到其他程序,例如其他文字编辑器中,而不用在计算机中安装这套软件的Writer组件。通过使用PHP脚本以及PCLzip(www.phpconcept.net/pclzip)的加载项,我们还可以从大量文档中自动解压缩其内容。
直接利用Office文件中全部或者部分组件的可能性,对那些需要处理来自文件管理系统中的数据的企业,提供了很大的吸引力,而XML则可以简化这一处理过程。
数据完整性
Open Document和微软的Open XML格式的差别在于文件组件的差异:Open Document格式会把所有内容、文字、页眉也放在一个文件中,而微软的Open XML格式也会把这些数据放在主要的XML文件中,不过Word 2007会使用Document.XML作为名称将这些数据保存在Docx容器中。这个Docx文件还会包含诸如Header.XML、Footnotes.XML以及Endnotes.XML等文件,只不过这些文件中只包含脚注或页眉等信息。
在用户看来,这些文件格式之间的差别可能会产生其他后果。不完整的,或者只载入了一部分的新一代文件中,类似插入的图片等内容可能会丢失,而文字则可能完全正常。这样从部分损坏的文件中恢复数据就容易多了。尤其是微软的Open XML,因为内容和格式是严格分离的,在这方面做得要比Open Document更好。
在Open Document中,对格式的定义是保存在一起的,而且对硬盘空间的占用也要比Open XML更少。因此,一般情况下,Open XML文件的体积要比同内容的Open Document文件大二到三倍。
软件开发商正在通过不同方式在自己的办公软件套装中实现这种文件格式。在Open Document派系中,包括Openoffice.org的开发商,以及Koffice、Sun、Novell、Oracle和IBM,默认情况下都使用了这种Odt格式,但依然允许保存成老格式,并允许修改默认的保存选项。例如Openoffice.org的组件Writer,默认的保存格式是Odt而非Doc。在Office 2007以及Open XML上也有类似的情况:XML是默认的格式,但是运行在兼容模式下的Word、Excel以及Powerpoint都可以读取和保存老格式的文件。
为了让老版本微软程序的用户可以打开Open XML文件,Office 2007正式发布时还同时提供了转换工具。Office 2000、XP以及2003的用户就都可以读取和保存Open XML文档了。
虽然微软承诺免费提供Open XML标准,和Open document相比这个标准还是有些表面上的区别。使用这种标准的要求已经公布,方便开发人员在自己的产品中集成这类功能。标准化组织OASIS(Organization for the Advancement of Structured Information Standards,结构化信息标准促进组织)也不对这一标准收费。
Open Document免费工具
Open Document标准的功能还可以用在其他方面,目前已经出现的很多工具显示了以后应用程序的潜力。例如Open Document Converter(AODC)转换器可以将Open Document文件转换成HTML页面,ODF Reader可以在Firefox 1.5的窗口中显示Open Document的内容,依然在开发的Open Open Office(O3)插件则可以让微软Office的用户处理Open Document文件。
虽然看起来在Open Document和Open XML格式之间会有一场战争,不过最终的胜者还是用户,以及这些文件的通用基础—XML,这意味着以后在使用Office文档的时候会有更多跨程序特性供我们使用。