VC中核リファレンス

VC中核の名前空間の概要や、要素・属性を解説します。

1. 概要

VC中核の名前空間の概要を説明します。

1.1. 用途・役割

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

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

1.2. 名前空間URI参照

VC中核の名前空間URI参照は http://xmlns.xfytec.com/xvcd です。 以下の説明で、VC中核の要素を記述するときは、xvcd:という名前空間プレフィックスを使用します。

このほか、以下の説明中に出現する名前空間と、その名前空間に使用している名前空間プレフィックスは次のとおりです。

また、XSLTの要素を記述するときは、xsl:という名前空間プレフィックスを使用します。 これら以外の名前空間に属する要素を記述するときは、その名前空間の初出時に名前空間プレフィックスを明記します。 属性は、特に明記しない限りは、属性を使用する要素と同じ名前空間で定義されたものです。

2. 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要素内に記述できる要素は、以下のとおりです。

  • xvcd:include要素
    必要に応じて、任意の数だけ記述できます。 省略可能です。
  • xvcd:import要素
    必要に応じて、任意の数だけ記述できます。 省略可能です。
    記述するときは、必ずxvcd:xvcd要素内の最初に記述します。
  • xvcd:vocabulary要素
    必要に応じて、任意の数だけ記述できます。 省略可能です。
  • xvcd:template要素
    必要に応じて、任意の数だけ記述できます。 省略可能です。
  • xvcd:namespace-alias要素
    必要に応じて、任意の数だけ記述できます。 省略可能です。
  • xvcd:param要素
    必要に応じて、任意の数だけ記述できます。 省略可能です。
  • xvcd:command要素
    必要に応じて、任意の数だけ記述できます。 省略可能です。
  • xvcd:variable要素
    必要に応じて、任意の数だけ記述できます。 省略可能です。
  • xvcd:user-data要素
    必要に応じて、任意の数だけ記述できます。 省略可能です。
  • xvcd:property要素
    必要に応じて、任意の数だけ記述できます。 省略可能です。
  • xvcd:document-template要素
    必要に応じて、任意の数だけ記述できます。 省略可能です。
  • xvcd:key要素
    必要に応じて、任意の数だけ記述できます。省略可能です。
  • xvcd:attribute-set要素
    必要に応じて、任意の数だけ記述できます。省略可能です。
  • xvcd:strip-space要素
    必要に応じて、任意の数だけ記述できます。省略可能です。
  • xvcd:preserve-space要素
    必要に応じて、任意の数だけ記述できます。省略可能です。
  • xvcd:decimal-format要素
    必要に応じて、任意の数だけ記述できます。省略可能です。
  • xvcd:output要素
    必要に応じて、任意の数だけ記述できます。省略可能です。

2.2. XML文書の変換・編集

VC中核の名前空間で、XML文書の変換・編集に使用される要素・属性は以下のとおりです。

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:vocabulary 要素

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

属性:
name (必須)

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

match (必須)

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

call-template (必須)

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

priority

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

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

内容:

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

  • xvcd:resource要素
    必要に応じて、任意の数だけ記述できます。必ずui:ui要素よりも前に記述します。 省略可能です。
  • xvcd:with-param要素
    必要に応じて、任意の数だけ記述できます。必ずui:ui要素よりも前に記述します。 省略可能です。
  • ui:ui要素
    必要に応じて、1つだけ記述できます。 省略可能です。詳細は、ユーザーインターフェイス記述リファレンスをご覧ください。

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: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ツリーを変更することなく、ノードに対して属性のようなデータ(ユーザーデータ)を設定する要素です。

属性:
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要素は空要素です。

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: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:text 要素

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

属性:
cursor-move-in

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

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

内容:

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

xvcd:processing-instruction 要素

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

属性:
name (必須)

出力する処理命令の名前を設定する属性です。NCNameを返す属性値テンプレートを設定します。 必須属性です。

内容:

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

xvcd:comment 要素

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

属性:

属性はありません。

内容:

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

