關於 OpenOffice.org API 的常見問題

原文:http://api.openoffice.org/faq.html

翻譯:Zhang Xiaofei   校對: Cheng Lin     Sept, 2007

一、 我可以在哪些語言中使用 OpenOffice.org-API ?
二、 UNO IDL 與 CORBA 間有哪些區別?
三、 API 設計部分有多大?
四、 API 的文檔是怎麼寫的?
五、 API 實現部分有多大?
六、 有沒有文檔或者示例可供 Java 程序員參考?
七、 為什麼 OpenOffice.org-API 中有些接口在任何 OpenOffice.org 組件中都沒有實現?
八、 我如何知道我是否可以使用 OpenOffice.org-API 中的某個特定接口?
九、 有沒有像微軟的 OLE 那樣可以構建復合文檔的接口?
十、 如何解決設計上的衝突?

解答

一、
我可以在哪些語言中使用 OpenOffice.org-API?
OpenOffice.org用UNO(Universal Network Object,通用網絡對像)實現API。目前對於Java和C++實現了綁定。你可以實現你自己的語言綁定,而且實際上我們正在積極尋找實現C語言綁定的志願者。

而且,UNO中允許對腳本語言和腳本環境(比如調試器)進行控制。目前StarBasic(與VBA語法兼容)可以調用API,一個用做Python實現的原型也開發了出來。

回目錄

二、
UNO IDL 與 CORBA 間有哪些區別?
UNO IDL 基於 CORBA IDL,不過它還額外支持:
  * 結構與異常的繼承關係,
  * 為枚舉變量賦值,
  * 新的服務(service)數據類型(是接口與屬性的組合)。

而且目前它不支持:
  * 有確定類型的數組
  * 共用體

回目錄

三、
API 設計部分有多大?
API包含大概2000個文件,每個文件設計一種類型。一個類型可以是一個服務、接口、結構、異常、一個常量組(constant group)或一個枚舉變量。這些文件總共有大概6MB數據。

回目錄

四、
API 的文檔是怎麼寫的?
IDL文件內部包含一個可供參考的文檔。該文檔的文法在JavaDoc的基礎上為標識符的標記做了一些拓展。目前,我們正為這個文法開發一個新的生成器,將可以從IDL直接生成HTML文檔。

我們的開發者指南中對於OpenOffice.org中全部具有API的組件的概念都進行了描述,是開始學習API最好的資料。 對於StarBasic程序員我們還特別有一份教程。它解釋了基本概念,列出了組件結構的一些UML圖表,並包括大量帶註釋的關於API使用的示例。

回目錄

五、
API 實現部分有多大?
這個很難講清。目前的API實現只對大多數部分都會用到的核心API做了封裝。只有新的組件直接實現了API。因此,要搞清實現API總共有多少代碼並沒有太大意義——甚至在未來可能性都不大。基於這個角度,我們大概可以說,整個OpenOffice.org就是API的實現,尤其是因為有越來越多的特性正在使用其它組件的API整合進去。

回目錄

六、
有沒有文檔或者示例可供 Java 程序員參考?
您可以在UDK項目中找到Java的語言綁定。在OpenOffice/StarOffice SDK裡有一些Java示例,也許對您有幫助。

回目錄

七、
為什麼 OpenOffice.org-API 中有些接口在任何 OpenOffice.org 組件中都沒有實現?
OpenOffice.org-API其實更像一個需求文檔,而不是一個已經實現完畢的API。因此,有些接口沒有任何實現,存在以下幾種原因:

  a. 有可能在所有用到該接口的服務中它都是一個可選的(optional)接口,但目前所有的實現部分都還沒有實現它。
  b. 它可能是一個為了保持概念正交性(concept orthogonal)提出的接口,但它所代表的維度目前沒有用到。
  c. 它可能是近期設計的一部分,實現還沒有完成。
  d. 在任意實現中缺少它有可能會引發bug。

回目錄

八、
我如何知道我是否可以使用 OpenOffice.org-API 中的某個特定接口?
找一個輸出這個接口的服務,然後找一個確定會支持這個服務的組件。別忘了有些接口是可選的(在這個服務的輸出文檔中會提到)。如果你使用的組件還沒有實現這個接口,那就是一個bug。遇到這種情況,請把這個bug提交給組件的所有者。如果是設計文檔的bug,他們會把bug轉交給設計文檔的所有者。

回目錄

九、
有沒有像微軟的 OLE 那樣可以構建復合文檔的接口?
目前在OpenOffice/StarOffice API中沒有構建復合文檔的接口(譯者註:可能在您閱讀本FAQ時已經實現)。我們的構想是使用Bonobo模型達到這個目標。

回目錄

十、
如何解決設計上的衝突?
首先,API被定位成一個注重正交結構與可復用性的設計文檔。另外我們盡可能使之與Java相似。使實現部分與使用部分這兩方面都具有易用性也是一個重點。這使我們常常不得不做出妥協——有時甚至只是因為已經存在了一個實現。

如果出現衝突,我們會尋求達成一致的方法,聽取所有的爭論,在匆忙做決定之前再花些時間找出新的分歧。這樣努力找出讓所有人都滿意的解決方案。

回目錄

十一、
支持系統在何處?
最新版本的 OpenOffice.org 上附有支持系統。如果無法使用支持系統,請到下載區下載並升級至最新版本。

回目錄

 

zh.OpenOffice.org
幫助
常見問題
∟各種常見問題