譯/桂浮云,2020年2月13日
原文鏈接:http://officeopenxml.com/index.php
Office Open XML(亦稱OpenXML或OOXML),是基于XML格式的office文檔,包括文字處理、電子表格、演示文檔等,以及圖表、示意圖、形狀和其他圖形素材。該標(biāo)準(zhǔn)由Microsoft研發(fā),并于2006年被ECMA國(guó)際組織接納為ECMA-376。第二版標(biāo)準(zhǔn)發(fā)布于2008年12月,第三版發(fā)布于2011年6月。此標(biāo)準(zhǔn)已被ISO和IEC接納為ISO/IEC 29500。
意識(shí)到OOXML(Open Office XML)與ODF(Open Document Format)并不相同,是非常重要的。ODF(Open Document Format)標(biāo)準(zhǔn)是構(gòu)成OpenOffice.org和其他開(kāi)源Office軟件的基礎(chǔ)。從某種意義上講,Open Office XML、Open Office XML,或者Open Document Format是關(guān)于Office文檔的競(jìng)爭(zhēng)標(biāo)準(zhǔn)。
盡管較早的二進(jìn)制格式(.doc, .xls和.ppt)仍然為Microsoft支持,但現(xiàn)在OOXML才是Microsft Office 文檔(.docx, .xlsx和.pptx)的默認(rèn)格式。
OOXML具體說(shuō)明范圍
標(biāo)記規(guī)范
ECMA-376 針對(duì)三種主要的Office文檔類型規(guī)定了三種不同的規(guī)范,其中:文字處理規(guī)范為WordproccessingML,電子表格規(guī)范為SpreedsheetML,演示文檔規(guī)范為PresentationML。同時(shí),還提供對(duì)繪制規(guī)范DrawingML(包括繪圖、形狀、圖表等)等其他重要規(guī)范的支持和說(shuō)明。
本規(guī)范包括XML書(shū)寫(xiě)模式(schema)和約束(constrain)。任何符合規(guī)范的文檔都必須遵從XML模式(schema),并以UTF-8或UTF-16進(jìn)行編碼。本規(guī)范確定包含某些擴(kuò)展機(jī)制,以允許自定義XML可以與OOXML標(biāo)記一同存儲(chǔ)。
文件打包規(guī)范
標(biāo)記語(yǔ)言規(guī)范之外,ECMA-376的第二部分規(guī)定了開(kāi)放打包約定(Open Packaging Conventions, OPC)。OPC借用了普通Zip打包技術(shù),將若干文件組合在一個(gè)普通Zip包內(nèi)。所以,OOXML文件就是一個(gè)容納有不同XML文件(譯者注:對(duì)于整個(gè)OOXML文件而言,也是其中的一個(gè)part),并以某種形式組織在一起的單獨(dú)的Zip壓縮包。這種分解或組合有利于簡(jiǎn)單快速訪問(wèn)數(shù)據(jù),并降低了數(shù)據(jù)訪問(wèn)沖突機(jī)會(huì)。OOXML文件中的片段(part),可以包含任意類型的數(shù)據(jù);為了保留每個(gè)片段(part)的數(shù)據(jù)類型,而不是僅僅依賴于片段(part)文件的擴(kuò)展名,每個(gè)片段(part)文件的類型在OOXML文件包(package)內(nèi)的[Content_Types].xml文件內(nèi)進(jìn)行了聲明。而包(package)與片段(part)的關(guān)系(relationship),以及片段(part)與片段(part)的關(guān)系(relationship)——任意一個(gè)片段(part)都可能從其他片段文件(part)中提取數(shù)據(jù)而抽象出(引用)關(guān)系,將分別存儲(chǔ)在單獨(dú)的關(guān)系(relationship)文件中,也就是說(shuō),一個(gè)關(guān)系文件用來(lái)描述包的整體關(guān)系,其他的用來(lái)儲(chǔ)存那些存在關(guān)系的包之間的聯(lián)系。這種方式的引用關(guān)系僅會(huì)存儲(chǔ)一次,所以,必要時(shí)也容易更換。