xvcd:value-of 要素

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

属性:
select (必須)

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

cursor-move-in

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

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

内容:

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

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、または、falseで指定します。 trueを指定すると、テキストデータが編集可能となります。また、cursor-move-in属性の指定にかかわらず、テキストデータ内にキャレットを移動できます。falseを指定すると、テキストデータが編集不可能となります。falseを指定したとき、テキストデータ内にキャレットを移動できるかできないかは、cursor-move-in属性の指定に従います。

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

cursor-move-in

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

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

filler

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

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

内容:

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

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

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要素は空要素です。

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要素は記述できません。

xvcd:copy-of 要素

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

属性:
select (必須)

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

内容:

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

xvcd:copy 要素

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

属性:
use-attribute-sets

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

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

内容:

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

xvcd:command 要素

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

属性:
name (必須)

コマンド名を設定する属性です。QNameで設定します。 必須属性です。

checked

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

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

enabled

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

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

内容:

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

xvcd:action 要素

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

属性:
event (必須)

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

内容:

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

  • instruction:param要素
    コマンドがパラメータを必要とする場合、その初期値を記述する要素です。 必要に応じて、任意の数だけ記述できます。 省略可能です。 記述する場合は、必ずxvcd:action要素内の先頭に記述します。 詳細は、プラットフォームコマンドインストラクションリファレンスをご覧ください。
    イベントオブジェクトをパラメータとして受け取る場合は、event:eventという変数名を使用します。また、イベントが発生したノードを受け取る場合は、event:targetという変数名を使用します。
  • 各種コマンドインストラクション要素
    XML文書編集用のコマンドインストラクション要素や、プラットフォームコマンドインストラクションを記述できます。 XML文書編集用のコマンドインストラクション要素の詳細は、XML文書編集用のコマンドインストラクションをご覧ください。 また、プラットフォームコマンドインストラクションの詳細は、プラットフォームコマンドインストラクションリファレンスをご覧ください。

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:attribute-set 要素

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

属性:
name (必須)

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

use-attribute-sets

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

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

内容:

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

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

xvcd:apply-imports 要素

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

属性:

属性はありません。

内容:

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

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要素は空要素です。

xvcd:output 要素

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

属性:

属性はありません。

内容:

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

xvcd:fallback 要素

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

属性:

属性はありません。

内容:

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

2.3. 新規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が設定されているときに有効となります。

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

内容:

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.4. テンプレートルール

テンプレートルールには、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要素
    必要に応じて、任意の数だけ記述できます。省略可能です。

2.5. XML文書編集用のコマンドインストラクション

VC中核の名前空間で、XML文書編集用のコマンドインストラクションとして定義されている要素・属性は以下のとおりです。

xvcd:combine インストラクション

連続する2つのノードを結合するコマンドインストラクション要素です。 結合するそれぞれのノードは、同じ種類である必要があります。 指定されたノードと結合先のノードとの間にある空白ノードやコメントノードは、結合するときには無視されます。

結合する2つのノードに設定されている属性が異なる場合は、ドキュメント順で前のノードに設定されている属性が結合結果のノードに反映されます。

select属性が指定されている場合は、select属性で指定されたノードをその直前(to属性値がbeforeの場合)または直後(to属性値がafterの場合)のノードと結合されます。

select属性の指定がない場合は、次の条件を満たした上で結合できるかできないかが判定されます。

  • キャレット位置のノードの祖先ノードにメイン要素(xvcd:main-elements要素に適合する要素)が存在する(複数存在する場合はキャレット位置に最も近い要素が選択されます)
  • to属性値がbeforeの場合は、キャレット位置がメイン要素に含まれる文字またはオブジェクトの先頭位置を指している
  • to属性値がafterの場合は、キャレット位置がメイン要素に含まれる文字またはオブジェクトの末尾位置を指している

条件を満たしたときは、xvcd:mein-elements要素のtype属性でメイン要素と結合先要素の結合(メイン結合)ができるかできないかが判定されます。

