XVCDによるボキャブラリコンポーネントの開発手順

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

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

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

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

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

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

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

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

以下、作成手順を段階ごとに説明します。なお、これらの手順を、サンプルを交えて説明している「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ファイルを関連付けてボキャブラリコンポーネントを登録するための処理命令を記述しておきます。

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 technologyユーザーエージェントで開いて、XVCDで予定した機能が実現できているか、確かめます。
  4. XVCDファイルに機能を追加する
    作成した機能が問題なく動作したら、コマンド、ユーザーインターフェイス、新規作成文書のテンプレートと、順次、機能を拡張します。
    機能を拡張するごとに、拡張した機能の動作を確かめることをおすすめします。

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

2.4. ボキャブラリコンポーネントのインストール

XVCDによるボキャブラリコンポーネントの作成が完了した後は、xfy technologyユーザーエージェントの実行環境へインストールします。

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

ボキャブラリコンポーネントをインストールすると、xfy Developer's Toolkitがインストールされていない環境や、XVCDファイルを関連付ける処理命令が記述されていないXML文書でも、インストールしたボキャブラリコンポーネントを使ってXML文書を処理できるようになります。

基本的に、ボキャブラリコンポーネントをはじめとする各種xfyコンポーネントをxfy technologyユーザーエージェントで使用するには、JARファイルを作成します。作成したxfyコンポーネントは、xfy technologyユーザーエージェントの実行環境へインストールします。

XVCDによるボキャブラリコンポーネントの場合は、簡易的な方法として、scriptsフォルダ以下にXVCDファイルを配置する方法も用意されています。

2.4.1. scriptsフォルダへのインストール

scriptsフォルダ以下にXVCDファイルを配置する方法は、XVCDによるボキャブラリコンポーネントを簡易的に使用するために用意されています。

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

2.4.2. JARファイルの作成

ボキャブラリコンポーネントをxfy technologyユーザーエージェントで使用するための本来の方法は、JARファイルを作成してxfy technologyユーザーエージェントの実行環境へインストールする方法です。

XVCDで作成したボキャブラリコンポーネントをJARファイルにアーカイブする手順を段階ごとに説明すると、次のとおりとなります。

  1. Java言語で、XVCDをシステムに登録するクラスを作成する
    xfy technologyで定義されているXVCDをシステムに登録するためのインターフェイスを実装したクラスを作成します。クラスを作成したら、Javaコンパイラでコンパイルしてクラスファイルを作成します。
  2. マニフェストファイルを作成する
    マニフェストファイルには、コンポーネントを動作させるために必要な情報を記述します。主に次のような情報を記述します。
    • ベンダー名
    • コンポーネント名
    • コンポーネントとして動作するクラス名
    • コンポーネントが提供する機能
  3. JARファイルを作成する
    XVCDファイル、クラスファイル、マニフェストファイルをまとめてJARファイルを作成します。
  4. 作成したJARファイルをxfy technologyユーザーエージェントの実行環境に配置する
    JARファイルの配置先は、xfy technologyユーザーエージェントの実行ファイル用のフォルダです。JARファイルを配置したあとでxfy technologyユーザーエージェントを起動すると、ボキャブラリコンポーネントが使用できるようになります。

今後、上記の手順を対話形式で実行して簡単にJARファイルを作成できるツールを、xfy Developer's Toolkitに含めて提供することを予定しています。

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

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

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

xfy Basic Edition 1.0ではxfy Developer's Toolkitがあらかじめ導入されていますので、あらためて導入を行う必要はありません。

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

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

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

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