OpenOffice APIに関するFAQ


原文:http://api.openoffice.org/faq.html
管理:OpenOffice.org日本ユーザ会翻訳プロジェクト
翻訳:高岡
査読:中本,谷口
文書更新履歴


質問

  1. どの言語のOpenOffice APIを使用できますか?
  2. UNO IDLとCORBAはどこが違うのですか?
  3. API仕様の「大きさ」はどのくらいですか?
  4. APIの文書化はどれくらい完了していますか?
  5. 実装されたAPIの大きさはどれくらいですか?
  6. Javaプログラマーのためのサンプルまたはドキュメントはありますか?
  7. OpenOffice APIの中には,どのOpenOfficeコンポーネントにも実装されていないインターフェイスがあるのは何故ですか?
  8. もし,あるOpenOffice APIのインターフェイスが使えるのなら,どうしたらそれを見つけられますか?
  9. Microsoft OLEのような,複数のドキュメントをビルドするためのインターフェイスはありますか?
  10. 設計上の問題に関する衝突はどのように解決したらよいですか?
  11. Michael Honnig,あなたの役割は何ですか?

回答

Q.どの言語のOpenOffice APIを使用できますか?

→ OpenOfficeはUNO(Universal Network Objects)を使用してAPIを実装しています。現在JavaとC++のためのバインディングが存在します。あなたは自分の言語バインディングを実装することが出来ますし,実際に私達は,C言語バインディングを作成して下さるボランティアを積極的に探しています。

それに加えて,UNOは,スクリプト言語や,スクリプティング環境(例えば,デバッガ)からの呼び出しを許容します。今のところ,StarBasic(VBA文法互換)が,APIを呼び出すことができ,Python組込みのために書かれたプロトタイプが存在します。


Q.UNO IDLとCORBAはどこが違うのですか?

→ UNO IDLはCORBA IDLに基づいていますが,追加的に以下をサポートします。

そして今のところ,以下はサポートしていません


Q.API仕様の「大きさ」はどのくらいですか?

→ OpenOffice APIは約2000のファイルから構成され,各々は1つの型を定めています。この点で型はサービス,インターフェイス,構造体,例外,不変の集合,もしくは列挙定数になることができます。これらのファイルは全部で約6MBあります。


Q.APIの文書化はどれくらい完了していますか?

→ 文書のような参考資料はIDLファイルの中にあります。文書の文法はJavaDocが基になっており,タグを少し拡張しています。私達は現在,IDLから直接HTML文書を生成する,この文法のための新しいジェネレーターを開発中です。

それに加えて,私達は,基本的な概念を説明し,いくつかのコンポーネントの構造のUML図,及びたくさんの文書化されたAPI使用法の例を示した「programmers manual」を持っています。このマニュアルは今のところ,例を示すための言語としてStarBasicを用いていますが,私達はJavaバージョンに関しても同様に準備しています。


Q.API実装のサイズはどれくらいですか?

→ それを調査することはほとんど不可能です。現在のところ,API実装はほとんどのコンポーネントのためのコアAPIに対するラッパーでしかありません。より新しいコンポーネントだけが,直接APIを実装しています。このため,どれだけのコードがAPIを実装しているかを調査することは本当は重要ではありませんし,将来的にはもっと意味がなくなるでしょう。そうした観点に依存するなら,以下のことがいえるでしょう:OpenOffice全体はAPIの実装です。これはとりわけ,ますます多くの機能が組込みのための他のコンポーネントのAPIを使用していることに由来します。


Q.Javaプログラマーのためのサンプルまたはドキュメントはありますか?

→ UDKプロジェクトにおいて,あなたはJavaバインディング言語についての文書を見つけることができます。StarOffice SDKの中には,役に立ついくつかのJavaの例があります。


Q.OpenOffice-APIに,OpenOfficeコンポーネントで全く実装されていないインターフェイスがいくつか存在しているのは何故ですか?

→ OpenOffice-APIは,実際には既にある実装のAPIというよりは,仕様のようなものです。よって,実装が全くなされていないインターフェイスが存在する理由はいくつかあります。

  1. 全てのサービスの中で,使われてはいるが現在のところ実際に実装されている実装が無い,オプションのインターフェイスである可能性があります。
  2. 直交的な概念を作るべきですが,その概念が扱う次元が今すぐには必要とされていないインターフェイスである可能性があります。
  3. まだ実装がなされていない,新しい設計の一部である可能性があります。
  4. どの実装においてもそのインターフェイスが存在しないということは,単にバグであるだけの可能性があります。

Q.私があるOpenOffice-APIのインターフェースを使えるとしたら,どうやったらそれを見つけることが出来ますか?

→ このインターフェイスをエクスポートしているサービスを確認して下さい。それから,このサービスをサポートする見込みのあるコンポーネントを確認して下さい。確認の際にはオプションのインターフェイスを念頭に置いておいて下さい(サービスの外部文書の中で述べられています。)もし,あなたが使っているコンポーネントがまだインターフェイスを実装していないのなら,それはバグです。後者の場合では,バグをコンポーネントの所有者まで報告して下さい。もしそれが仕様のバグであるなら,彼等はそれを所有者の仕様に転送してくれるでしょう。


Q.Microsoft OLEのような,複合化した文書をビルドするためのインターフェイスはありますか?

→ StarOffice APIの中には,複合化した文書をビルドするためのインターフェイスは現在のところありません。この目的のためにBonoboモデルを使おうというのが私達の考えです。


Q.設計上の問題に関する衝突はどのように解決したらよいですか?

→ まずはじめに,APIは直交的な構造,そして再利用性に関して焦点を合わせた仕様として位置付けられています。一方で,私達はAPIをできるだけJavaに似たものにしようとしています。双方,つまり実装する側とその実装を使う側からの使い勝手がもう1つの重要なポイントです。そしてここで,私達は時々妥協しなくてはなりません−時々,既に存在する実装があるために。

もし設計上の衝突があるなら,私達は合意を探ります。全ての議論を聞き,慌てて結論を出す前に,新しい合意を探る時間を下さい。皆さんが満足する解決策を探りましょう。


Q.Michael Honnig,あなたの役割は何ですか?

→ 私は,現在はOpenOffice APIとなっている,StarOffice APIの主任設計者です。私の第一の職務は,一般的なパスを保証することと,IDLのガイドラインを作ること,それらが守られているかどうか気を配ること,一般化できるインタ−フェイスを見つけること,一般的なAPIの基盤を確立すること,そして文書に気を配ることです。

私は,コミュニティの支援がある限り喜んでこの仕事を続けます。



この文書の更新履歴

2002 Sep. 21 日本語訳完成

$Id: tr_api.html,v 1.4 2003/12/30 01:01:54 maho Exp $