メイン結合が実行できたときは、その結合位置の子供ノードの結合(サブ結合)を試します。結合候補のノードがサブ要素(xvcd:sub-elements要素に適合する要素)に適合する場合は、xvcd:sub-elements要素のtype属性で結合できるかできないかを判定します。結合候補のノードがテキストノードの場合は、必ず結合します。

サブ結合が実行できた場合は、さらにその結合位置の子供ノードのサブ結合を試します。

属性:
select

結合対象のノードを指定する属性です。XPath式で記述します。

省略された場合は、内容に記述された要素に従って結合を行います。

to

この属性は結合対象ノードの結合方向を属性値テンプレートで指定する属性です。beforeまたはafterで指定します。

省略された場合は、afterが設定されます。

内容:

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

xvcd:copy-selection インストラクション

キャンバス上で選択された範囲をXML文書フラグメントとしてコピーし、変数に格納するコマンドインストラクション要素です。

属性:
return-to (必須)

コピーしたXML文書フラグメントを格納する変数を指定する属性です。QNameで記述します。 必須属性です。

内容:

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

xvcd:default インストラクション

xvcd:combine要素でノードを結合できないときや、xvcd:split要素でノードを分割できないときに、実行する処理を記述するコマンドインストラクション要素です。xvcd:combine要素とxvcd:split要素の内容だけで使用できます。

属性:
command

実行するコマンドを指定する属性です。 QName で記述します。

省略された場合は、値が設定されていないと見なされます。この場合、xvcd:default要素内に記述されたコマンドインストラクション列が実行されます。

内容:

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

例外:

xvcd:delete インストラクション

select属性で指定されたXPath式の評価結果に基づいた削除処理を行うコマンドインストラクション要素です。 XPath式の評価結果によって、削除処理が異なります。それぞれの場合と処理は次のとおりです。

評価結果が範囲を表す場合
範囲に含まれるテキスト、およびノードを削除します。
評価結果がノードセットの場合
ノードセットに含まれるすべてのノードを削除します。
評価結果が範囲で、その範囲が
backspace属性の指定に従って、キャレット位置の文字を削除します。
属性:
select (必須)

削除対象を指定する属性です。XPath式で記述します。 XPath式の評価結果に、範囲が返される場合と、ノードセットが返される場合があります。 必須属性です。

backspace

文字を削除するときの動作を指定する属性です。yes、または、noで指定します。 yesを指定したときは、キャレット位置の左側の文字を削除します。noを指定したときは、キャレット位置の右側の文字を削除します。

省略されたときに文字を削除する動作になった場合、noが設定されていると見なされます。

内容:

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

xvcd:get-clip インストラクション

クリップボード上のXML文書フラグメントを取得し、変数に格納するコマンドインストラクション要素です。

属性:
return-to (必須)

クリップボード上のXML文書フラグメントを格納する変数を指定する属性です。QNameで記述します。 return-to属性で指定された変数に格納されるXML文書フラグメントには、次の要素が含まれます。

内容:

xvcd:get-clip要素は空要素です。

xvcd:insert インストラクション

変換元XML文書にXML文書フラグメントを挿入するコマンドインストラクション要素です。 XML文書フラグメントを挿入する位置は、ref属性とposition属性で指定します。 コマンドインストラクションを実行した後、キャレットは挿入されたXML文書フラグメントの直前の位置へ移動します。

属性:
ref (必須)

XML文書フラグメントを挿入するノードまたは範囲を指定する属性です。XPath式で記述します。 ref属性で指定されたノードまたは範囲が、挿入位置の基準ノードとなります。 必須属性です。

position

ref属性で指定された基準ノードに対する、XML文書フラグメントの挿入位置を指定する属性です。次の文字列を返す属性値テンプレートで記述します。

before
XML文書フラグメントを基準ノードの直前に挿入します。
after
XML文書フラグメントを基準ノードの直後に挿入します。
first-child
XML文書フラグメントを基準ノードの最初の子ノードとして挿入します。
last-child
XML文書フラグメントを基準ノードの最後の子ノードとして挿入します。
caret
基準ノードをキャレット位置で分割してXML文書フラグメントを挿入します。

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

