OpenOffice.org 拡張機能 その2

拡張機能パッケージの構成

拡張機能パッケージは ZIP アーカイブとしてまとめた一連のファイルです。二つのファイルの配置が決まっています。ひとつは登録が必要なファイルの指定を行う META-INF/manifest.xml ファイル、もうひとつは拡張機能のバージョンやライセンスの指定などを行う description.xml ファイルです。

これらのファイルがアーカイブを作成したとき、最上位のディレクトリに配置されるように ZIP 圧縮してパッケージとします。

META-INF/manifest.xml

META-INF/manifest.xml に配置した XML 形式のファイルに、パッケージのインストール時に登録、処理される必要のあるファイルを指定します。

<?xml version="1.0" encoding="UTF-8"?>
<manifest:manifest>
<!-- ここに登録するファイルの指定 -->
</manifest:manifest>

ファイルの指定は次のように行います。

<manifest:file-entry manifest:full-path="MRILib/" 
 manifest:media-type="application/vnd.sun.star.basic-library"/>

manifest:full-path にファイルへのパスを、パッケージの最上位ディレクトリを基点として指定します。
manifest:media-type には指定したファイルの種類を指定します。

このファイルにエントリーが必要なファイルは、インストール時に登録される必要のあるもののみです。パッケージに含まれる全てのファイルを登録するわけではありません。

manifest.xml の例

description.xml

description.xml に配置した XML 形式のファイルに、拡張機能のバージョンや、拡張機能マネージャに表示する項目などを指定します。

<?xml version="1.0" encoding="UTF-8"?>
<description xmlns="http://openoffice.org/extensions/description/2006"
	xmlns:xlink="http://www.w3.org/1999/xlink"
	xmlns:d="http://openoffice.org/extensions/description/2006">
<!-- ここに項目 -->
</description>
拡張機能 ID

拡張機能の ID を設定します。

<identifier value="org.hoge.Test" />

拡張機能の固有の ID となるように設定します。ドメインを逆順で ID とするのが推奨されています。

バージョンアップ、オンラインアップデート、拡張機能のインストール場所特定など色々な場面で利用されます。

バージョン

そのパッケージのバージョンを設定します。

<version value="0.4.0" />

バージョンの指定は「メジャー.マイナー.バグフィックス」とするとアップデート時のバージョンチェックが正しく動作します。

ライセンス表示

インストール中に表示されるライセンスファイルを指定します。

<registration>
  <simple-license accept-by="user" default-license-id="this" suppress-on-update="true" suppress-if-required="false">
    <license-text xlink:href="notices/notice.txt" lang="en" license-id="this" />
  </simple-license>
</registration>

simple-license ノードの accept-by 属性に user または admin を指定します。user を指定すると、全てのユーザーが個別にライセンスを承諾しなければいけなくなります。この場合には管理者が全ユーザーが利用できるようなインストールが行えません。admin を指定するとインストール時の管理者のみがライセンスを承諾することになります。user を指定していても suppress-if-required を true にすると管理者が前ユーザー向けにインストールできる例外となります。

suppress-on-update を true にするとアップデート時にライセンスを表示しません。

default-license-id はライセンスの言語と一致しないときに利用されるデフォルトを指定します。ここでは this を指定しており、license-text ノードの license-id 属性が同じものが利用されます。

license-text ノードでは各言語用のライセンス文をエントリーします。xlink:href 属性にファイルパスを指定します。lang 属性は言語を指定します。

バージョン依存性

拡張機能OpenOffice.org に対するバージョン依存性を指定します。これに適合しなければインストールできません。

<dependencies>
  <OpenOffice.org-minimal-version value="2.2" d:name="OpenOffice.org 2.2" />
  <OpenOffice.org-maximal-version value="3.2" d:name="OpenOffice.org 3.2" />
</dependencies>

OpenOffice.org-minimal-version はバージョンの下限を指定します。OpenOffice.org-maximal-version にはバージョンの上限を指定します。value でバージョンを指定しますが、バグフィックスを含めないバージョンを指定してください。d:name はエラー時に表示される名称です。

表示名

拡張機能マネージャで表示する名称を指定します。これを指定しなければパッケージ名が使われます。

<display-name>
  <name lang="en">display name</name>
</display-name>

name ノードの値に表示する名称を指定します。lang 属性で言語ごとの表示名を指定できます。
日本語などのマルチバイト文字が含まれる場合にはファイルが UTF-8 エンコーディングで正しく保存されていることを確認してください。

パブリッシャー表示

製作者のホームページや名前を指定します。拡張機能マネージャなどで表示されます。

<publisher>
  <name xlink:href="http://.html" lang="en">Publisher</name>
</publisher>

xlink:href 属性にページアドレスを指定します。lang で言語ごとのページを指定できます。また、名称も同様です。

アイコン

拡張機能マネージャに表示されるアイコンを指定します。画像は 42 x 42 pixel の PNG とするのが普通です。

<icon>
  <default xlink:href="icon.png"/>
  <high-contrast xlink:href="icon_hc.png"/>
</icon>

普段は default に指定した画像が利用されます。ハイコントラストモード用のものは high-contrast に指定しますが、指定がなければデフォルトが利用されます。

パッケージの説明

拡張機能マネージャの項目に表示される説明を指定します。指定したファイルは UTF-8 エンコーディングにしておいてください。

<extension-description>
    <src lang="en" xlink:href="descriptions/descripton_en.txt"/>
    <src lang="ja" xlink:href="descriptions/descripton_ja.txt"/>
</extension-description>

lang 属性で言語ごとの説明を指定できます。あまり長くならないようにするのが普通です。

ターゲットプラットフォーム

インストール可能なプラットホームを指定できます。環境に依存するコードやバイナリなどを含む場合に指定します。複数の環境はコンマで区切って指定できます。

<platform value="all"/>

all, windows_x86, linux_x86, solaris_x86, macosx_x86, macosx_powerpc などが利用できます。
OpenOffice.org が移植された環境だけ指定可能なプラットフォーム名があります。以下を参照してください。

http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/Extensions/Target_Platform


description.xml の例