| 8月22日下午,共創(chuàng)軟件聯(lián)盟向新浪科技發(fā)來《關(guān)于微軟OOXML技術(shù)問題的初步總結(jié)》的書面報(bào)告,該報(bào)告具體闡述了共創(chuàng)軟件聯(lián)盟公開反對OOXML成為國際標(biāo)準(zhǔn)的理由,并指出微軟文檔格式標(biāo)準(zhǔn)OOXML有20大技術(shù)問題。
據(jù)悉,上述20大技術(shù)問題共分六大類,是共創(chuàng)軟件聯(lián)盟專家及辦公軟件工作組在羅列、歸納、整理開源社區(qū)及互聯(lián)網(wǎng)上各種版本的有關(guān)OOXML的技術(shù)問題研究報(bào)告基礎(chǔ)上,并對一些重要的技術(shù)問題進(jìn)行了嚴(yán)謹(jǐn)?shù)奈墨I(xiàn)驗(yàn)證后歸納出來的。
以下為《關(guān)于微軟OOXML技術(shù)問題的初步總結(jié)》全文:
鑒于微軟OOXML(在ISO提案的編號(hào)為DIS29500)的技術(shù)規(guī)范文本長達(dá)6000頁,任何人甚至一個(gè)組織要對其進(jìn)行詳細(xì)的研究在短時(shí)間內(nèi)都是不可能的任務(wù)。然而在開源社區(qū)和互聯(lián)網(wǎng)世界里,許多技術(shù)性的研究都可以互相共享。
近期,共創(chuàng)軟件聯(lián)盟專家及辦公軟件工作組在羅列、歸納、整理開源社區(qū)及互聯(lián)網(wǎng)上各種版本的有關(guān)OOXML的技術(shù)問題研究報(bào)告基礎(chǔ)上,對一些重要的技術(shù)問題進(jìn)行了嚴(yán)謹(jǐn)?shù)奈墨I(xiàn)驗(yàn)證,初步把OOXML的技術(shù)問題歸結(jié)為六個(gè)大類,并列出了其中相關(guān)的二十個(gè)主要問題。這些問題的歸納、總結(jié)基本明確了為什么共創(chuàng)軟件聯(lián)盟要公開表明反對OOXML成為國際標(biāo)準(zhǔn)的理由。
OOXML六大類技術(shù)問題如下:
一、OOXML 標(biāo)準(zhǔn)并沒有實(shí)現(xiàn)其開放微軟Doc文檔格式的承諾,也就是說并不是所有人都能夠通過OOXML實(shí)現(xiàn)一個(gè)開放的文檔格式,這種開放性只掌握在微軟手中。業(yè)界希望微軟能夠?qū)⒔⑵?Doc文檔與OOXML之間的映射關(guān)系,以實(shí)現(xiàn)文檔的真正開放;
二、OOXML包含大量沒有詳細(xì)定義的技術(shù)指標(biāo)和私有技術(shù),這些私有技術(shù)只有在微軟的Window 平臺(tái)上實(shí)現(xiàn),而無法在其他開源操作系統(tǒng)之上實(shí)現(xiàn);
三、OOXML并沒有引用現(xiàn)有的國際標(biāo)準(zhǔn)實(shí)現(xiàn)現(xiàn)有的通用功能,卻使用其自身定義的私有標(biāo)準(zhǔn)來實(shí)現(xiàn)。這不符合定義標(biāo)準(zhǔn)的慣例。相反OOXML 標(biāo)準(zhǔn)中卻包含了大量的微軟私有技術(shù),以期通過OOXML 成為國際標(biāo)準(zhǔn)。例如,VML等等。
四、OOXML在XML 技術(shù)上并不過關(guān),甚至其本身都不符合XML 標(biāo)準(zhǔn)。
五、OOXML僅僅反映西方主流文化,沒有考慮其他國家的文化需求。
六、目前OOXML只有唯一的實(shí)現(xiàn),就是微軟的Office2007,而沒有其他的第二種實(shí)現(xiàn),這也不符合標(biāo)準(zhǔn)的“一個(gè)標(biāo)準(zhǔn),多個(gè)實(shí)現(xiàn)”的原則。
詳細(xì)案例列舉如下:
一、OOXML標(biāo)準(zhǔn)并沒有實(shí)現(xiàn)其開放微軟 .Doc文檔格式的承諾,也就是說并不是所有人都能夠通過OOXML實(shí)現(xiàn)一個(gè)開放的文檔格式,而這種開放性只掌握在微軟手中。業(yè)界希望微軟能夠?qū)⒔⑵?Doc文檔與OOXML之間的映射關(guān)系,以實(shí)現(xiàn)文檔的真正開放,實(shí)現(xiàn)與其他標(biāo)準(zhǔn)的互操作;
(1)沒有在OOXML和微軟Office97-2003二進(jìn)制格式之間建立映射關(guān)系,導(dǎo)致無法實(shí)現(xiàn)互操作,OOXML 標(biāo)準(zhǔn)無法支持符合標(biāo)準(zhǔn)的軟件應(yīng)用實(shí)現(xiàn)Microsoft Office97–2003文檔與該標(biāo)準(zhǔn)格式的轉(zhuǎn)換。
在Microsoft Office97–2003格式與DIS29500定義的格式之間沒有定義映射關(guān)系。由于缺乏這種映射,向定義格式的轉(zhuǎn)換將是不穩(wěn)定的。而且,缺乏這種映射關(guān)系也導(dǎo)致了采用該格式的軟件應(yīng)用與現(xiàn)存Microsoft Office 97–2003格式的文檔之間無法實(shí)現(xiàn)互操作。這也說明不可能有任何實(shí)現(xiàn)OOXML的應(yīng)用可以反向兼容現(xiàn)存的二進(jìn)制歷史文檔,這是與OOXML聲稱其應(yīng)成為國際標(biāo)準(zhǔn)的理由相違背的。
(2)不能與現(xiàn)有國際標(biāo)準(zhǔn)ODF互操作。很多技術(shù)細(xì)節(jié)表明,OOXML與ODF無法實(shí)現(xiàn)完全的互操作。同樣的,與我國國家標(biāo)準(zhǔn)UOF也不能實(shí)現(xiàn)完全的互操作。
二、OOXML 包含大量沒有詳細(xì)定義的技術(shù)指標(biāo)和私有技術(shù),并且私有技術(shù)只有在微軟的Window平臺(tái)上實(shí)現(xiàn),而無法在其他開源操作系統(tǒng)之上實(shí)現(xiàn);
(3)定義了多個(gè)非標(biāo)準(zhǔn)加密算法。OOXML采用了早期版本Office軟件中采用的哈希算法,而沒有采用ISO/IEC 10118-3:2004 加密算法,這也影響了互操作性。甚至連微軟本身也不推薦采用這些算法。
(4)僅僅列舉,而沒有定義很多“符合性設(shè)置”。OOXML中的WordProcessingML列出了大量的“符合性設(shè)置”,以便于存儲(chǔ)原有應(yīng)用功能的相關(guān)信息。這些設(shè)置的名稱包括“useWord97LineBreakRules”,“footnoteLayoutLikeWW8”,“autoSpaceLikeWord95”以及“useWord2002TableStyleRules”等。然而,OOXML規(guī)范僅僅列出了這些設(shè)置的名稱,但是并沒有定義。因此,“完全兼容現(xiàn)有的當(dāng)前微軟格式”(OOXML 標(biāo)準(zhǔn)的承諾)僅僅對于微軟是適用的。
(5)僅僅列舉,而沒有定義多個(gè)“樣式”。OOXML中的WordProcessingML 列舉了大量的“樣式”,例如“chicago”,“ideographDigital”, “ideographLegalTraditiona”,koreanDigital2”以及“koreanLegal”。這些只是標(biāo)簽,而沒有精確定義。OOXML標(biāo)準(zhǔn)的實(shí)施者只是知道有一個(gè)稱為“Korean Legal Numbering”的樣式,但是并不知道其意義,以及如何在應(yīng)用中采用。如果沒有明確的定義,沒有人能夠?qū)崿F(xiàn)這種樣式,也就無法實(shí)現(xiàn)OOXML承諾的互操作。
(6)沒有詳細(xì)的帳戶描述以及數(shù)字身份信息來保證電子表單處理的安全性。OOXML中的SpreadsheetML部分描述了一個(gè)“securityDescriptor”屬性,是一個(gè)重要的與安全相關(guān)的屬性,告知應(yīng)用軟件軟件哪一個(gè)用戶可以被允許不用密碼就可以存取一個(gè)區(qū)域。OOXML標(biāo)準(zhǔn)的實(shí)施者需要了解用戶信息如何在文檔中描述。但是OOXML并沒有提供這些詳細(xì)的信息。而且,標(biāo)準(zhǔn)中也沒有統(tǒng)一的數(shù)字身份的概念。這一功能缺乏足夠的定義來實(shí)現(xiàn)互操作。
(7)DrawingML 中的“Slide Synchronization Properties”特征沒有提供足夠的關(guān)于通訊協(xié)議和數(shù)據(jù)定義的描述。
DrawingML 中的“Slide Synchronization Properties”實(shí)現(xiàn)了幻燈片與中央存儲(chǔ)服務(wù)器的內(nèi)容同步,這是Microsoft PowerPoint和SharePoint功能。然而,OOXML 中特征的描述缺乏足夠的細(xì)節(jié),也沒有通訊協(xié)議和數(shù)據(jù)模型的定義,導(dǎo)致這一功能無法獨(dú)立實(shí)現(xiàn),而唯一的實(shí)現(xiàn)就是Sharepoint。
三、OOXML并沒有引用現(xiàn)有的國際標(biāo)準(zhǔn)實(shí)現(xiàn)現(xiàn)有的通用功能,卻使用其自身定義的私有標(biāo)準(zhǔn)來實(shí)現(xiàn)。這不符合定義標(biāo)準(zhǔn)的慣例。相反OOXML標(biāo)準(zhǔn)中卻包含了大量的微軟私有技術(shù),以期通過OOXML成為國際標(biāo)準(zhǔn)。例如,VML等等。
(8)采用兩個(gè)非標(biāo)準(zhǔn)的方法描述矢量圖形。OOXML沒有采用現(xiàn)存的SVG標(biāo)準(zhǔn)來描述矢量圖形,而是采用兩個(gè)非標(biāo)準(zhǔn)的標(biāo)記語言來實(shí)現(xiàn)。其中一個(gè)是VML,此語言于1998年被W3C否決成為標(biāo)準(zhǔn),另一個(gè)是微軟獨(dú)立開發(fā)的技術(shù)。這就要求OOXML的實(shí)施者為同一種功能采用兩種不同的標(biāo)記語言(都是非標(biāo)準(zhǔn)),而且對于用戶沒有任何價(jià)值,只有微軟會(huì)從中獲益,因?yàn)槠湓缙诘漠a(chǎn)品中已經(jīng)支持了VML。而且,矢量圖形也不能很好地通過轉(zhuǎn)換器實(shí)現(xiàn)格式轉(zhuǎn)換。因此,矢量圖形的冗余標(biāo)準(zhǔn)將會(huì)導(dǎo)致無法實(shí)現(xiàn)格式轉(zhuǎn)換。
(9)由于歷史原因不采用使用廣泛的“The Gregorian Calendar”。如果詢問“1900 年2 月1日是周幾”?OOXML將給出錯(cuò)誤的答案。這也導(dǎo)致了OOXML電子表單無法實(shí)現(xiàn)與SQL 數(shù)據(jù)庫的互操作,因?yàn)镾QL數(shù)據(jù)庫明確支持Gregoriancalendar。這說明微軟自己的產(chǎn)品都沒有實(shí)現(xiàn)互操作。
(10)技術(shù)建議前后不一致。OOXML建議打印設(shè)置應(yīng)當(dāng)存儲(chǔ)在一個(gè)依賴于平臺(tái)的二進(jìn)制格式中。例如,在Windows中,存放在“DEVMODE”結(jié)構(gòu)中。如此實(shí)現(xiàn)則導(dǎo)致平臺(tái)依賴,影響互操作性。但是同時(shí),微軟在其XPS規(guī)范中卻提供了基于XML的PrintTicket元素來存放。可見其技術(shù)建議前后不一致。
(11)基于DRM 的保護(hù)無法實(shí)現(xiàn)。Office2007中提供了基于DRM的保護(hù),作為OOXML的擴(kuò)展,但是并沒有文檔化。由于DRM沒有文檔,其他廠商無法自由實(shí)現(xiàn)這些功能。Office2007中加密的文檔不能由其他符合標(biāo)準(zhǔn)的軟件閱讀。
(12)剪貼板格式是私有的Windows格式。OOXML定義了ST_CF類型用于記錄剪貼板格式,以便于存儲(chǔ)圖形對象。其類型的值如EMF、WMF等等都是私有的Windows格式,其他的操作系統(tǒng)無法使用。例如,在Linux中,經(jīng)常采用開放標(biāo)準(zhǔn)格式PNG,但是如果廠商在此類型中加入“PNG”,則此文檔將是非法的,文檔及其應(yīng)用也將不符合OOXML 規(guī)范。
(13)電子表格中的密碼哈希算法是依賴于機(jī)器的。電子表格中的密碼哈希算法定義由5頁紙的C語言代碼來定義,似乎是從Excel中直接提取的。然而,代碼中的位控制又是依賴于機(jī)器的,根據(jù)處理器的不同會(huì)給出不同的結(jié)果。在一個(gè)機(jī)器上建立的文檔可能在另一個(gè)機(jī)器上不可閱讀。關(guān)于此功能,OOXML沒有提供一個(gè)便捷的定義。
(14)WordProcessingML中的“optimizeForBrowser”元素僅僅針對IE瀏覽器。
WordProcessingML中的“optimizeForBrowser”元素僅僅針對Internet Explorer,而沒有針對其他瀏覽器。
(15)WordProcessingML為數(shù)值列表定義一些數(shù)字樣式,僅僅是標(biāo)簽,沒有詳細(xì)的定義。
這些樣式都是從微軟的產(chǎn)品中繼承的,而且是封閉的,用戶無法擴(kuò)展。然而,樣式列表也是不完整的,缺乏對于Armenian, Tamil, Greek alphabetic, Ethiopic和Khmer數(shù)值列表的支持。而微軟沒有采用的W3C's XSL:FO以及ODF 中采用的,均允許采用開放的數(shù)值樣式,每個(gè)都是自定義的。
四、OOXML在XML技術(shù)上并不過關(guān),甚至其本身都不符合XML標(biāo)準(zhǔn)。
(16)OOXML并不符合XML語言的要求。OOXML定義了新的字符串類型“Basic String”,作為“二進(jìn)制基本字符串類型”。這個(gè)新的字符串類型的一個(gè)特點(diǎn)是允許非XML字符(控制字符)可以特別編碼。然而,XML文檔中的非XML 字符基于XML的處理工具無法處理此XML 文件。W3C's Internationalization Activity確認(rèn),這種控制代碼的表達(dá)應(yīng)當(dāng)由合適的標(biāo)記語言替換。由于XML 提供了編碼結(jié)構(gòu)化數(shù)據(jù)的標(biāo)準(zhǔn)化方法,采用控制字符,而不是標(biāo)記語言將喪失了采用XML語言的優(yōu)勢。在HTML和XHTML中采用控制代碼是不合適的,因?yàn)闃?biāo)記語言適宜用來表達(dá)文本,而不是數(shù)據(jù)。
(17)采用“bitmasks” 編碼方式在整型數(shù)值中存儲(chǔ)布爾值,使得XML無法有效處理。
在很多情況下,OOXML采用”bitmasks”在一個(gè)整型數(shù)值中編碼多個(gè)布爾值。在20 年前,由于存儲(chǔ)器的限制,C語言采用了這種方法,但是在XML 的處理中卻是非常不合適的。它使得XSLT無法很好地工作,因?yàn)檫@些工具缺乏位一級的操作在位一級處理數(shù)據(jù)。
(18)僅僅限制語法而不是語義,導(dǎo)致無法實(shí)現(xiàn)互操作。OOXML 僅僅限制語法。從實(shí)際角度來看,由于OOXML中的語義尚未定義,將導(dǎo)致無法正確實(shí)現(xiàn)互操作。
五、OOXML僅僅反映西方主流文化,沒有考慮其他國家的文化需求。
(19)沒有考慮到不同的文化需求,而只是反映微軟所代表的發(fā)達(dá)國家的需求。例如OOXML中的NETWORKDAYS()函數(shù)的返回周末的值。有的國家這個(gè)值是周六或周日,有的則是周四/周五或者周五/周六。OOXML 并沒有提供給不同文化以不同的選擇和定義。相反在ODF和UOF 中,用戶可以通過設(shè)置參數(shù)獲得其所需值。
(20)圖形邊框顯示的圖形也都是以西方為中心的。OOXML 的實(shí)現(xiàn)者不能擴(kuò)展這些圖形,否則將不符合OOXML 定義的要求。
六、目前OOXML只有唯一的實(shí)現(xiàn),就是微軟的Office2007,而沒有其他的第二種實(shí)現(xiàn),這也不符合標(biāo)準(zhǔn)的“一個(gè)標(biāo)準(zhǔn),多個(gè)實(shí)現(xiàn)”的原則。
從以上總結(jié)中,共創(chuàng)軟件聯(lián)盟辦公軟件工作組再強(qiáng)調(diào)兩點(diǎn):
1、微軟OOXML并沒有和DOC建立一一映射關(guān)系,相互間也存在互相兼容的問題。在有些領(lǐng)域里,微軟Office2007對DOC格式的兼容性甚至不如相應(yīng)的國產(chǎn)辦公套件。
2、微軟OOXML不可能在Linux完全實(shí)現(xiàn)。 |