select

変換元XML文書に挿入するXML文書フラグメントをノードセットで指定する属性です。XPath式で記述します。 指定されたXML文書フラグメント内で使用している名前空間を宣言する名前空間ノードがXML文書フラグメント外にある場合、XML文書フラグメントには名前空間ノードを引き継ぎません。そのため、XML文書フラグメントを挿入する位置によっては、名前空間プレフィックスが定義されていない状況が発生する可能性があります。そのため、指定されたXMLフラグメント内で名前空間を宣言されていることが望まれます。

省略された場合は、要素内に記述された内容が挿入されます。このとき、要素内が空の場合はエラーとなります。

combine

position属性の値にcaretが設定されているときに、挿入したXML文書フラグメントのノードと、挿入位置の分割したノードとの結合について、指定する属性です。次の文字列を返す属性値テンプレートで記述します。

both
挿入したノードと分割してできた前後のノードを結合します。
preceding
分割してできた前のノードと挿入したノードを結合します。
after
挿入したノードと分割してできた後ろのノードを結合します。
none
ノードは結合しません。

ノードの結合は、挿入したノードと分割したノードが同じ種類のときに実行されます。

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

caret-move

XML文書フラグメントを挿入した後のキャレットの位置を指定する属性です。次の文字列を返す属性値テンプレートで記述します。

before
挿入したXML文書フラグメントの前にキャレットを移動します。
after
挿入したXML文書フラグメントの後ろにキャレットを移動します。
caret
現在のキャレット位置のまま、移動しません。

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

内容:

xvcd:insert要素内には、変換元XML文書に挿入する任意の内容を記述できます。 select属性の指定と同時に、要素内に内容を記述した場合、select属性の指定が優先されます。

xvcd:main-elements インストラクション

xvcd:combine要素で要素を結合するときの条件や、xvcd:split要素で要素を分割するときの条件を記述するコマンドインストラクション要素です。xvcd:combine要素とxvcd:split要素の内容だけで使用できます。

この要素で指定された要素グループの要素は、結合したり分割したりするときの頂点になることができます。

属性:
test (必須)

結合したり分割したりする要素の条件を指定する属性です。真偽値を返すXPath式で記述します。XPath式を評価するときは、結合・分割する対象となったノードをコンテキストノードとします。必須属性です。

type

ノードの結合条件を指定する属性です。次の文字列を指定します。

grouped
対象のノードが同じグループに含まれているときに要素を結合可能とします。
strict
対象のノードが要素ノードで、要素名や要素に設定されている属性値がすべて一致するときに要素を結合可能とします。

xvcd:split要素内に記述されたときはtype属性は不要です。xvcd:combine要素内に記述されたとき、省略された場合は、groupedが設定されたと見なされます。

内容:

xvcd:main-elements要素は空要素です。

xvcd:move インストラクション

変換元XML文書内のXML文書フラグメントを指定した位置へ移動するコマンドインストラクション要素です。

属性:
select (必須)

移動するXML文書フラグメントをノードセットで指定する属性です。XPath式で記述します。 指定されたXML文書フラグメント内で使用している名前空間を宣言する名前空間ノードがXML文書フラグメント外にある場合、XML文書フラグメントには名前空間ノードを引き継ぎません。そのため、XML文書フラグメントの移動先によっては、名前空間プレフィックスが定義されていない状況が発生する可能性があります。そのため、指定されたXMLフラグメント内で名前空間を宣言されていることが望まれます。 必須属性です。

ref (必須)

XML文書フラグメントの移動先のノードまたは範囲を指定する属性です。XPath式で記述します。 ref属性で指定されたノードまたは範囲が、移動先の基準ノードとなります。 必須属性です。

position

ref属性で指定された基準ノードに対する、XML文書フラグメントの挿入位置を指定する属性です。次の文字列を返す属性値テンプレートで記述します。

