關於 OpenOffice.org API 的常見問題
原文:http://api.openoffice.org/faq.html
翻譯:Zhang Xiaofei 校對: Cheng Lin Sept, 2007
解答
一、 |
- 我可以在哪些語言中使用 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 上附有支持系統。如果無法使用支持系統,請到下載區下載並升級至最新版本。
回目錄 |
|