XVCDでボキャブラリコンポーネントを開発する手順

xfy technologyのボキャブラリコンポーネントを、XVCDを使用して作成する手順を説明します。

1. ボキャブラリコンポーネントの作成

ボキャブラリコンポーネントは、編集対象のXML文書から作成されたDOMの部分木に対する表示・編集機能を提供するxfyコンポーネントです。xfy Basic Editionの場合、次のボキャブラリコンポーネントが標準で添付されています。

本格的にボキャブラリコンポーネントを作成する場合は、Java言語を使用してプログラムを作成します。Java言語を使用したプログラムは、専門の知識を持った開発者でないと作成できません。XVCDは、Java言語の知識がなくてもボキャブラリコンポーネントを作成できるようにするために作成されたXMLスクリプト言語です。XVCDは、すでにボキャブラリコンポーネントが存在するXMLボキャブラリと新しいXMLボキャブラリを双方向で結びつけます。こうすることで、新しいXMLボキャブラリを既存のボキャブラリコンポーネントの表示・編集系で利用できるようになります。

一例として、テキストや数値を扱うXMLボキャブラリ用のボキャブラリコンポーネントを作成する場合を考えます。最も単純に考えた場合、Webフォームと同様に入力欄がある編集画面で実現できます。入力欄を使用しない編集環境を考えても、HTMLの表示系と同等の表現力があれば目的は達成できます。このような場合に、XVCDでXHTMLコンポーネントを利用するスクリプトを作成すると、簡単に専用のボキャブラリコンポーネントを作成できます。

2. XVCDによるボキャブラリコンポーネントの作成

XVCDを使用してボキャブラリコンポーネントを作成するために用意された環境や、ボキャブラリコンポーネントの作成手順を説明します。XVCDを使用してボキャブラリコンポーネントを作成する手順は、次の通りです。

  1. 開発のための事前準備を行う
  2. 表示・編集対象となるXML文書を用意する
  3. XVCDファイルを作成する
  4. xfyプラットフォームの実行環境にボキャブラリコンポーネントをインストールする

以下、作成手順を段階ごとに説明します。なお、これらの手順を、サンプルを交えて説明したチュートリアル「XVCD によるボキャブラリコンポーネントの作成」も用意されているので、参考にしてください。

2.1. 事前準備

XVCDによるボキャブラリコンポーネントの作成を支援するために、xfy Developer's Toolkitが提供されています。あらかじめ xfy Developer's Toolkit を手順に従って導入しておくことで、XVCDを使用したボキャブラリコンポーネントが効率よく作成できます。

xfy Developer's Toolkit によるボキャブラリコンポーネント作成支援については、「xfy Developer's Toolkit によるボキャブラリコンポーネント作成支援」をご覧ください。

2.2. XML文書の用意

はじめに、作成するボキャブラリコンポーネントが表示・編集対象とするXMLボキャブラリを使用した、動作確認用のXML文書ファイルを用意します。

対象のXMLボキャブラリを使用したXML文書ファイルがない場合は、作成するXVCDのひととおりの動作が確認できる内容のXML文書ファイルを作成します。動作確認に使用するだけなので、XMLボキャブラリに対する要求をすべて実現していなくてもかまいません。また、すでに対象のXMLボキャブラリを使用したXML文書ファイルがある場合は、作成するXVCDのひととおりの動作を確認するのに適したXML文書ファイルを選びます。

動作確認用のXML文書ファイルには、XVCDファイルを関連付けてボキャブラリコンポーネントを登録するための処理命令を記述しておきます。

処理命令によるXVCDファイルの関連付け

処理命令でXVCDファイルを関連付ける方法には、以下のようなものがあります。