before
XML文書フラグメントを基準ノードの直前に挿入します。
after
XML文書フラグメントを基準ノードの直後に挿入します。
first-child
XML文書フラグメントを基準ノードの最初の子ノードとして挿入します。
last-child
XML文書フラグメントを基準ノードの最後の子ノードとして挿入します。
caret
基準ノードをキャレット位置で分割してXML文書フラグメントを挿入します。

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

内容:

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

xvcd:set-attribute インストラクション

指定されたノードセットに含まれるすべての要素に属性を設定したり、削除したりするコマンドインストラクション要素です。

属性:
select (必須)

属性を設定・削除するノードセットを指定する属性です。XPath式で記述します。 必須属性です。

name (必須)

属性の名前を記述する属性です。QNameを返す属性値テンプレートで記述します。 必須属性です。

value

属性に設定する値を記述する属性です。属性値テンプレートで記述します。

省略された場合は、name属性で指定された名前の属性が、要素から削除されます。

内容:

xvcd:set-attribute要素は空要素です。

xvcd:set-clip インストラクション

指定されたノードセットをクリップボードへ転送するコマンドインストラクション要素です。

ノードセットには、データ変換名前空間で記述されたXML文書フラグメントを指定します。対象にデータ変換名前空間ではないXML文書フラグメントが指定された場合はデータ変換の補完方法に従って補完されます。データ変換名前空間の詳細は、データ変換リファレンスをご覧ください。

属性:
select

クリップボードへ転送するノードセットを指定する属性です。XPath式で記述します。

省略された場合は、要素内に記述した内容がクリップボードへ転送されます。

内容:

xvcd:set-clip要素内には、クリップボードへ転送する任意の内容を記述できます。 select属性の指定と同時に、要素内に内容を記述した場合、select属性の指定が優先されます。

xvcd:set-property インストラクション

xvcd:property要素で定義したプロパティの値を変更するコマンドインストラクション要素です。

属性:
name (必須)

値を変更するプロパティの名前を指定する属性です。QNameを返す属性値テンプレートで記述します。 必須属性です。

value (必須)

プロパティに設定する値を記述する属性です。文字列を返す属性値テンプレートで記述します。 必須属性です。

内容:

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

xvcd:set-text インストラクション

XPath式で指定されたノードのテキストデータを、別のテキストデータに置き換えるコマンドインストラクション要素です。

属性:
select (必須)

内容を置き換えるテキストデータを指定する属性です。ノードを特定するXPath式で記述します。 XPath式を評価した結果得られたノードの種類によって、対象となるテキストデータの決定方法は異なります。

  • 得られたノードがテキストノードの場合 テキストノードの内容を、value属性の値に置き換えます。
  • 属性ノードの場合 属性の値を、value属性の値に置き換えます。
  • 要素ノードの場合position属性によって対象テキストノードを決定します。

指定されたXPath式が次の条件を満たしている場合、XPathの途中の要素または属性を補完してテキストデータを設定します。要素が補完される場合は親ノードの先頭の子供として挿入されます。

  1. XPath式の各ロケーションステップに述語が記述されていない
  2. 使用されている軸が、child軸、または、attribute軸だけである
  3. ノードテストがQNameで記述されている
value (必須)

置き換えるテキストデータを設定する属性です。文字列を返す属性値テンプレートで記述します。 必須属性です。

position

select属性で指定されたノードが要素ノードの場合にテキストデータを設定するテキストノードの位置を指定する属性です。次の文字列を記述します。

before
テキストデータを要素ノードの直前のテキストノードに設定します。直前にノードがない場合や直前のノードがテキストノードではない場合は、直前にテキストノードを挿入してテキストデータを設定します。
after
テキストデータを要素ノードの直後のテキストノードに設定します。直後にノードがない場合や直後のノードがテキストノードではない場合は、直後にテキストノードを挿入してテキストデータを設定します。
first-child
テキストデータを要素ノードの先頭の子供であるテキストノードに設定します。子供ノードがない場合や先頭の子供ノードがテキストノードではない場合は、先頭にテキストノードを挿入してテキストデータを設定します。
last-child
テキストデータを要素ノードの末尾の子供であるテキストノードに設定します。子供ノードがない場合や末尾の子供ノードがテキストノードではない場合は、末尾にテキストノードを挿入してテキストデータを設定します。

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

