リファレンスの読み方

1. リファレンスの構成

この章では、実際のXVCDによる開発作業に沿ってリファレンスの各項目を説明します。この章を読むことで、開発作業の各段階で参考となるリファレンスがわかります。主に以下の項目について説明します。

1.1. XML文書の表示・編集

XVCDファイルには、例1のようなXMLデータ構造(変換元XML文書)を例2のような結果のデータ構造(変換後のXML文書)に変換する規則を記述します。XVCDファイルに記述されたコードは、変換のひな形となる規則(テンプレートルール)の集合と言えます。

[例1]XMLデータ構造(変換元XML文書)

<?xml version="1.0"?>
<hw:document xmlns:hw="http://xmlns.example.com/developer/tutorial/helloworld">
   <hw:message>
      Hello World!
   </hw:message> 
</hw:document>

[例2]結果のデータ構造(変換後のXML文書)

<?xml version="1.0"?>
<xhtml:html
   xmlns:xhtml="http://www.w3.org/1999/xhtml"
   xmlns:hw="http://xmlns.example.com/developer/tutorial/helloworld"
   >
   <xhtml:body>
      <xhtml:p>
         Hello World!
      </xhtml:p>
   </xhtml:body>
</xhtml:html>

XVCDによるボキャブラリコンポーネント開発では、テンプレートルールを2つの手順で作成します。

  1. テンプレートルールを適用する対象を記述する
    何に対してテンプレートルールを適用するかを記述します。
  2. テンプレートルールによる変換結果を記述する
    テンプレートルールを適用する対象が持つどのデータをどのように出力するかを、テンプレートルールに記述します。

XMLボキャブラリに対応する編集機能は、XVCDの編集に関係する要素や関数をテンプレートルールに記述すると実現できます。

XVCDでテンプレートルールを記述することで、単にXML文書を表示するだけではなく、次のような表現を利用できます。

  • 表形式でXML文書を表示する
  • ウィンドウをいくつかに区切り、それぞれに別の内容を表示する
  • タブシートを使ってXML文書やユーザーインターフェイスを切り替える
  • ボタンやドロップダウンリストを使ったユーザーインターフェイスを提供する
  • ツリーを使って階層構造を表現する

XML文書の表示と編集に関係するリファレンスは、以下のとおりです。

  • 「VC中核リファレンス:要素・属性編」
    XVCDにとって基本要素である頂点要素やテンプレート要素など、テンプレートルールを解説します。
  • 「VC中核リファレンス:コマンドインストラクション・関数編」
    XML文書の編集に関係するインストラクションや関数を説明します。
  • 「XHTMLサポート状況」
    XVCDで生成する変換後のXML文書にXHTMLを使用すると、XML文書をXHTMLの表現力を使って表示できます。「XHTMLサポート状況」では、xfyユーザーエージェントのXHTMLのサポート状況を解説します。
  • 「表記述リファレンス」
    XVCDで生成する変換後のXML文書に表記述ボキャブラリを使用すると、XML文書を表形式で表示できます。「表記述リファレンス」では、表形式でXML文書を表示するボキャブラリを解説します。
  • 「フレーム記述リファレンス」
    XVCDで生成する変換後のXML文書にフレーム記述ボキャブラリを使用すると、ウインドウをいくつかに区切ってXML文書を表示できます。「フレーム記述リファレンス」では、ウインドウをフレームに分割する方法と各フレーム内にXML文書を表示するためのボキャブラリを解説します。
  • 「タブシート記述リファレンス」
    XVCDで生成する変換後のXML文書にタブシート記述ボキャブラリを使用すると、タブシートを使ってXML文書やユーザーインターフェイスを切り替えられます。「タブシート記述リファレンス」では、タブシートの作成方法とXML文書をタブシートの中に表示するボキャブラリを説明します。
  • 「CSS level 2サポート状況」
    xfyユーザーエージェントでは、CSSを使って変換後のXML文書をレイアウトできます。このリファレンスでは、xfyユーザーエージェントによるCSS level 2のサポート状況を解説します。
  • 「コントロール記述リファレンス」
    XVCDで生成する変換後のXML文書にコントロール記述ボキャブラリを使用すると、ボタンやドロップダウンリストなどを使ったユーザーインターフェイスを作成できるようになります。「コントロール記述リファレンス」では、使用可能なコントロールの種類や、それぞれのコントロールを使用してXML文書を表示するためのボキャブラリを説明します。関連する文書には、「コントロール記述のCSSサポート状況」および「コントロール記述のキー割付・マウス操作」があります。
  • 「型制約に基づく補正入力機能リファレンス」
    コントロール記述ボキャブラリの入力コントロールや、 xvcd:text-of要素での入力に対して、型制約に基づく補正入力機能を利用することができます。この補正入力機能を利用すると、入力された値をXVCDで指定された制約や書式に基づいて補正することができます。「型制約に基づく補正入力機能リファレンス」では、型制約に基づく補正入力機能の詳細やXVCDでの利用方法を説明します。
  • 「ツリー表示コンポーネントリファレンス」
    XVCDで生成する変換後のXML文書にツリー記述ボキャブラリを使用すると、ツリー構造を使ってXML文書を表示できます。「ツリー表示コンポーネントリファレンス」では、XML文書をツリー表示するためのボキャブラリと、ツリー表示コンポーネントのキー割付・マウス操作などの仕様を説明します。
  • 「有向グラフ記述リファレンス」
    XVCDで生成する変換後のXML文書に有向グラフ記述ボキャブラリを使用すると、有向グラフ構造を使ってXML文書を表示できます。「有向グラフ記述リファレンス」では、有向グラフ記述を使ってXML文書を表示するためのボキャブラリを説明します。関連する文書には、「有向グラフコンポーネント仕様」があります。
  • 「チャート記述リファレンス」
    XVCDで生成する変換後のXML文書にチャート記述ボキャブラリを使用すると、チャート(ビジネスグラフ)を使ってXML文書を表示できます。「チャート記述リファレンス」では、チャート記述を使ってXML文書を表示するためのボキャブラリを説明します。関連する文書には、「チャートコンポーネント仕様」「チャート記述:要素階層図」があります。

