xfy technology についての備忘録です。
技術資料「xfy のコンポーネント・アーキテクチャ」の私的要約です。
http://www.xfytec.com/ja/manual/app/developer/1.0/overview/technical_introduction.html
xfy technology はあらゆる XML 文書に適した編集環境を実現する技術です。編集対象の XML 文書に応じて表示・編集・計算・ファイル入出力などの機能 (コンポーネント) を適切に組み合わせることで、最適な編集環境を実現します。これらのコンポーネントを xfy コンポーネントと呼びます。
xfy technology には、基本的な xfy コンポーネントがあらかじめ用意されています。これらの xfy コンポーネントはあらゆる XML 文書の編集に利用できます。また、新たに xfy コンポーネントを作成し、既存の xfy コンポーネントと組み合わせて利用することもできます。
xfy コンポーネントには、いくつかの種類があります。
XML 文書を編集するためのコンポーネントです。 XML ボキャブラリごとに作成します。 xfy Basic Edition 1.0 には、下記の二つのボキャブラリコンポーネントが同梱されています。
XHTML コンポーネント
SVG コンポーネント
機能ライブラリを拡張するためのコンポーネントです。 XPath 関数を拡張したり DOM ツリーを操作する命令を追加したりできます。
ファイル入出力を拡張するためのコンポーネントです。 XML 文書の保存方法をカスタマイズしたりサーバへのアクセス方法を追加したりできます。
アプリケーションそのものを拡張するためのコンポーネントです。アプリケーションウィンドウを拡張したり機能を追加したりできます。
xfy コンポーネントのうち、 xfytec.com で提供されるものを追加機能コンポーネントと呼びます。
xfy コンポーネントの作成方法には、 Java 言語を使う方法とボキャブラリコネクションを使う方法とがあります。
あらゆる xfy コンポーネントを作成できます。
一からボキャブラリコンポーネントを作成するのではなく、既存のボキャブラリコンポーネントを再利用して新しいボキャブラリコンポーネントを作成する方法です。ボキャブラリコンポーネント以外の xfy コンポーネントは作成できませんが、 Java 言語を使う方法よりも簡単にボキャブラリコンポーネントを作成できます。作成には専用の記述言語 XVCD を使います。
http://www.xfytec.com/ja/manual/app/developer/1.0/overview/vc_introduction.html
http://www.xfytec.com/ja/manual/app/developer/1.0/howto/vc_develop.html
http://www.xfytec.com/ja/manual/app/developer/1.0/howto/xvcd_tutorial.html
http://www.xfytec.com/ja/manual/app/developer/1.0/spec/guide.html
作成した xfy コンポーネントは、 JAR 形式でアーカイブし、所定のディレクトリに格納して使用します。 JAR ファイルは利用形態に応じて下記の二つのディレクトリに格納します。
bin/common/複数のコンポーネントから利用される共通の xfy コンポーネントを格納します。このディレクトリに格納された xfy コンポーネントは xfy technology ユーザエージェント (現状では xfy Basic Edition 1.0) の起動時にロードされます。
bin/plugins/通常の xfy コンポーネントを格納します。このディレクトリに格納された xfy コンポーネントは必要に応じてロードされます。
技術資料「リファレンスの読み方」の私的要約です。
http://www.xfytec.com/ja/manual/app/developer/1.0/spec/guide.html
XVCD の開発段階は、下記の 4 段階に大別できます。
XML 文書の表示方法を定義する
XML 文書の編集方法を定義する
XML 文書の保存方法や新規作成方法などを定義する
より高度な機能を利用する
XML 文書の表示方法を定義する際の基礎的なリファレンスです。 XML 文書を XHTML 文書として表示する際に活用します (SVG のサポート状況はまだ公開されていないようです)。
http://www.xfytec.com/ja/manual/app/developer/1.0/spec/reference_xvcd.html
VC の中核となる XML ボキャブラリ (XVCD) です。
http://www.xfytec.com/ja/manual/app/developer/1.0/spec/xhtml_support.html
xfy technology ユーザエージェント (UA) の XHTML のサポート状況です。
http://www.xfytec.com/ja/manual/app/developer/1.0/spec/css_support.html
xfy technology UA の CSS のサポート状況です。
XML 文書の表示方法を定義する際の応用的なリファレンスです。 XML 文書を XHTML 文書以外の方法で表示する際に活用します。
http://www.xfytec.com/ja/manual/app/developer/1.0/spec/reference_table.html
XML 文書をスプレッドシート形式で表示するための XML ボキャブラリです。
http://www.xfytec.com/ja/manual/app/developer/1.0/spec/reference_frame.html
XML 文書をフレーム形式で表示するための XML ボキャブラリです。
http://www.xfytec.com/ja/manual/app/developer/1.0/spec/reference_tabsheet.html
XML 文書をタブシート形式で表示するための XML ボキャブラリです。
http://www.xfytec.com/ja/manual/app/developer/1.0/spec/reference_controls.html
XML 文書をフォーム形式で表示するための XML ボキャブラリです。
XML 文書の編集方法を定義する際の基礎的なリファレンスです。 XML 文書の編集方法 (コマンド) を定義したりコマンドとイベントとを関連付けたりする際に活用します。
http://www.xfytec.com/ja/manual/app/developer/1.0/spec/reference_xvcd.html
コマンドを定義するための XVCD 要素 (xvcd:command) や、イベントとコマンドとを関連付けるための XVCD 要素 (xvcd:action) などが記載されています。
http://www.xfytec.com/ja/manual/app/developer/1.0/spec/reference_instruction.html
コマンドを定義するための XML ボキャブラリです。メソッドやステートメントなどに該当するようです。
http://www.xfytec.com/ja/manual/app/developer/1.0/spec/reference_event.html
キャンバス上で発生したイベントを表現するための XML ボキャブラリです。
XML 文書の編集方法を定義する際の応用的なリファレンスです。組み込みコマンド (ファイル操作やブラウザ操作など) を利用したりユーザインタフェース (UI) を定義したりする際に活用します。
http://www.xfytec.com/ja/manual/app/developer/1.0/spec/reference_command.html
xfy technology に備わっている組み込みコマンドを利用するための XML ボキャブラリです。
http://www.xfytec.com/ja/manual/app/developer/1.0/spec/reference_ui.html
UI を定義するための XML ボキャブラリです。
XML 文書の保存方法を定義する際のリファレンスです。
http://www.xfytec.com/ja/manual/app/developer/1.0/spec/reference_xfr.html
XML 文書を保存する際の整形規則を定義するための XML ボキャブラリです。
XML 文書の新規作成方法を定義する際のリファレンスです。
http://www.xfytec.com/ja/manual/app/developer/1.0/spec/reference_xvcd.html
XML 文書のテンプレートを定義するための XVCD 要素 (xvcd:document-template) が記載されています。
http://www.xfytec.com/ja/manual/app/developer/1.0/spec/reference_newscheme.html
XML 文書の新規作成方法を明示するためのスキームです。
補助機能を利用する際のリファレンスです。
http://www.xfytec.com/ja/manual/app/developer/1.0/spec/reference_function.html
三角関数や統計関数などを利用するための XPath 関数です。
http://www.xfytec.com/ja/manual/app/developer/1.0/spec/reference_data-transferable.html
データを変換するための XML ボキャブラリです。カット & ペースト処理やドラッグ & ドロップ処理などで使用するようです。
http://www.xfytec.com/ja/manual/app/developer/1.0/spec/reference_calculation.html
演算処理を定義するための XML ボキャブラリです。
XVCD をモジュール化する際のリファレンスです。
http://www.xfytec.com/ja/manual/app/developer/1.0/spec/reference_xvcd.html
外部 XVCD ファイルを取り込むための XVCD 要素 (xvcd:import) が記載されています。
http://www.xfytec.com/ja/manual/app/developer/1.0/spec/reference_resource.html
XVCD 中のリソースを外部ファイル化するための XML ボキャブラリです。
まだ公開されていないようです。
技術資料「XVCD によるボキャブラリコンポーネントの開発手順」の私的要約です。
http://www.xfytec.com/ja/manual/app/developer/1.0/howto/vc_develop.html
XVCD はボキャブラリコンポーネントを作成するための言語です。 XVCD では、新しい XML ボキャブラリを (既にボキャブラリコンポーネントが存在する) 別の XML ボキャブラリに結びつけることで、 (既存のボキャブラリコンポーネントを再利用して) 新しいボキャブラリコンポーネントを作成します。
XVCD を使ったボキャブラリコンポーネントの作成は、 XSLT の作成に似ています。
対象となる XML 文書を用意する
リファレンスやサンプルなどを基に XVCD を作成する
作成した XVCD を XML 文書に適用し、 XVCD の処理結果を確認する
必要に応じて 2. ~ 3. を繰り返す
作成した XVCD を XML 文書に適用するには、下記の 3 種類の方法があります。
ボキャブラリコンポーネントを xfy technology ユーザエージェント (UA) に登録する、一番オーソドックスな方法です。 JAR ファイルの作成には、 Java 言語の知識や Java コンパイラなどが必要です。 JAR ファイルの作成については、対話形式で作成するためのツールが提供される予定です。
scripts ディレクトリに格納するJAR ファイルを作成することなく、ボキャブラリコンポーネントを xfy technology UA に登録する方法です。 Java 言語の知識や Java コンパイラなどは不要ですが、専用の開発支援環境 xfy Developer's Toolkit が必要です。後述の PI を用いた方法とは異なり、 XVCD の変更内容を反映するには xfy technology UA の再起動が必要です。
PI を使って XVCD を XML 文書に関連付ける方法です。 XML 文書に下記の PI を記述します。
<?com.xfytec vocabulary-connection href="XVCD ファイルの URL"?>
前述の scripts ディレクトリに格納する方法と同様、 JAR ファイルの作成は不要ですが、 xfy Developer's Toolkit が必要です。 scripts ディレクトリに格納する方法とは異なり、 XML 文書を再読み込みするだけで XVCD の変更内容が反映されます。
現在公開されている xfy technology UA (xfy Combo Pack 051031) には、 xfy Developer's Toolkit 1.0 が同梱されています。
技術資料「XSLT 1.0 と XVCD 1.0 の比較」の私的要約です。
http://www.xfytec.com/ja/manual/app/developer/1.0/spec/difference_xslt_xvcd.html
XVCD 1.0 は XSLT 1.0 をベースにした記述言語です。 XVCD 1.0 は、 XSLT 2.0 WD の要素や独自の要素・属性などを取り入れているので、ルート要素や名前空間 URI などが XSLT 1.0 のものとは異なります。
|
項目 |
XSLT 1.0 の仕様 |
XVCD 1.0 の仕様 |
|---|---|---|
|
前方互換性の規定 |
XSLT 1.0 W3C 勧告の「2.5 Forwards-Compatible Processing」に規定されています。 |
下記の 2 点を除き、前方互換性は規定されていません。
|
|
リテラル結果要素をルート要素にする |
ルート要素にできます。 |
ルート要素にできません。ルート要素は |
|
XML 文書への DTD の適用 |
適用されます (XML パーサによる ?)。 |
適用されません。そのため、デフォルト属性値、 ID 型の属性、実体参照などは機能しません。 |
|
|
要素の内容の後に記述するとエラーになります。 |
要素の内容の後に記述してもエラーになりません。要素の内容の後に記述した属性も追加されます。 |
|
XML 文書への関連付け |
XML 文書中に PI を記述します。 |
3 通りの方法があります。 |
xsl:fallback 要素 (xvcd:fallback 要素として定義されていますが、機能しません)
xsl:output 要素 (xvcd:output 要素として定義されていますが、機能しません)
case-order 属性 (xsl:sort 要素)
disable-output-escaping 属性 (xsl:text 要素)
extension-element-prefixes 属性 (xsl:stylesheet 要素、 xsl:transform 要素)
grouping-separator 属性 (xsl:number 要素)
grouping-size 属性 (xsl:number 要素)
lang 属性 (xsl:number 要素、 xsl:sort 要素)
letter-value 属性 (xsl:number 要素)
terminate 属性 (xsl:message 要素)
element-available() 関数
function-available() 関数
id() 関数
system-property() 関数
unparsed-entity-uri() 関数
cursor-move-in 属性 (xvcd:value-of 要素)