内容:

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

xvcd:set-user-data インストラクション

xvcd:user-data要素で定義したユーザーデータの値を変更するコマンドインストラクション要素です。

属性:
name (必須)

値を変更するユーザーデータの名前を指定する属性です。QNameを返す属性値テンプレートで記述します。 必須属性です。

value (必須)

ユーザーデータに設定する値を記述する属性です。文字列を返す属性値テンプレートで記述します。 必須属性です。

select

ユーザーデータが割り付けられているノードセットを指定する属性です。XPath式で記述します。

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

内容:

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

xvcd:split インストラクション

キャレット位置を境界として、ノードを2つに分割するコマンドインストラクション要素です。

select属性の指定がある場合は、select属性で示されたノードをキャレット位置で2つのノードに分割します。

select属性の指定がない場合は、以下に列挙する条件を満たす場合にのみ分割を行います。

  • キャレット位置のノードの祖先ノードにメイン要素(xvcd:main-elements要素に適合する要素)が存在する(複数存在する場合はキャレット位置の最も近い要素が選択されます)
  • キャレット位置のノード、選択されたメイン要素、および、その間にあるすべてのノードについて分割可能でなければならない
  • テキストノードならば必ず分割可能、xvcd:main-elements要素またはxvcd:sub-elements要素に適合する要素は分割可能、それ以外のノードは分割不可能である
属性:
select

分割対象のノードを指定する属性です。XPath式で記述します。

省略された場合は、内容に記述された要素に従って分割を行います。

内容:

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

xvcd:start-drag インストラクション

ドラッグ開始のイベントを受け取ったときに、ドラッグ&ドロップ開始を促すインストラクション要素です。ドラッグされる対象を指定します。

ドラッグの対象には、データ変換名前空間で記述されたXML文書フラグメントを指定します。対象にデータ変換名前空間ではないXML文書フラグメントが指定された場合は、データ変換の補完方法に従って補完されます。データ変換名前空間の詳細は、データ変換リファレンスをご覧ください。

属性:
event (必須)

イベントオブジェクト$event:eventを設定する属性です。 必須属性です。

内容:

xvcd:start-drag要素内には、ドラッグされる対象を記述できます。 選択された範囲をドラッグ&ドロップする場合は、 xvcd:copy-selection要素を使用して作成したXML文書フラグメントを、 xvcd:copy-of要素で出力します。 任意のXML文書フラグメントを記述することもできます。

xvcd:sub-elements インストラクション

xvcd:combine要素で要素を結合するときの条件や、xvcd:split要素で要素を分割するときの条件を記述するコマンドインストラクション要素です。xvcd:combine要素とxvcd:split要素の内容だけで使用できます。

この要素は、結合および分割の対象となるノードツリーの頂点にはならないがその子孫になる要素グループを指定します。

属性:
test (必須)

結合したり分割したりする要素の条件を指定する属性です。真偽値を返すXPath式で記述します。XPath式を評価するときは、結合・分割する対象となった要素をコンテキストノードとします。必須属性です。

type

要素の結合条件を指定する属性です。次の文字列で記述します。

grouped
対象の要素が同じグループに含まれているときに要素を結合可能とします。
strict
対象の要素で、要素名や要素に設定されている属性値がすべて一致するときに要素を結合可能とします。

xvcd:split要素内に記述されたときはtype属性は不要です。xvcd:combine要素内に記述されたとき、省略された場合は、groupedが設定されたと見なされます。

内容:

xvcd:sub-elements要素は空要素です。

xvcd:surround-contents インストラクション