1.2. XMLデータ構造の操作

キーやマウス、メニューバーなどを操作して、ユーザーはXML文書を編集します。XML文書の編集操作によっては、変換元のXML文書への新しい要素の追加や、要素の削除など、XMLデータ構造を操作する必要が生じます。

キーやマウスのユーザー操作はイベントとして表現されます。xfy technologyでは、あらかじめ基本的なユーザー操作に対応するイベントを提供しています。

メニューバーやツールバーには、ボキャブラリコンポーネントで作成したメニュー項目を追加してユーザーインターフェイスをカスタマイズできます。

キーやマウス、メニューバーなどを操作すると、コマンドが実行されます。ユーザーの操作に対応してXMLデータ構造を操作するときは、コマンドで行います。コマンドには、xfy technologyで提供される組み込みコマンドとボキャブラリコンポーネントで作成するコマンドの2種類があります。

組み込みコマンドを利用するときは、提供されているコマンドをイベントやユーザーインターフェイスに割り付けます。

ボキャブラリコンポーネントでコマンドを作成するには、コマンド要素( xvcd:command要素)内にコマンドの処理(コマンドインストラクション)や制御文(条件分岐など)を記述します。作成したコマンドはイベントやユーザーインターフェイスに割り付けます。

イベントにコマンドを割り付けるには、アクション要素( xvcd:action要素)を使用します。ユーザーインターフェイスにコマンドを割り付けるには、ユーザーインターフェイス記述を使用します。コマンドをイベントやユーザーインターフェイスに割り付けると、ユーザーがそのコマンドを実行できるようになります。

XMLデータ構造の操作に関係するリファレンスは、以下のとおりです。

1.3. ボキャブラリコンポーネントへの補助機能の追加

ボキャブラリコンポーネントが扱うXMLボキャブラリによっては、次に挙げるような高度な表示・編集機能を必要とする場合があります。

  • 日付を自動的に更新する
  • 平方根や三角関数を使用した計算をする

xfy technologyが提供する補助機能を使用すると、容易に高度な表示・編集機能に対応できます。xfy technologyには、補助機能として計算スクリプトとデータ変換、プラットフォーム拡張関数が用意されています。

ボキャブラリコンポーネントの補助機能に関係するリファレンスは、以下のとおりです。

1.4. XML文書の保存と新規作成

保存するXML文書の書式を整えるために、XVCDでは書式整形規則を記述できます。この書式整形規則をXFR(XML Formatting Rule)と呼びます。XFRではXML文書で使用されている要素ごとに書式の整形方法を指定して、XML文書をソース表示したときの体裁を整えることができます。指定できる書式の整形方法には、次のようなものがあります。

  • 要素の配置方法
  • 要素内の空白の扱い
  • インデント位置

