ページの先頭行へ戻る
Symfoware Server V12.7.0 XQueryリファレンス
FUJITSU Software

4.3 パス式

機能

ノードの位置を指定し、ノードあるいは原子値のシーケンスを返します。

記述形式

構文の構成

参照項番

一般規則

ステップおよびステップ区切り記号
  • パス式は1つ以上のステップの並びから成り、各ステップは“/”または“//”で区切られます。

パス式: /employees/employee[@id>030000][@sex="male"]/name
           (1)                 (2)                    (3)

(1)~(3)  ステップ

  • パス式は、ステップ、または“/”、または“//”のいずれかで開始されます。

  • パス式がステップで開始される場合、先頭にあるステップは、そのパスの開始点を指定します。

  • パス式の全体が“/”である場合、このパス式は“/.”と同じ結果を返します。

  • パス式が“/”から開始される場合、先頭にある“/”は、そのパスがコンテキストアイテムの値を含むXML木のルートノードから開始されることを意味します。

  • パス式の途中に存在する“/”は、ステップとステップを分離します。

  • パス式が“//”から開始される場合、先頭にある“//”は、そのパスがコンテキストアイテムの値を含むXML木のルートノードと、そのすべての子孫で構成されるノードのシーケンスから開始されることを意味します。

  • パス式の途中に存在する“//”は、そのパスが“//”の左側のステップで表されるノードの子孫と、“//”の右側のステップで表されるノードが一致するようなパスをすべて含んでいることを意味します。

  • コンテキストアイテムの値がノードでない場合、パス式の先頭が“/”または“//”であれば、型エラーが発生します。

  • パス式が“/”または“//”から開始される場合、その評価時にコンテキストアイテムの値を含むXML木のルートノードがドキュメントノードでなければ、エラーが発生します。

  • パス式の評価規則を以下に示します。

    • パス式の評価は、各ステップを左から順に評価して行います。

    • パス式がステップで開始されているとき、先頭にあるステップは1度だけ評価されます。

    • パス式の各ステップ(先頭にあるステップは除く)は、前のステップにより生成されたシーケンスの項目をコンテキストアイテムの値とし、各項目に対して1回ずつ繰り返し評価されます。これらの反復評価結果が結合されて、後続のステップのためのシーケンスを形成します。このとき、シーケンス内のノードの重複は除去されます。

    • パス式の途中のステップ(最終ステップ以外のステップ)の結果が原子値を含んでいる場合、型エラーが発生します。

    • パス式の評価結果は、パス式の最終ステップの結果です。

    • パス式の評価結果は原子値のシーケンス、あるいはノードのシーケンスのどちらかです。パス式の評価結果が原子値とノードを少なくとも1つずつ含むようなシーケンスになる場合、型エラーが発生します。

  • パス式に指定可能なステップ数は最大100個です。

使用例

例1

全従業員の名前を検索します。

/employees/employee/name
↓出力結果
<name>Tanaka Tarou</name>
<name>Kondou Yusuke</name>
<name>Shinada Megumi</name>
<name>Kawada Hiroko</name>
例2

全従業員の年齢を検索します。

/employees//age
↓出力結果
<age>42</age>
<age>20</age>
<age>34</age>
<age>51</age>