選択された範囲を指定した要素で囲むコマンドインストラクション要素です。 範囲選択されていない場合は、キャレット位置に空要素として挿入されます。

属性:
parent-name (必須)

選択した範囲を囲む要素の名前を記述する属性です。QNameを返す属性値テンプレートで記述します。 必須属性です。

parent-namespace

選択した範囲を囲む要素の名前空間を記述する属性です。URI参照文字列を返す属性値テンプレートで記述します。

省略された場合は、parent-nameのプレフィックスを展開した名前空間URIを使用します。

内容:

xvcd:surround-contents要素は空要素です。

xvcd:unsurround-contents インストラクション

指定されたノードセットに含まれる要素タグを削除するコマンドインストラクション要素です。

属性:
select (必須)

要素タグを削除するノードセットを指定する要素です。XPath式で記述します。 必須属性です。

内容:

xvcd:unsurround-contents要素は空要素です。

2.6. 関数

関数の名前空間について

以下の関数は、XSLTとの互換性を向上するため、XVCDで使用するときに限って名前空間なし(名前空間URI参照が空文字列)でも呼び出すことができます。ただし、できるだけ名前空間を指定することを推奨します。

VC中核の名前空間で定義されている関数は、以下のとおりです。

xvcd:user-data 関数

ユーザーデータの値をノードから取得する関数です。

構文:
string xvcd:user-data( userdata_name, node_set? )
引数:
string userdata_name

値を取得するユーザーデータの名前を指定します。

node-set node_set

値を取得するユーザーデータが割り付けられているノードをXPath式で指定します。 XPath式に適合するノードが複数存在する場合は、最初のノードを対象とします。

省略された場合は、ボキャブラリが適用された変換元XML文書のルートノードを対象とします。

返値:
string

ユーザーデータの値を返します。 userdata_nameで指定された名前のユーザーデータが存在しない場合は、空文字列を返します。

xvcd:property 関数

プロパティの値を取得する関数です。

構文:
string xvcd:property( property_name, default_value? )
引数:
string property_name

値を取得するプロパティの名前を指定します。

string default_value

property_nameで指定された名前のプロパティが存在しないときに返される値を指定します。

省略された場合は、property_nameで指定された名前のプロパティが存在しないとエラーとなります。 プロパティが存在するかしないかを調べたい場合は、 xvcd:property-exists()関数を使用します。

返値:
string

プロパティの値を返します。 property_nameで指定された名前のプロパティが存在しない場合は、default_valueで指定されたデフォルト値が返されます。このとき、default_valueが省略されているとエラーとなります。

xvcd:property-exists 関数

プロパティの名前を指定して、その名前のプロパティが存在するかしないかを調べる関数です。

構文:
boolean xvcd:property-exists( property_name )
引数:
string property_name

存在するかしないかを調べたいプロパティの名前を指定します。

返値:
boolean

真偽値を返します。 引数で指定された名前のプロパティが存在するときは、trueを返します。存在しないときは、falseを返します。

xvcd:string-resource 関数

xvcd:resource要素で指定されたリソースファイルから、引数で渡されたキーの文字列リソースを取得して返す関数です。

構文:
string xvcd:string-resource( resource_key )
引数:
string resource_key

リソースファイル内に記述されている文字列リソースのキー文字列を指定します。

返値:
string

xvcd:resource要素で指定されたリソースファイルから、引数で渡されたキーの文字列リソースを取得して文字列形式で返します。 引数で指定されたキーの文字列リソースが存在しない場合、空文字列を返します。

xvcd:url-resource 関数

xvcd:resource要素で指定されたリソースファイルから、引数で渡されたキーのURLリソースを取得して返す関数です。

構文:
string xvcd:url-resource( resource_key )
引数:
string resource_key

リソースファイル内に記述されているURLリソースのキー文字列を指定します。

返値:
string

xvcd:resource要素で指定されたリソースファイルから、引数で渡されたキーのURLリソースを取得してURL文字列形式で返します。 引数で指定されたキーのURLリソースが存在しない場合、空文字列を返します。