XML文書からの外部ファイル指定
xml-stylesheet処理命令を記述してXSLTスタイルシートを関連付けるのと同様に、XML文書内に処理命令を記述して特定のXVCDファイルを関連付けることができます。特定のXVCDファイルを関連付けるときは、com.xfy処理命令にvocabulary-connectionパラメータを指定して、次のようにXMLファイルに記述します。
<?com.xfy vocabulary-connection href="XVCDファイルのURL " ?>
com.xfy vocabulary-connection処理命令で関連付けられたXVCDファイル内のボキャブラリコンポーネントは、インストール済みのボキャブラリコンポーネントよりも優先されます。また、com.xfy vocabulary-connection処理命令で複数のXVCDが関連付けられた場合は、先に記述されたXVCDファイル内のボキャブラリコンポーネントが優先されます。
XML文書内への埋め込み
XSLTをXML文書に埋め込み記述できるのと同様に、XVCDもXML文書に埋め込み記述できます。埋め込みXVCDを使用する場合、埋め込むXVCDのxvcd:xvcd要素には、必ずid属性を設定します。com.xfy vocabulary-connection処理命令には、埋め込みXVCDのid属性に指定したID値を次のように記述します。
<?com.xfy vocabulary-connection href="#埋め込みXVCDのxvcd:xvcd要素のid属性の値" ?>

2.3. XVCDファイルの作成

対象のXML文書を表示・編集するためのボキャブラリコンポーネントをXVCDで記述します。

  1. XVCDファイルを作成する
    xvcd:xvcd要素を頂点要素とし、 xvcd:vocabulary要素 xvcd:template要素などから構成されるXVCDファイルを作成します。xvcd:vocabulary要素のmatch属性に指定されているパターンにXML文書の頂点要素が適合すると、XVCDはそのXML文書に適用できます。xvcd:vocabulary要素のmatch属性に*またはnode()が指定されている場合は、すべてのXML文書に適用できます。
  2. 表示・編集などの機能を作成する
    ui:ui要素や、 xvcd:command要素xvcd:template要素などを記述して、表示や編集などの機能を作成します。単純な表示など、基本的な機能からはじめることをおすすめします。
  3. XVCDの動作を確認する
    処理命令が記述された動作確認用のXML文書をxfyユーザーエージェントで開いて、XVCDで予定した機能が実現できているか、確かめます。
  4. XVCDファイルに機能を追加する
    作成した機能が問題なく動作したら、コマンド、ユーザーインターフェイス、新規作成文書のテンプレートと、順次、機能を拡張します。
    機能を拡張するごとに、拡張した機能の動作を確かめることをおすすめします。

XVCDファイルを作成するときは、XVCDのサンプルを参考にしてください。また、要素や属性の仕様を知りたいときは、それぞれのリファレンスをご覧ください。

2.4. ボキャブラリコンポーネントの利用

XVCDファイルを作成している間は、XML文書に処理命令を記述することでボキャブラリコンポーネントを使用することができました。しかし、この方法は、xfy Developer's Toolkitをインストールしないと使用できません。また、XVCDで作成したボキャブラリコンポーネントで処理したいすべてのXML文書に、処理命令を記述しなければなりません。そのため、処理命令が記述されていないXML文書を直接扱うことができないという問題があります。

これらの問題を回避するには、XVCDファイルをxfyプラグインJARファイル形式にアーカイブし、xfyプラットフォームの実行環境に配置する必要があります。xfyプラグインJARファイルをxfyプラットフォームの実行環境に配置すると、xfy Developer's Toolkitがインストールされていない環境や、XVCDファイルを関連付ける処理命令が記述されていないXML文書でも、xfyプラグインJARファイル内のボキャブラリコンポーネントを使ってXML文書を処理できるようになります。

また、簡易的な方法として、scriptsフォルダ以下にXVCDファイルを配置して使用する方法も用意されています。

2.4.1. xfyプラグインJARファイルの作成と配置

XVCDによるボキャブラリコンポーネントをxfyプラグインJARファイル形式にアーカイブするためには、XVCDプラグイン化ツールを使用します。XVCDプラグイン化ツールの使用方法は、[XVCDプラグイン化ツール操作マニュアル]をご覧ください。

