VC中核リファレンス:要素・属性編

VC中核ボキャブラリの概要や、要素・属性を解説します。

1. 概要

VC中核ボキャブラリの概要を説明します。

1.1. 用途・役割

XML文書の変換、ユーザー操作(アクション)への対応、文書編集のためのコマンドインストラクションなど、VCの中核となる機能を記述するボキャブラリです。このボキャブラリを主体に、ほかの基本機能のボキャブラリを組み合わせてXVCDを記述します。 VC中核ボキャブラリで定義される要素は、次の機能に分類できます。

  • ボキャブラリの関連付け、変換
  • ユーザー操作への対応の割り付け
  • XML文書編集用のコマンドインストラクション
  • コマンドの定義
  • XML文書編集時に使用する変数の管理

1.2. 名前空間URI参照

VC中核ボキャブラリの名前空間URI参照は http://xmlns.xfy.com/xvcd です。 以下の説明で、VC中核ボキャブラリの要素を記述するときは、xvcd:という名前空間接頭辞を使用します。

このほか、以下の説明中に出現するボキャブラリと、そのボキャブラリに使用している名前空間接頭辞は次のとおりです。

また、XSLTの要素を記述するときは、xsl:という名前空間接頭辞を使用します。属性は、特に明記しない限りは、属性を使用する要素と同じ名前空間で定義されたものです。

2. VC中核ボキャブラリに属する要素・属性

VC中核ボキャブラリに属する要素や属性を、機能ごとに解説します。VC中核ボキャブラリに属するコマンドインストラクションや関数については、「VC中核リファレンス:コマンドインストラクション・関数編」をご覧ください。

2.1. ルート要素

VC中核ボキャブラリのルート要素は、xvcd:xvcd要素です。

xvcd:xvcd 要素

ほかのすべてのVCで使用する名前空間を含めて、XVCDを記述するときのルート要素となります。 XVCDのすべての内容は、この要素内に記述します。

属性:
id

xvcd:xvcd要素を識別するID値を設定する属性です。

省略された場合は、値が設定されていないと見なされます。

exclude-result-prefixes

変換元XML文書に使用されている名前空間のうち、変換結果からは除外する名前空間を設定する属性です。 値には、除外する名前空間の名前空間接頭辞を空白で区切って記述します。 exclude-result-prefixes="#all" と記述すると、xvcd:xvcd要素内にあるすべての名前空間が除外されます。

省略された場合は、値が設定されていないと見なされます。

version (必須)

XVCDのバージョン番号を設定する属性です。必ず1.0を設定します。

内容:

xvcd:xvcd要素内に記述できる要素は、以下のとおりです。

2.2. XML文書構造

VC中核ボキャブラリで、XML文書の構造を表すために使用される要素・属性は、以下のとおりです。

xvcd:element 要素

変換後の文書に新しい要素を出力するときに使用する要素です。 出力する要素名を、変換時に動的に変更したいときに使用できます。

属性:
name (必須)

変換後の文書に出力する要素の名前を設定する属性です。QNameで記述します。属性値テンプレートを使用できます。

namespace

出力する要素の名前を定義する名前空間の名前空間URI参照を設定する属性です。URI文字列で記述します。属性値テンプレートを使用できます。

省略された場合は、値が設定されていないと見なされます。

use-attribute-sets

xvcd:attribute-set要素で定義された属性セットを使用するときに設定する属性です。使用する属性セットの名前をQNameで、空白でつなげて記述します。

省略された場合は、属性セットは使用されません。

内容:

xvcd:element要素内には、変換後の文書に要素を出力するときに、その内容として記述するテンプレートルールを記述できます。ただし、 xvcd:param要素は記述できません。

xvcd:attribute 要素

変換後の文書に出力する要素に、新しい属性を付加したいときに使用する要素です。 出力する属性名を、変換時に動的に変更したいときに使用できます。

属性:
name (必須)

変換後の文書に出力する要素に付加するの属性の名前を設定する属性です。QNameで記述します。属性値テンプレートを使用できます。

namespace

属性の名前を定義する名前空間の名前空間URI参照を設定する属性です。URI文字列で記述します。属性値テンプレートを使用できます。

省略された場合は、値が設定されていないと見なされます。

内容:

xvcd:attribute要素内には、変換後の文書に出力する要素に付加する属性の値となるテンプレートルールを記述できます。ただし、 xvcd:param要素は記述できません。

xvcd:attribute-set 要素

属性セットを定義する要素です。この要素で定義された属性セットは、次の要素のuse-attribute-sets属性で使用できます。

属性:
name (必須)

属性セットの名前をQNameで定義します。

use-attribute-sets

ほかのxvcd:attribute-set要素ですでに定義されている属性セットを使用する場合に設定します。使用する属性セットの名前をQNameで、空白でつなげて記述します。

省略された場合は、ほかのxvcd:attribute-set要素ですでに定義されている属性セットは使用されません。

内容:

xvcd:attribute-set要素内に記述できる要素は、以下のとおりです。

  • xvcd:attribute要素
    必要に応じて、任意の数だけ記述できます。 省略可能です。

xvcd:namespace 要素

変換後の文書に名前空間ノードを出力するときに使用する要素です。 出力しようとした名前空間接頭辞が、変換後の文書で別の名前空間URI参照に使用されている場合は、エラーになります。

属性:
name (必須)

変換後の文書に出力する名前空間の名前空間接頭辞を設定する属性です。NCNameで記述します。属性値テンプレートを使用できます。

select

変換後の文書に出力する名前空間の名前空間URI参照を設定する属性です。 xvcd:namespace要素内に出力する名前空間URI参照を記述する場合は、使用できません。

