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