(incubating) | The Free and Open Productivity Suite


關於 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
幫助
常見問題
∟各種常見問題

Apache OpenOffice is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.

Copyright & License
Apache and the Apache feather logos are trademarks of The Apache Software Foundation. OpenOffice.org and the seagull logo are registered trademarks of The Apache Software Foundation. Other names appearing on the site may be trademarks of their respective owners.