xfyユーザーエージェントで新規XML文書を作成するときは、文書テンプレートを使用できます。文書テンプレートを作成するには、ドキュメントテンプレート要素( xvcd:document-template要素)を使用します。ドキュメントテンプレート要素内に記述されたテンプレートルールに現在処理中のXVCDが適用されて、文書テンプレートが作成されます。

既存のXMLファイルをそのまま新規XML文書として利用することもできます。新規XML文書の作成については、新規XML文書作成スキームのリファレンスを参照してください。

XML文書の保存と新規作成に関するリファレンスは以下のとおりです。

1.5. 効率的なボキャブラリコンポーネントの作成支援

XVCDでボキャブラリコンポーネントを作成するときに、効率的に開発を進めるため、そのコンポーネントの情報や共通で使用する文字列などを別のファイルに記述して、XVCDファイルから参照できます。このような目的のためにリソースファイルが用意されています。

プラグインマニフェストファイルには、ボキャブラリコンポーネントの登録やアップデートに必要な、次のような情報を記述します。

  • ベンダー名
  • ボキャブラリコンポーネントのバージョン

プラグインマニフェストファイルを作成することで、ボキャブラリコンポーネントの管理が容易になります。

xvcd:import要素を使用すると、複雑なXVCDの一部分を別ファイルに記述することができます。XVCDの一部分を別ファイルにして共用すると、同じ処理を記述する手間が省け、またコードを読みやすくすることができます。

たとえば、表やリスト、文章をそれぞれ表示させるXVCDファイルを作成したり、部署ごとや章ごとにXVCDファイルを作成したりして、必要に応じて結合して利用するような用途が考えられます。

ボキャブラリコンポーネントの作成支援に関係するリファレンスは以下のとおりです。

2. リファレンスの表記

各リファレンスで共通に使用される表記について説明します。

2.1. 名前空間接頭辞

説明中で使用する名前空間接頭辞は、各リファレンスの冒頭で明記します。

2.2. データ型

説明で使用するデータ型の表記は、特に明記しない限り、次のデータ型表記に準拠します。

  • 要素内に記述する値・属性に設定する値
    XSLTのW3C勧告、または、XML SchemaのW3C勧告で使用されているデータ型
  • 関数の引数・返値
    XPathのW3C勧告で使用されているデータ型
有修飾名(QName)について

XVCDに記述される以下のオブジェクトの名前は、有修飾名(QName)で指定されます。

  • ボキャブラリ
  • 名前付きテンプレート
  • モード
  • 変数またはパラメータ
  • キー
  • 属性セット
  • ユーザーデータ
  • プロパティ
  • コマンド
  • 単純型
  • デシマルフォーマット

これらの名前に名前空間接頭辞が含まれている場合は、そのコンテキストに定義されている名前空間を使って、名前空間接頭辞を名前空間URI参照に展開します。名前空間接頭辞が含まれない場合は、名前空間URI参照が空文字列の有修飾名が使用されます。この場合、デフォルトの名前空間は適用されません。

エンコード済みURLについて

いろいろなところで見かけるURL表記には、本来URLには使用できない文字が使われていることがあります。たとえば以下のURL表記は、厳格にURLの定義と照らし合わせれば正しくありません。

  • file:///C:/WINDOWS/シャボン.bmp  (カタカナが含まれている)
  • file:///C:/Documents and Settings/ (半角空白が含まれている)
  • http://www.xfy.com/%2%20 (文字のエンコード表記が正しくない)

xfy technologyでは、URLに使用できない文字を適切にエンコードした正規のURL表記を、エンコード済みURLと呼びます。

xfy technologyでは、以下に挙げた以外の文字が含まれるURLは、エンコード済みURLとは見なしません。

  • 半角アルファベット(大文字・小文字とも)
  • 半角数字 次に列挙する記号
    #/;?:@&=+$,-._!~*'()%[]

URLの厳格な定義はスキーマごとに異なります。詳細は各スキーマを定義したRFCを参照してください。

XVCDでエンコード済みURLを要求される場合、 function:url-encode()関数を使用するとエンコード済みURLを生成できます。また、エンコード済みURLから人が読みやすい形式に変換する function:url-decode()関数も用意されています。