xvcd:caret-node 関数

キャレット位置のノードをノードセットとして返す関数です。

構文:
node-set xvcd:caret-node( )
引数:

引数をとりません。

返値:
node-set

キャレット位置のノードをノードセットとして返します。キャレットが存在しない場合、空のノードセットを返します。

xvcd:selection-range 関数

選択されている範囲を表すオブジェクトを返す関数です。

構文:
range xvcd:selection-range( )
引数:

引数をとりません。

返値:
range

選択されている範囲を表すオブジェクトを返します。

xvcd:selection-collapsed 関数

選択されている範囲が存在するかしないかを返す関数です。

構文:
boolean xvcd:selection-collapsed( )
引数:

引数をとりません。

返値:
boolean

選択されている範囲が存在するかしないかを、真偽値で返します。 選択されている範囲が存在しない場合は、trueを返します。存在する場合は、falseを返します。

xvcd:caret-char-offset 関数

キャレットがテキストノードを指しているときに、その先頭からのオフセット位置を返す関数です。

構文:
number xvcd:caret-char-offset( )
引数:

引数をとりません。

返値:
number

テキストノードの先頭からのオフセット位置を返します。 最小値は0、最大値はそのテキストノードの文字数となります。 キャレットがテキストノードにない場合は、-1を返します。

xvcd:caret-char-count 関数

キャレットがテキストノードを指しているときに、そのテキストノードに含まれる文字数を返す関数です。

構文:
number xvcd:caret-char-count( )
引数:

引数をとりません。

返値:
number

テキストノードに含まれる文字数を返します。 キャレットがテキストノードにない場合は、-1を返します。

xvcd:readonly-dom 関数

ターゲットノードを含むDOMツリーが、参照専用かそうでないかをチェックする関数です。

構文:
boolean xvcd:readonly-dom( reference-node? )
引数:
node-set reference-node

ターゲットノードを指定します。

省略された場合は、コンテキストノードをターゲットノードとします。

返値:
boolean

ターゲットノードを含むDOMツリーが参照専用ならばtrueを返します。参照専用でない場合はfalseを返します。

xvcd:key 関数

指定されたキーが xvcd:key要素で関連づけられているノードセットを返す関数です。

構文:
node-set xvcd:key( name, value )
引数:
string name

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

object value

キーの値を指定します。値がnode-setのときは、それぞれのノードを文字列として評価した複数の文字列を値とします。node-set以外のときは、単一の文字列として評価した文字列を値とします。

返値:
node-set

指定されたキーを持つノードすべてをノードセットとして返します。

xvcd:format-number 関数

指定された書式パターン文字列と10進数の数値書式を使用して、数値を整形された文字列に変換する関数です。

構文:
string xvcd:format-number( number, pattern, name? )
引数:
number number

整形して出力する数値を指定します。

string pattern

数値を出力するときに使用する書式パターン文字列を指定します。

string name

数値に適用する10進数の数値書式の名前を、QNameで指定します。
10進数の数値書式は、 xvcd:decimal-format要素で指定します。

デフォルトの10進数の数値書式文字列を使用します。

返値:
string

フォーマットされた数値文字列を返します。

xvcd:document 関数

別文書をロードする関数です。この関数はXSLTのdocument()関数と互換性を持ちます。

構文:
node-set xvcd:document( object, base-node? )
引数:
object object

ロードする文書のURI参照を指定します。ノードセット、または文字列を設定します。
設定された値がノードセットの場合は、それぞれのノードを文字列として評価した値をURI参照として文書をロードします。設定された値がノードセットでない場合は、文字列として評価した値をURI参照として文書をロードします。

node-set base-node

第1引数で指定されたURI参照が相対パスのときに、絶対パスに変換するための基準URIを指定します。ノードで設定します。

第1引数にノードセットが指定された場合は、そのノードを使用します。そうでない場合は、この関数が記述されているXVCD内のノードを使用します。

返値:
node-set

ロードされたすべての文書のルートノードを含むノードセットを返します。