作成したxfyプラグインJARファイルは、xfyのパッケージ管理機能やプラグインインポート機能などを利用してxfyプラットフォームの実行環境に配置します。実行環境のフォルダ構成について、詳しくは「xfy technologyのコンポーネント・アーキテクチャ」の「xfyプラグインJARファイルの配置」をご覧ください。

2.4.2. scriptsフォルダへの配置

XMLスクリプト言語によるコンポーネントを簡易的に使用するために、XMLスクリプト言語によるコンポーネントが記述されたファイルをscriptsフォルダに配置する方法が用意されています。

scriptsフォルダは、xfyプラットフォームをインストールしたフォルダ内にあります。このscriptsフォルダに、作成したXVCDファイルを配置します。XVCDによるボキャブラリコンポーネントのインストールはこれで終了です。 xfyプラットフォームは、起動時にscriptsフォルダにあるXVCDファイルを参照し、その中に記述されている xvcd:vocabulary要素の設定に基づいて、ボキャブラリコンポーネントを登録します。

scriptsフォルダに配置するXVCDファイルは、拡張子を「.xvcd」としなければなりません。また、XVCD以外のファイルは、拡張子を「.xvcd」としてはなりません。この制約は、scriptsフォルダに配置するファイルだけに適用されます。xfyプラグインJARファイル形式にアーカイブして使用する方法や、処理命令による関連付けには、拡張子に関する制約はありません。

3. xfy Developer's Toolkit によるボキャブラリコンポーネント作成支援

作成したボキャブラリコンポーネントをxfyプラットフォームで使用するには、原則的に、xfyプラグインJARファイルを作成してxfyプラットフォームの実行環境へインストールする必要があります。また、ボキャブラリコンポーネントをインストールしたあとは、xfyプラットフォームを再起動する必要があります。そのため、ボキャブラリコンポーネントの開発中は、動作を確認するためにインストールとxfyプラットフォームの再起動を繰り返すことになり、開発作業は非常に手間と時間がかかるものとなります。

このような問題を解消するために、xfy Developer's Toolkitが提供されています。xfy Developer's Toolkitは、xfyコンポーネントやxfyプラグインの開発に使用する機能やツールを提供するツールキットです。xfy Developer's Toolkitには、主に次の目的で作成された機能やツールが含まれます。

xfy Developer's Toolkitを導入すると、XML文書ファイルに記述された処理命令でボキャブラリコンポーネントを登録できるようになります。この方法では、処理命令に従ってXVCDファイルを関連付けてボキャブラリコンポーネントを登録するため、xfyプラグインJARファイルを作成してxfyプラットフォームの実行環境へインストールしなくても使用できます。また、XVCDファイルを変更してXML文書ファイルを再読込するとXVCDファイルの変更まで反映されて表示されるので、xfyプラットフォームを再起動する必要がなくなります。処理命令によるXVCDファイルの関連付けとボキャブラリコンポーネントの登録は、xfy Developer's Toolkitをインストールしている場合のみ有効です。処理命令の記述について、詳しくは「処理命令によるXVCDファイルの関連付け」をご覧ください。

xfy Developer's Toolkitには、次のツールが含まれています。

Resource File component for xfy
xfyコンポーネントで使用するリソースファイルを作成するボキャブラリコンポーネント
User Interface Description component for xfy
ボキャブラリコンポーネントで提供するユーザーインターフェイスを定義するボキャブラリコンポーネント
XFR component for xfy
XML文書を保存するときに使用するXFR(XML Formatting Rule)を定義するボキャブラリコンポーネント
Plug-in Manifest component for xfy
xfyプラグインを作成するときに必要なプラグインマニフェストファイルを作成するボキャブラリコンポーネント
XVCD Debugger
XVCD用のデバッガ
XVCDプラグイン化ツール
XVCDファイルやリソースファイル、XFRファイルからxfyプラグインJARファイルを作成するツール

xfy Developer's Toolkitでは、このほかにもxfyコンポーネントの作成を支援するツールや機能を追加提供することを予定しています。