省略された場合は、値が設定されていないと見なされます。

内容:

xvcd:namespace要素内には、変換後の文書に出力する名前空間の名前空間URI参照を記述できます。 名前空間URI参照を記述した場合は、select属性は使用できません。

xvcd:namespace-alias 要素

XVCDファイル内で使用している名前空間URI参照を、変換後の文書で別の名前空間URI参照に変更して出力するときに使用する要素です。

属性:
stylesheet-prefix (必須)

XVCDファイル内で使用している名前空間URI参照に対応する名前空間接頭辞を記述する属性です。名前空間接頭辞はNCNameで設定します。 stylesheet-prefix="#default" と記述すると、デフォルト名前空間を対象とします。

result-prefix (必須)

変換後の文書に出力するときの名前空間URI参照に対応する名前空間接頭辞を記述する属性です。名前空間接頭辞はNCNameで設定します。 result-prefix="#default" と記述すると、デフォルトの名前空間URI参照が使用されます。

内容:

xvcd:namespace-alias要素内は空要素です。

xvcd:processing-instruction 要素

変換後の文書に必要な処理命令を出力するときに使用する要素です。

属性:
name (必須)

出力する処理命令の名前を設定する属性です。NCNameで記述します。属性値テンプレートを使用できます。

内容:

xvcd:processing-instruction要素内には、変換後の文書に出力する処理命令の内容となるテンプレートルールを記述できます。ただし、 xvcd:param要素は記述できません。

xvcd:comment 要素

変換後の文書にXML形式のコメントを出力するときに使用する要素です。

属性:

属性はありません。

内容:

xvcd:comment要素内には、変換後の文書に出力するコメントの内容となるテンプレートルールを記述できます。ただし、 xvcd:param要素は記述できません。

2.3. XML文書の変換

VC中核ボキャブラリで、XML文書の変換に使用される要素・属性は以下のとおりです。

xvcd:vocabulary 要素

変換元XML文書から構築されたDOMツリーの特定の要素を頂点とする部分木に、ボキャブラリを関連付ける要素です。 必ず、XVCDファイル内のほかの場所で記述された xvcd:template要素と組にして使用します。

属性:
name (必須)

ボキャブラリ名を設定する属性です。QNameで設定します。

match (必須)

ボキャブラリを関連付ける部分木の頂点要素を特定するXPathパターンを指定する属性です。

call-template (必須)

xvcd:template要素のname属性に記述された、名前付きテンプレートの名前を設定する属性です。QNameで設定します。

priority

ボキャブラリの優先順位を指定する属性です。 数値で設定します。

省略された場合は、デフォルトの優先度が設定されます。
デフォルトの優先度は、com.xfy vocabulary-connection処理命令でXML文書にXVCDが関連付けられている場合は“1.0”、それ以外の方法で関連付けられている場合は“0”です。

内容:

xvcd:vocabulary要素内に記述できる要素は、以下のとおりです。

ui:ui要素によって記述されたユーザーインターフェイスは、対象のボキャブラリにフォーカスがあるときのみ有効となります。

xvcd:template 要素

変換元XML文書のDOMツリーのノードセットを変換するためのテンプレートルールを、要素内に記述する要素です。

属性:
name

テンプレートを呼び出すときの名前を設定する属性です。QNameで設定します。 match属性を記述しない場合は、この属性を記述する必要があります。 name属性を設定したテンプレートは、名前付きテンプレートと呼ばれます。

省略された場合は、値が設定されていないと見なされます。

match

テンプレートを適用する要素を特定するXPathパターンを指定する属性です。name属性を記述しない場合は、この属性を記述する必要があります。

省略された場合は、値が設定されていないと見なされます。

mode

xvcd:apply-templates要素でテンプレートルールを適用するときに、適用するテンプレートルールを指定する属性です。QNameで設定します。 同じXPathパターンが指定されたテンプレートルールが複数存在し、場合によって使い分けたいときに使用します。 xvcd:template要素にmode属性が設定されている場合、その値が xvcd:apply-templates要素mode属性の値と一致するxvcd:template要素のテンプレートルールが適用されます。

省略された場合は、値が設定されていないと見なされます。

priority

テンプレートルールの優先度を設定します。

省略された場合は、デフォルトの優先度が割り当てられます。

内容:

xvcd:template要素内には、テンプレートルールを記述します。

xvcd:apply-templates 要素

テンプレートルールを適用するノードに含まれる子ノードに、別のテンプレートを適用するために使用する要素です。 別のテンプレートを適用するノードセットは、select属性やmode属性で指定します。省略された場合は、ノードセット内のすべての子ノードが適用対象となります。

属性:
select

適用対象となるノードセットをXPath式で指定する属性です。

省略された場合は、ノードセット内のすべての子ノードが適用対象となります。

mode

適用するテンプレートルールを適用するモードを指定する属性です。QNameで設定します。 xvcd:template要素に指定されたmode属性が一致するテンプレートルールが適用されます。

省略された場合は、値が設定されていないと見なされます。

内容:

xvcd:apply-templates要素内に記述できる要素は、以下のとおりです。

  • xvcd:sort要素
    必要に応じて、任意の数だけ記述できます。 省略可能です。
  • xvcd:with-param要素
    必要に応じて、任意の数だけ記述できます。 省略可能です。
  • xvcd:filler要素
    必要に応じて、1つだけ記述できます。 省略可能です。

xvcd:next-match 要素

xvcd:apply-templates要素で適用されたテンプレート中に記述し、そのノードに対して複数のテンプレートルールが適用できるときに、現在のテンプレートの次に高い優先度が設定されているテンプレートを適用する要素です。

