計算スクリプトの名前空間の概要を説明します。
計算スクリプトの名前空間の概要や使用方法、要素・属性を解説します。
計算スクリプトの名前空間の概要を説明します。
VCで処理されるXML文書内で計算を行う仕組みを提供する名前空間です。
計算スクリプトの名前空間URI参照は http://xmlns.xfytec.com/calc です。 以下の説明で、計算スクリプトの要素を記述するときは、calc:という名前空間プレフィックスを使用します。
計算スクリプトを使用する方法には、定義したスクリプトを割り当てる方法と、計算スクリプトを任意の要素の属性として埋め込んで使用する方法(属性埋め込み)があります。
計算スクリプトをXML文書に割り当てて使用する方法には、次の2とおりの指定方法があります。
com.xfytec処理命令にcalculationパラメータを指定して、次のようにXMLファイルに記述します。
<?com.xfytec calculation href="計算スクリプトファイルのURL" ?>
calc:calc要素には、必ずid属性を設定します。埋め込み計算スクリプトのid属性に指定したID値を、com.xfytec calculation処理命令に次のように記述します。
<?com.xfytec calculation href="#埋め込み計算スクリプトのcalc:calc要素のid属性の値" ?>XML文書に埋め込む計算スクリプトは、対象のXML文書のルート要素内に記述します。
com.xfytec calculation処理命令で複数の計算スクリプトを割り当てたときは、先に記述された計算スクリプトが優先されます。
属性埋め込みを使用して計算スクリプトを記述する場合は、値に計算式を記述した calc:expression大域属性を計算スクリプトを埋め込む要素に設定します。
計算の実行は、計算スクリプトに記述されている式が参照しているノードの内容が変更された場合と、計算スクリプトに記述されている式自体が変更された場合とで、実行されるタイミングが異なります。
calc:expression大域属性が要素から削除されたり、calc:expression大域属性が設定された要素自体が削除されたりした場合は、その計算スクリプトに基づいた計算は実行されなくなります。
計算式が参照しているノードと計算式との参照関係が循環参照になった場合、計算は反復せずに1回だけ実行されます。
計算スクリプト名前空間で定義されている要素・属性を解説します。
計算スクリプトの記述に使用される要素・属性は以下のとおりです。
calc:calc 要素計算スクリプト全体を含む要素です。
id
calc:calc要素を識別する属性です。ID値を記述します。XML文書内に計算スクリプトを埋め込む場合、この属性で設定されたID値でcalc:calc要素を識別します。
省略した場合、属性に値が設定されていないと見なされます。
version
(必須)
計算スクリプトのバージョン番号を設定する属性です。必須属性です。必ず1.0を設定します。
calc:calc要素内には、 calc:bind要素を1つ以上、任意の数だけ記述できます。
calc:bind 要素計算式と、計算結果の出力先のノードを指定する要素です。 計算結果の出力先には、ノードセットを指定することもできます。ノードセットを指定した場合、ノードセット内のそれぞれの要素に計算結果が出力されます。
target
(必須)
計算結果の出力先のノードまたはノードセットを指定する属性です。XPath式で記述します。 XPath式を評価した結果、得られたノードの種類によって、計算結果の出力先が異なります。
この属性で指定されたノードをコンテキストノードとして、計算式が評価されます。ノードセットが指定された場合は、ノードセット内の各ノードをコンテキストノードとして、計算式が評価されます。
expression
(必須)
計算式を設定する属性です。XPath式で記述します。 計算式には数値を参照するノードを指定できます。ノードを指定するときは、絶対パスだけでなく、target属性で指定したノードまたはノードセットからの相対パスを使用することもできます。
calc:bind要素は空要素です。
計算スクリプトを属性埋め込みで記述するときに使用される大域属性は、以下のとおりです。
calc:expression 属性XML文書内の任意の要素に計算スクリプトを埋め込みで記述するときに使用する大域属性です。値には、計算式を表すXPath式を設定します。