关于 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 上附有支持系统。如果无法使用支持系统,请到下载区下载并升级至最新版本。

回目录

 

 

OpenOffice.org
英文总站首页
繁体中文版首页
简体中文版首页
关于我们
关于 OpenOffice.org
关于中文计划
产品
简介
重要功能
下载
功能强化套件
光碟
商品化版本
支援
说明文件
通信论坛
常见问题
参与计划
参与开发
参与中文计划
中文计划工作一览表
报告错误(英)(中)
其他
中文计划成员
授权声明
联络我们
联络 OpenOffice.org
联络中文计划