属性:

属性はありません。

内容:

xvcd:next-match要素内に記述できる要素は、以下のとおりです。

xvcd:filler 要素

xvcd:apply-templates要素 xvcd:text-of要素で適用可能なテンプレートルールがないときに、代替として適用するテンプレートルールを記述する要素です。

属性:

属性はありません。

内容:

xvcd:filler要素内には、テンプレートルールを記述できます。ただし、 xvcd:param要素は記述できません。

xvcd:call-template 要素

名前付きテンプレートを呼び出すときに使用する要素です。

属性:
name (必須)

名前付きテンプレートの名前を指定する属性です。QNameで指定します。 名前付きテンプレートの名前には、xvcd:template要素のname属性に記述した値を記述します。

内容:

xvcd:call-template要素内に記述できる要素は、以下のとおりです。

xvcd:text 要素

変換後の文書に任意のテキスト文字列を出力するときに使用する要素です。 通常はテンプレートルールに直接文字列を記述すると、変換後の文書に出力されます。xvcd:text要素は、変換後の文書に出力する空白の状態を制御したい場合に使用できます。 xvcd:text要素で変換後の文書に出力した文字列は、キャンバス上では編集できません。

属性:
cursor-move-in

xvcd:text要素内に記述したテキスト文字列にキャレットを移動できるかできないかを指定する属性です。真偽値を設定します。 trueを指定すると、テキスト文字列にキャレットを移動できます。falseを指定すると、テキスト文字列にキャレットを移動できなくなります。

省略された場合は、falseが設定されたと見なされます。

内容:

xvcd:text要素内には、PCDATA文字列を記述できます。

xvcd:value-of 要素

select属性で指定されたテキストを変換後の文書へ出力するときに使用する要素です。 xvcd:value-of要素で変換後の文書へ出力したテキストは編集できません。

属性:
select (必須)

文字列を表現するXPath式を設定する属性です。XPath式を評価した結果は、string()関数と同じ方法でテキストに変換されて、変換後の文書へ出力されます。

cursor-move-in

xvcd:value-of要素内に記述されたテキストデータにキャレットを移動できるかできないかを指定する属性です。真偽値を設定します。 trueを指定すると、テキストデータにキャレットを移動できます。falseを指定すると、テキストデータにキャレットを移動できなくなります。

省略された場合は、falseが設定されたと見なされます。

内容:

xvcd:value-of要素は空要素です。

xvcd:copy-of 要素

変換元XML文書のノードセットの内容を、変換後の文書にそのままコピーして出力するときに使用する要素です。 また、コマンドインストラクションから返されたXML文書フラグメントを、そのまま変換後の文書にコピーするときにも使用します。

xvcd:copy-of要素は、select属性で指定されたノードセットに含まれるすべての種類のノードを、そのまま変換後の文書にコピーします。コピーされるノードには名前空間ノードも含まれます。そのため、xvcd:copy-of要素を使用してコピーした結果には、一見不要と思える名前空間宣言が付加されることがあります。これは、select属性で指定されたノードセットを安全にコピーするために必要な処理です。

属性:
select (必須)

変換後の文書にコピーする文書ノードセットを指定する属性です。ノードセットを特定するXPath式を設定します。

内容:

xvcd:copy-of要素は空要素です。

xvcd:copy 要素

カレントノードを変換後の文書にコピーして出力するときに使用する要素です。カレントノードの名前空間ノードも自動的にコピーされますが、属性と子供ノードは自動的にはコピーされません。

xvcd:copy要素は、カレントノードの名前空間ノードを、そのまま変換後の文書にコピーします。そのため、xvcd:copy要素を使用してコピーした結果には、一見不要と思える名前空間宣言が付加されることがあります。これはカレントノード以下の内容を安全にコピーするために必要な処理です。

属性:
use-attribute-sets

xvcd:attribute-set要素で定義された属性セットを、コピーされた要素に使用するときに設定する属性です。使用する属性セットの名前をQNameで、空白でつなげて記述します。

省略した場合は、属性セットは使用されません。

内容:

xvcd:copy要素内には、テンプレートルールを記述できます。ただし、 xvcd:param要素は記述できません。

xvcd:apply-vocabularies 要素

変換元XML文書から構築されたDOMツリーの特定の要素を頂点とする部分木に、現在使用しているボキャブラリとは別のボキャブラリを適用するときに使用する要素です。

属性:
select (必須)

別ボキャブラリの適用対象となるノードをXPath式で指定する属性です。

※同じノードに複数のボキャブラリを適用すると、最初のボキャブラリだけが適用されます。

name

優先するボキャブラリ名を設定する属性です。QNameで設定します。

省略された場合は、システムに設定された優先度によってボキャブラリが選択されます。

内容:

xvcd:apply-vocabularies要素は空要素です。

xvcd:message 要素

XVCDを処理するプロセッサに対して、メッセージを出力する要素です。 出力したメッセージは、XVCDを処理するプロセッサによって処理されます。

属性:

属性はありません。

内容:

xvcd:message要素内には、テンプレートルールを記述できます。ただし、 xvcd:param要素は記述できません。 テンプレートルールとして記述した内容が、メッセージとしてXVCDを処理するプロセッサに出力されます。

xvcd:key 要素

変換元XML文書内の特定のノードに関連付けられるキーを定義します。ノードに関連付けたキーは、 xvcd:key()関数を使用してノードを参照するときに使用できます。

属性:
name (必須)

キーの名前をQNameで設定します。

match (必須)

キーを設定するノードを特定するXPathパターンを設定します。

