Hitachi

Cosminexus V11 BPM/ESB基盤 サービスプラットフォーム 開発ガイド 基本開発編


7.19.1 変換先ノードへの代入

XPathファンクションを使用して変換先ノードに値を代入する方法を説明します。

〈この項の構成〉

(1) 単純型ノード値の代入

単純型ノードの値を変換先ノードへ代入する場合は,単純型ノードのロケーションパスをXPathファンクションに指定します。

参考

ロケーションパスは,XML文書の階層構造の中から特定のノードを指定するための記述方法です。

[図データ]

ロケーションパスの詳細な仕様については,「XML Path Language (XPath) Version 1.0‐2 Location Paths」を参照してください。

次に代入例を示します。

図7‒99 単純型ノード値を代入する例

[図データ]

上記の例では,変換元の「/InputData/value」の値が変換先の「/OutputData/result」に代入されます。

(2) 属性ノード値の代入

属性ノードの値を変換先ノードへ代入する場合は,属性ノードのロケーションパスをXPathファンクションに指定します。属性ノードは「@属性名」と表記します。

次に代入例を示します。

図7‒100 属性ノード値を代入する例

[図データ]

上記の例では,変換元の「/InputData/@id」の値が変換先の「/OutputData/result」に代入されます。

(3) 名前空間に属するノード値の代入

名前空間に属するノードの値を変換先ノードへ代入する場合は,名前空間接頭辞を含んだロケーションパスをXPathファンクションに指定します。

次に代入例を示します。

図7‒101 名前空間に属するノード値を代入する例

[図データ]

上記の例では,変換元の「/sample:InputData/sample:value」の値が変換先の「/OutputData/result」に代入されます。

デフォルト名前空間に属するノードの値を変換先ノードへ代入する場合は,名前空間URIを明示的に指定する必要があります。

[図データ]

上記の例では,変換元の「/InputData/value」の値を変換先の「/OutputData/result」に代入する場合,次のXPath式となります。

[図データ]

(4) 演算結果の代入

演算子を使用することで変換先ノードへ演算の結果を代入することができます。

次に代入例を示します。

図7‒102 演算結果を代入する例

[図データ]

上記の例では,変換元の「/InputData/value」の3倍の値が変換先の「/OutputData/result」に代入されます。

演算子の仕様については,「XML Path Language (XPath) Version 1.0‐3 Expressions」を参照してください。

(5) XPath関数の結果の代入

XPath関数の結果を変換先ノードへ代入することができます。

次に代入例を示します。

図7‒103 XPath関数の結果を変換先ノードへ代入する例

[図データ]

上記の例では,namespace-uri関数の結果(変換元sample:InputDataの名前空間URI)が変換先の「/OutputData/result」に代入されます。

XPath関数の仕様については,「XML Path Language (XPath) Version 1.0‐4 Core Function Library」を参照してください。

(6) 複数変数指定時のノード値の代入

変換元に複数の変数を指定している場合のノード値の代入方法を次に示します。

(a) 1番目に定義されている変数のノード値

1番目に定義されている変数のノード値の代入は,(1)〜(3)で示した方法と同じです。

次に代入例を示します。

図7‒104 1番目に定義されている変数のノード値を代入する例

[図データ]

(b) 2番目以降に定義されている変数のノード値

2番目以降に定義されている変数のノード値を代入する場合は,(1)〜(3)で示したロケーションパスの先頭に”$変数名”を付与します。

次に代入例を示します。

図7‒105 2番目以降に定義されている変数のノード値を代入する例

[図データ]