啥叫OOXML

译/桂浮云,2020年2月13日

原文链接:http://officeopenxml.com/index.php

Office Open XML(亦称OpenXML或OOXML),是基于XML格式的office文档,包括文字处理、电子表格、演示文档等,以及图表、示意图、形状和其他图形素材。该标准由Microsoft研发,并于2006年被ECMA国际组织接纳为ECMA-376。第二版标准发布于2008年12月,第三版发布于2011年6月。此标准已被ISO和IEC接纳为ISO/IEC 29500。

意识到OOXML(Open Office XML)与ODF(Open Document Format)并不相同,是非常重要的。ODF(Open Document Format)标准是构成OpenOffice.org和其他开源Office软件的基础。从某种意义上讲,Open Office XML、Open Office XML,或者Open Document Format是关于Office文档的竞争标准。

尽管较早的二进制格式(.doc, .xls和.ppt)仍然为Microsoft支持,但现在OOXML才是Microsft Office 文档(.docx, .xlsx和.pptx)的默认格式。

OOXML具体说明范围

标记规范

ECMA-376 针对三种主要的Office文档类型规定了三种不同的规范,其中:文字处理规范为WordproccessingML,电子表格规范为SpreedsheetML,演示文档规范为PresentationML。同时,还提供对绘制规范DrawingML(包括绘图、形状、图表等)等其他重要规范的支持和说明。

本规范包括XML书写模式(schema)和约束(constrain)。任何符合规范的文档都必须遵从XML模式(schema),并以UTF-8或UTF-16进行编码。本规范确定包含某些扩展机制,以允许自定义XML可以与OOXML标记一同存储。

文件打包规范

标记语言规范之外,ECMA-376的第二部分规定了开放打包约定(Open Packaging Conventions, OPC)。OPC借用了普通Zip打包技术,将若干文件组合在一个普通Zip包内。所以,OOXML文件就是一个容纳有不同XML文件(译者注:对于整个OOXML文件而言,也是其中的一个part),并以某种形式组织在一起的单独的Zip压缩包。这种分解或组合有利于简单快速访问数据,并降低了数据访问冲突机会。OOXML文件中的片段(part),可以包含任意类型的数据;为了保留每个片段(part)的数据类型,而不是仅仅依赖于片段(part)文件的扩展名,每个片段(part)文件的类型在OOXML文件包(package)内的[Content_Types].xml文件内进行了声明。而包(package)与片段(part)的关系(relationship),以及片段(part)与片段(part)的关系(relationship)——任意一个片段(part)都可能从其他片段文件(part)中提取数据而抽象出(引用)关系,将分别存储在单独的关系(relationship)文件中,也就是说,一个关系文件用来描述包的整体关系,其他的用来储存那些存在关系的包之间的联系。这种方式的引用关系仅会存储一次,所以,必要时也容易更换。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 取证类题目 在CTF中,取证赛题包括了文件分析、隐写、内存镜像分析和流量抓包分析。任何要求检查一个静态数据文件(与...
    查无此人asdasd阅读 1,421评论 0 2
  • 文/桂浮云,2020年2月12日 参考文献:ECMA 376(第五版) Office Open XML格式的.do...
    桂浮云阅读 2,968评论 0 1
  • 我把生活过成了诗 不想有标点 不想有结局 而你总是触碰我内心的温柔 我只想,只想闻着自然的味道 让自己如花一样绽放...
    夜未央com阅读 217评论 0 4
  • 绍兴姑娘唱的是:“越思越想越啦懊呃悔啊啊!”稳妥的拍子。汝良突然省悟了:绍兴戏听众的世界是一个稳妥的世界——不稳的...
    秦何意阅读 608评论 0 1
  • 今儿个阿城跟阿言吐槽公司那些破事。 阿城:一个小科长开会,要开到晚上十点,他装个什么逼! 阿言:淡定,生活不就是这...
    乌鸦会说话阅读 257评论 0 0