use (必須)

キーの値を表すXPath式を設定します。
このXPath式は、キーを関連付けるノードをコンテキストノードとして評価されます。評価結果がノードセットの場合は、それぞれのノードを文字列として評価した複数の文字列が関連付けられます。評価結果がノードセット以外の場合は、単一の文字列として評価した文字列が関連付けられます。

内容:

xvcd:key要素は空要素です。

xvcd:number 要素

変換後の文書内に、書式に従って整形した数値を挿入する要素です。value属性が指定された場合は、そのXPath式を数値として評価した結果を数値として使用します。value属性が指定されていない場合は、level属性・count属性・from属性の指定に従って数値を評価します。

属性:
level

対象とする変換元XML文書のレベルを指定します。singlemultipleanyの中から値を指定します。

省略された場合、singleが指定されたものとみなされます。

count

カウントするノードを指定するXPathパターンを指定します。

省略された場合、カレントノードと同じノード型を持つすべてのノードに適合するXPathパターンを使用します。また、カレントノードが展開名を持つ場合は、それと同じ展開名を持つすべてのノードに適合するXPathパターンを使用します。

from

カウントを開始する場所を指定するXPathパターンを指定します。

省略された場合、頂点ノードからカウントを開始します。

value

表示する数値を表すXPath式を指定します。

省略された場合、level属性・count属性・from属性の指定に従って数値を評価します。

format

数値から文字列へ変換するときに使用する書式を指定します。書式はxsl:number要素のformat属性と同じ形式で記述します。

省略された場合、"1"が指定されたものとみなされます。

内容:

xvcd:number要素は空要素です。

xvcd:strip-space 要素

変換元XML文書に記述された要素のうち、空白を削除してもかまわない要素の集合を定義する要素です。

属性:
elements (必須)

空白を削除してもかまわない要素を特定するXPathパターンを、空白で区切って記述します。

内容:

xvcd:strip-space要素は空要素です。

xvcd:preserve-space 要素

変換元XML文書に記述された要素のうち、空白を保持しなければならない要素の集合を定義する要素です。

属性:
elements (必須)

空白を保持しなければならない要素を特定するXPathパターンを、空白で区切って記述します。

内容:

xvcd:preserve-space要素は空要素です。

xvcd:decimal-format 要素

xvcd:format-number()関数で利用する10進数数値の書式を定義する要素です。

属性:
name

10進数数値の書式の名前をQNameで定義します。

省略された場合は、デフォルトで使用される10進数数値の書式を定義します。

decimal-separator

小数点記号として使用する文字を指定します。

省略された場合は、ピリオド文字(.)を使用します。

grouping-separator

グループ化(たとえば 1000 単位)の区切り記号として使う文字を指定します。

省略された場合は、コンマ文字(,)を使用します。

infinity

無限大を表すために使う文字列を指定します。

省略された場合は、文字列「Infinity」を使用します。

minus-sign

マイナス記号として使用する文字を指定します。

省略された場合は、ハイフン文字(-)を使用します。

NaN

NaN型の値を表すために使用する文字列を指定します。

省略された場合は、文字列「NaN」を使用します。

percent

パーセント記号として使う文字を指定します。

省略された場合は、パーセント記号(%)を使用します。

per-mille

パーミル(千分率)記号として使う文字を指定します。

省略された場合は、パーミル記号 (Unicode で#x2030)を使用します。

zero-digit

ゼロを表記するときに使う文字を指定します。

省略された場合は、算用数字のゼロ(0)を使用します。

digit

書式文字列パターンに含まれる数字の表記に使う文字を指定します。

省略された場合は、ナンバー記号(#)を使用します。

pattern-separator

書式文字列パターン内の、プラスのサブパターンとマイナスのサブパターンを区切るために使う文字を指定します。

省略された場合は、セミコロン文字(;)を使用します。

内容:

xvcd:decimal-format要素は空要素です。

2.4. XML文書の編集操作

VC中核ボキャブラリで、XML文書の編集操作を実現するために使用する要素・属性は以下のとおりです。

xvcd:text-of 要素

変換元XML文書のDOMツリーのテキストノードまたは属性ノードの値を参照して、変換後の文書に編集可能なテキストとして出力するときに使用する要素です。 出力されたテキストが編集可能となる点が、 xvcd:value-of要素と大きく異なります。

属性:
select (必須)

値を参照して変換後の文書にテキストとして出力する変換元XML文書のDOMツリーのノードを指定する属性です。ノードを特定するXPath式を設定します。 XPath式を評価した結果得られたノードの種類によって、変換後の文書へ出力されるテキストの取得先が異なります。

  • 得られたノードがテキストノードの場合
    ノードのテキストデータが変換後の文書に出力されます。
  • 属性ノードの場合
    属性の値がテキスト化されて変換後の文書に出力されます。
  • 要素ノードの場合
    position属性に設定された値によって異なります。詳細は、position属性をご覧ください。

参照先のテキストノードまたは属性ノードが見つからない場合は、filler属性、またはxvcd:text-of要素内に記述された xvcd:filler要素の内容が、代替文字列として出力されます。 filler属性、またはxvcd:filler要素の記述がない場合は、"???"が出力されます。

position

select属性に記述されたXPath式を評価した結果得られたノードが要素ノードのときに、その要素相対のどのテキストノードを参照して変換後の文書にテキストを出力するかを指定する属性です。設定する値とデータを取得するテキストノードは以下のとおりです。

first-child
要素内の最初の子であるテキストノードから取得したテキストデータを出力します。
last-child
要素内の最後の子であるテキストノードから取得したテキストデータを出力します。
before
要素の直前にあるテキストノードから取得したテキストデータを出力します。
after
要素の直後にあるテキストノードから取得したテキストデータを出力します。

省略された場合は、first-childが設定されたと見なされます。

mutable

変換後の文書に出力されたテキストデータを、編集可能か不可能かを指定する属性です。真偽値で指定します。 trueを指定すると、テキストデータが編集可能となります。また、cursor-move-in属性の指定にかかわらず、テキストデータ内にキャレットを移動できます。falseを指定すると、テキストデータが編集不可能となります。falseを指定したとき、テキストデータ内にキャレットを移動できるかできないかは、cursor-move-in属性の指定に従います。 属性値テンプレートを使用できます。

省略された場合は、trueが設定されたと見なされます。

cursor-move-in

mutable属性にfalseが指定されているときに、変換後の文書に出力されたテキストデータ内に、キャレットを移動できるかできないかを指定する属性です。真偽値で指定します。 trueを指定すると、テキストデータ内にキャレットを移動できます。falseを指定すると、テキストデータ内にキャレットを移動できなくなります。 mutable属性にtrueが指定されているときは、この属性の値は無視されます。

省略された場合は、trueが指定されたと見なされます。

type

出力したテキストデータの単純型を指定する属性です。QNameで設定します。データ型には下記の変数型を使用します。

型制約に基づく補正入力機能の使用方法について、詳しくは別仕様書をご覧ください。

省略された場合は、通常のXMLテキストとして扱われます。

filler

表示するテキストデータがないときに表示される文字列を指定します。要素内にxvcd:filler要素を記述する場合は使用できません。

省略された場合、要素内にxvcd:filler要素が記述されているときは、その内容が使用されます。記述されていないときは、"???"が指定されたものと見なします。

内容:

xvcd:text-of要素内に記述できる要素は、以下のとおりです。

  • xvcd:filler要素
    必要に応じて、1つだけ記述できます。 省略可能です。

xvcd:command 要素

変換元XML文書への編集や、UIオブジェクトに対する操作などの、一連のコマンドインストラクションを定義する要素です。 xvcd:command要素のコンテキストノードは、変換元XML文書の頂点要素となります。 キャレット位置のノードを参照したいときは、 xvcd:caret-node()関数を使用してノードを取得します。

xvcd:command要素の内容に記述されたコマンドインストラクションが実行されるときのコンテキストノードは、xvcd:command要素のコンテキストノードと同じです。

属性:
name (必須)

コマンド名を設定する属性です。QNameで設定します。
なお、同じコマンド名が設定されたxvcd:command要素を、1つのXVCDファイル内に複数記述することはできません。

checked

コマンドの選択状態を表すXPath式を記述する属性です。XPath式の評価結果を真偽値として判断します。 コマンドがメニューに登録されている場合、XPath式の評価結果がtrueならば、チェックマーク付きでコマンド名がメニューに表示されます。

省略された場合は、値が設定されていないと見なされます。

enabled

コマンドが割り付けられているメニューやツールボタンを選択できるようにするかしないかを表すXPath式を記述する属性です。XPath式の評価結果を真偽値として判断します。 XPath式の評価結果がtrueならば、選択できるようにします。

省略された場合は、xvcd:command要素内の先頭に記述されたコマンドインストラクションが実行できるかできないかを判断した結果を設定値と見なします。

内容:

xvcd:command要素内にコマンドインストラクション列として記述できるのは、以下の内容です。

xvcd:action 要素

キャンバス上に表示された変換後文書のノードに行われるユーザー操作へのイベントに対応するコマンドインストラクションを記述するために使用する要素です。

xvcd:action要素の内容に記述されたコマンドインストラクションが実行されるときのコンテキストノードは、xvcd:action要素のコンテキストノードと同じです。

属性:
event (必須)

XML文書フラグメントとして表現されたユーザー操作イベントを評価するXPath式を記述する属性です。必ずイベント要素(event:event)をカレントノードとして評価されます。XPath式の評価結果は真偽値として扱われます。XPath式の評価結果が真として扱われたとき、xvcd:action要素内に記述されたコマンドインストラクション列が実行されます。
イベントが発生したノードをXPath式で参照したいときは、event:targetという変数を使用します。

内容:

xvcd:action要素内にコマンドインストラクション列として記述できるのは、以下の内容です。

2.5. データ保持

VC中核ボキャブラリで、処理中の各種データや編集処理のためのパラメータなどを保持するために使用する要素・属性は以下のとおりです。

xvcd:param 要素

テンプレートで利用するパラメータを定義する要素です。

属性:
name (必須)

パラメータの名前を設定する属性です。QNameで設定します。

select

パラメータの初期値を示すXPath式を設定する属性です。要素内にテンプレートルールを記述する場合は、使用できません。

省略された場合は、値が設定されていないと見なされます。

内容:

xvcd:param要素内には、テンプレートルールを記述できます。ただし、 xvcd:param要素は記述できません。 テンプレートルールを記述した場合は、select属性は使用できません。

xvcd:with-param 要素

xvcd:apply-templates要素 xvcd:call-template要素で記述されたテンプレートがパラメータを必要とするときに、パラメータの値を指定する要素です。

属性:
name (必須)

パラメータの名前を設定する属性です。QNameで設定します。

select

パラメータの値を示すXPath式を指定する属性です。

省略された場合は、xvcd:with-param要素の内容がパラメータの値となります。

内容:

xvcd:with-param要素内には、テンプレートルールを記述できます。ただし、 xvcd:param要素は記述できません。 テンプレートルールを記述した場合は、select属性は使用できません。

xvcd:variable 要素

XVCD上での変数を記述する要素です。

属性:
name (必須)

変数名を設定する属性です。QNameで設定します。

select

変数の値を示すXPath式を設定する属性です。xvcd:variable要素内にテンプレートルールを記述する場合は、使用できません。

省略された場合は、値が設定されていないと見なされます。

内容:

xvcd:variable要素内には、テンプレートルールを記述できます。ただし、 xvcd:param要素は記述できません。 テンプレートルールを記述した場合は、select属性は使用できません。

xvcd:user-data 要素

変換元XML文書のDOMツリーを変更することなく、ノードに対して属性のようなデータ(ユーザーデータ)を設定する要素です。

ただし、次に挙げる場合は、この要素によるデータの設定は無効となります。

ユーザーデータが参照されたあとのxvcd:user-data要素の設定が無効になる理由

ユーザーデータは、XML文書には記述されないデータをDOMツリーのノードに関連付ける機能です。従って、XML文書を読み込んだ直後のDOMツリーには、ユーザーデータがまったく存在しません。

当然、ユーザーデータを参照する前に、その初期値を設定しておきたいという要求があります。この要求を満たすために用意されたのが、このxvcd:user-data要素です。つまり、xvcd:user-data要素の役割は、ユーザーデータが参照される前にその値を初期化することにあります。

初期値が設定される前にユーザーデータが参照されると、参照されたユーザーデータは空文字列で初期化されます。そのため、それ以後xvcd:user-data要素による初期化ができなくなります。

ユーザーデータが参照されたあとで値を変更したい場合は、xvcd:set-user-dataインストラクションを使用します。

属性:
name (必須)

ユーザーデータの名前を設定する属性です。QNameで設定します。

select

ユーザーデータを割り付けるノードセットを指定する属性です。ノードセットを表すXPath式を設定します。

省略された場合は、ボキャブラリが適用された変換元XML文書のルートノードに対して割り付けられます。

value (必須)

ユーザーデータの初期値を設定する属性です。任意の文字列で設定します。属性値テンプレートを使用して、XPath式で記述することもできます。

内容:

xvcd:user-data要素は空要素です。

xvcd:property 要素

XML文書単位ではなく、システムに記録して文書間で共有する情報を記述する要素です。

属性:
name (必須)

プロパティ名を設定する属性です。QNameで設定します。プロパティ名は、必ず名前空間接頭辞を付けて記述します。

value (必須)

プロパティの初期値を設定する属性です。任意の文字列で設定します。属性値テンプレートを使用して、XPath式で記述することもできます。

内容:

xvcd:property要素は空要素です。

xvcd:resource 要素

xvcd:vocabulary要素に関連付けるリソースファイルを記述する要素です。 リソースファイルの仕様については、「リソースファイルリファレンス」をご覧ください。

属性:
src (必須)

リソースファイルのURIを記述する属性です。

内容:

xvcd:resource要素は空要素です。

xvcd:resource-text 要素

変換後の文書にリソース文字列を出力するときに使用する要素です。 通常はテンプレートルールに直接文字列を記述すると、変換後の文書に出力されます。xvcd:resource-text要素で変換後の文書に出力した文字列は、キャンバス上では編集できません。

属性:
key (必須)

表示するリソースのキーを記述する属性です。

内容:

xvcd:resource-text要素は空要素です。

2.6. 条件分岐

VC中核ボキャブラリで、条件分岐処理のために使用する要素・属性は以下のとおりです。

xvcd:if 要素

指定した条件を満たすときだけ、テンプレートルールを適用したいときに使用する要素です。

属性:
test (必須)

条件を表すXPath式を記述する属性です。 XPath式の評価結果を真偽値として扱い、真となったときにxvcd:if要素内に記述されたテンプレートルールを適用します。

内容:

xvcd:if要素内には、テンプレートルールを記述できます。ただし、 xvcd:param要素は記述できません。

xvcd:choose 要素

複数の条件を列記し、最初に満たした条件に対応したテンプレートルールを適用したいときに使用する要素です。 xvcd:when要素 xvcd:otherwise要素と組にして使用します。

属性:

属性はありません。

内容:

xvcd:choose要素内に記述できる要素は、以下のとおりです。

  • xvcd:when要素
    少なくとも1つは記述する必要があります。 それ以上は、必要な数だけ記述できます。
  • xvcd:otherwise要素
    必要に応じて、1つだけ記述できます。 xvcd:otherwise要素を使用するときは、必ずxvcd:choose要素内の最後に記述します。 省略可能です。

xvcd:when 要素

xvcd:choose要素内に列挙する条件と、その条件に対応したテンプレートルールを記述するときに使用する要素です。

属性:
test (必須)

条件を表すXPath式を記述する属性です。 XPath式の評価結果を真偽値として扱い、真となったときにxvcd:when要素内に記述されたテンプレートルールを適用します。

内容:

xvcd:when要素内には、テンプレートルールを記述できます。ただし、 xvcd:param要素は記述できません。

xvcd:otherwise 要素

xvcd:choose要素内に記述されたすべての xvcd:when要素の条件を満たさないときに適用するテンプレートルールを記述する要素です。

属性:

属性はありません。

内容:

xvcd:otherwise要素内には、テンプレートルールを記述できます。ただし、 xvcd:param要素は記述できません。

2.7. 繰り返し

VC中核ボキャブラリで、繰り返し処理のために使用する要素・属性は以下のとおりです。

xvcd:for-each 要素

変換元の文書に含まれる任意のノードセット内の要素に対して、繰り返し処理を行うときに使用する要素です。

属性:
select (必須)

繰り返し処理の対象となるノードセットを指定する属性です。ノードセットを特定するXPath式を設定します。

内容:

xvcd:for-each要素内に記述できる内容は、以下のとおりです。

xvcd:sort 要素

xvcd:apply-templates要素 xvcd:for-each要素select属性で指定されたXPath式に適合する変換元XML文書のDOMツリーのノードを変換後の文書へ出力するときに、処理順をソートするために使用する要素です。

属性:
select

ソートするノードセットを指定する属性です。ノードセットを返すXPath式を設定します。

省略された場合は、"string(.)"が指定されたと見なされます。

data-type

文字順でソートするか、文字列を数値に変換した値でソートするかを指定する属性です。属性値テンプレートを使用できます。文字順でソートするときは、textを指定します。数値に変換した値でソートするときは、numberを指定します。

省略された場合は、textが指定されたと見なされます。

order

ソート順を指定する属性です。属性値テンプレートを使用できます。昇順でソートするときは、ascendingを指定します。降順でソートするときはdescendingを指定します。

省略された場合は、ascendingが指定されたと見なされます。

内容:

xvcd:sort要素は空要素です。

2.8. 新規XML文書作成

VC中核ボキャブラリで、新規XML文書のテンプレートを記述するために使用する要素・属性は以下のとおりです。

xvcd:document-template 要素

現在処理中のXVCDを適用して作成する新規XML文書のテンプレートを、要素内に記述する要素です。

属性:
name (必須)

新規XML文書のテンプレートの名前を記述する属性です。ID文字列で設定します。 newスキームでXML文書フラグメントを指定するときは、この属性で記述した名前を使用します。newスキームの詳細は「新規XML文書作成スキームリファレンス」をご覧ください。

save-url

新規作成したXML文書を保存するときの推奨保存先を指定する属性です。URLで設定します。 newスキームの付加情報のsave-urlキーと同じ目的で使用されます。newスキームのsave-urlキーと同時に使用された場合は、newスキームの指定が優先されます。newスキームの詳細は「新規XML文書作成スキームリファレンス」をご覧ください。

省略された場合は、属性に値が設定されていないと見なされます。

target

要素内に記述された新規XML文書のテンプレートをほかのボキャブラリに公開するかしないかを設定する属性です。private、または、commonを設定します。commonを設定すると、要素内の新規XML文書のテンプレートが公開されます。privateを設定すると、公開されません。公開された新規XML文書のテンプレートは、ほかのボキャブラリから利用できるようになります。

省略された場合は、privateが設定されたと見なされます。

resource-url

新規XML文書のテンプレートに関連付けられるリソースファイルを指定する属性です。URLで設定します。target属性の値にcommonが設定されているときに有効となります。

新規XML文書のテンプレートに関連付けられたリソースでは、次の名前で設定されたリソースがテンプレートの一覧を表示するときに使用されます。

リソース名 内容の説明
xfy-name テンプレートの名前です。
xfy-description テンプレートの簡単な説明です。
xfy-copyright テンプレートの著作権情報です。
xfy-template-category テンプレートの分類です。
分類は、階層を"/"で区切った文字列で表します。
新規XML文書のテンプレートは、この分類に従ってテンプレート一覧に表示されます。

省略された場合は、属性に値が設定されていないと見なされます。

内容:

xvcd:document-template要素内には、新規XML文書のテンプレートか、XVCDのテンプレートルールを記述できます。 新規XML文書のテンプレートを記述する場合、xvcd:document-template要素の内容はXML文書を埋め込んだ形式となります。従って、xvcd:document-template要素の直下では次の規則を守って記述する必要があります。

  • xvcd:document-template要素の直下には、0個以上、複数の処理命令を記述できます。
  • xvcd:document-template要素の直下には、必ず1つだけの要素を記述します。 要素を記述しなかったり、複数の要素を記述したりした場合は、処理を正しく行えません。
  • xvcd:document-template要素の直下には、空白以外のテキストは記述できません。

2.9. 別ファイルのXVCD取り込み

別ファイルに記述されたXVCDを取り込むために使用される要素・属性は以下のとおりです。

xvcd:include 要素

別ファイルに記述されたXVCDを取り込む要素です。 xvcd:import要素と異なり、href属性で指定されたXVCDファイルの xvcd:xvcd要素に含まれるすべての子供要素で、元のXVCDのxvcd:include要素を置き換えます。

属性:
href (必須)

取り込みたいXVCDファイルのURIを設定する属性です。

内容:

xvcd:include要素は空要素です。

xvcd:import 要素

別ファイルに記述されたXVCDを取り込む要素です。取り込むXVCDファイルと取り込まれるXVCDファイルに、同じDOMノードを操作する記述があった場合は、取り込むXVCDファイルの内容が優先されます。 xvcd:xvcd要素内の最初に、必要な数だけ記述できます。省略可能です。

別ファイルに記述されたXVCDから取り込まれるのは、次の要素です。

xvcd:vocabulary要素は取り込まれません。

属性:
href (必須)

取り込みたいXVCDファイルのURIを設定する属性です。

内容:

xvcd:import要素は空要素です。

xvcd:apply-imports 要素

xvcd:apply-templates要素で適用されるテンプレートに記述して、別ファイルから取り込まれたXVCDのテンプレートをそのノードに適用する要素です。

属性:

属性はありません。

内容:

xvcd:apply-imports要素は空要素です。

2.10. XSLTとの互換

XSLTとの互換性を保つために用意されている要素は、以下のとおりです。

xvcd:output 要素

xfyユーザーエージェントは、この要素に対して何も処理を行いません。XSLTとの互換のために用意しています。

属性:

属性はありません。

内容:

xvcd:output要素は空要素です。

xvcd:fallback 要素

xfyユーザーエージェントは、この要素に対して何も処理を行いません。XSLTとの互換のために用意しています。

属性:

属性はありません。

内容:

xvcd:fallback要素内には、テンプレートルールを記述できます。ただし、 xvcd:param要素は記述できません。

2.11. ユーザー定義XPath関数

ユーザー定義XPath関数を定義するために使用する要素・属性は以下のとおりです。

xvcd:function 要素

ユーザー定義XPath関数を定義するときに使用する要素です。

xvcd:function要素は xvcd:xvcd要素内だけに記述できるトップレベル要素です。 内容には xvcd:expr要素か、テンプレートルールを記述することができます。xvcd:expr要素を記述した場合は、xvcd:expr要素に記述されたXPath式の評価結果の値を返す関数となります。テンプレートルールを記述した場合は、テンプレートルールを評価した結果のツリーをノードセットとして返す関数となります。

属性:
name (必須)

XPath関数名を設定する属性です。QNameで記述します。XPath関数名では名前空間接頭辞を省略できません。必ず名前空間接頭辞を付けて記述します。

ユーザー定義XPath関数の名前空間

VC中核で定義されている関数との衝突を避けるために、定義するXPath関数が属する名前空間を明示する必要があります。ユーザー定義XPath関数には、作成するボキャブラリコンポーネントが処理対象としている名前空間や、ユーザー定義XPath関数用に用意した名前空間を使用します。

内容:

xvcd:function要素内に記述できる内容は、以下のとおりです。

  • xvcd:param要素
    必要に応じて、任意の数だけ記述できます。省略可能です。xvcd:param要素を使用するときは、必ずxvcd:function要素内の先頭に記述します。xvcd:function要素内のxvcd:param要素には、select属性や要素の内容を記述することはできません。
  • xvcd:expr要素
    1つだけ記述できます。省略可能です。xvcd:expr要素を記述した場合は、テンプレートルールは記述できません。
  • テンプレートルール
    xvcd:expr要素を記述しない場合に記述できます。

xvcd:expr 要素

ユーザー定義XPath関数の本体となるXPath式を記述する要素です。 xvcd:function要素の内容だけで使用できます。

属性:
select (必須)

XPath式を指定する属性です。

内容:

xvcd:expr要素は空要素です。

2.12. テンプレートルール

テンプレートルールには、XVCDの要素やリテラル結果要素を記述できます。テンプレートルール内に記述できるXVCDの要素は、以下のとおりです。

  • xvcd:param要素
    xvcd:template要素内に記述するテンプレートルールでは、必要に応じて、任意の数だけ記述できます。省略可能です。 記述するときは、必ずテンプレートルールの最初に記述します。そのほかの要素内のテンプレートルールでは使用できません。
  • xvcd:apply-templates要素
    必要に応じて、任意の数だけ記述できます。省略可能です。
  • xvcd:next-match要素
    必要に応じて、任意の数だけ記述できます。省略可能です。
  • xvcd:call-template要素
    必要に応じて、任意の数だけ記述できます。省略可能です。
  • xvcd:element要素
    必要に応じて、任意の数だけ記述できます。省略可能です。
  • xvcd:attribute要素
    必要に応じて、任意の数だけ記述できます。省略可能です。
  • xvcd:action要素
    必要に応じて、任意の数だけ記述できます。省略可能です。
  • xvcd:text要素
    必要に応じて、任意の数だけ記述できます。省略可能です。
  • xvcd:processing-instruction要素
    必要に応じて、任意の数だけ記述できます。省略可能です。
  • xvcd:comment要素
    必要に応じて、任意の数だけ記述できます。省略可能です。
  • xvcd:value-of要素
    必要に応じて、任意の数だけ記述できます。省略可能です。
  • xvcd:text-of要素
    必要に応じて、任意の数だけ記述できます。省略可能です。
  • xvcd:namespace要素
    必要に応じて、任意の数だけ記述できます。省略可能です。
  • xvcd:for-each要素
    必要に応じて、任意の数だけ記述できます。省略可能です。
  • xvcd:if要素
    必要に応じて、任意の数だけ記述できます。省略可能です。
  • xvcd:choose要素
    必要に応じて、任意の数だけ記述できます。省略可能です。
  • xvcd:copy-of要素
    必要に応じて、任意の数だけ記述できます。省略可能です。
  • xvcd:copy要素
    必要に応じて、任意の数だけ記述できます。省略可能です。
  • xvcd:variable要素
    必要に応じて、任意の数だけ記述できます。省略可能です。
  • xvcd:user-data要素
    必要に応じて、任意の数だけ記述できます。省略可能です。
  • xvcd:apply-vocabularies要素
    必要に応じて、任意の数だけ記述できます。省略可能です。
  • xvcd:message要素
    必要に応じて、任意の数だけ記述できます。省略可能です。
  • xvcd:resource-text要素
    必要に応じて、任意の数だけ記述できます。省略可能です。
  • xvcd:number要素
    必要に応じて、任意の数だけ記述できます。省略可能です。
  • xvcd:apply-imports要素
    必要に応じて、任意の数だけ記述できます。省略可能です。
  • xvcd:fallback要素
    必要に応じて、任意の数だけ記述できます。省略可能です。

3. データ型

VC中核ボキャブラリでは、以下のデータ型が定義されています。

xvcd:plain-text

プレーンテキスト型です。空白文字は保持されます。 xvcd:text-of要素だけで使用できます。