パス式
パス式 は、XML ツリー内のノードを探索します。 XQuery におけるパス式は、XPath 2.0 の構文に基づきます。
パス式は、スラッシュ文字 (/) または 2 つのスラッシュ文字 (//) で区切られた 1 つ以上の連続したステップで構成されます。パスは、スラッシュ文字 (/)、2 つのスラッシュ文字 (//)、またはステップから開始できます。 パス式 における 2 つのスラッシュ文字 (//) は、/descendant-or-self::node()/ として展開されます。これは、スラッシュ文字 (/) によって区切られているステップのシーケンスをそのままにします。ステップは、項目のシーケンスを生成します。 パス式のステップは、左から右に評価されます。 ステップが生成する項目のシーケンスは、後続のステップのコンテキスト・ノードとして使用されます。 例えば、式 description/name で、
最初のステップは、すべての description エレメントを含むノードのシーケンスを生成します。 最後のステップは、シーケンス内の各 description 項目の name エレメント
を一度評価します。 name エレメントは、すべての name エレメント
が評価されるまで、評価のたびに異なるフォーカスで評価されます。 ステップの各評価結果のシーケンスが結合され、
ノード ID に基づいて、重複ノードが除去されます。
パス式の最初のスラッシュ文字 (/) は、 パスが、コンテキスト・ノードを含むツリーのルート・ノードから開始されることを意味します。 そのルート・ノードは、文書ノードでなければなりません。
推奨事項: スラッシュ文字は演算子とオペランドの両方に使用できるので、
演算子の最初の文字として使用する場合には、括弧を使用して、スラッシュ文字の意味を明確にしてください。 例えば、空のパス式を乗算演算の左オペランドとして指定するには、 /*5 の代わりに (/)*5 を使用します。 前者の式は、エラーになります。 パス式の方が優先順位が高いので、 Db2 は、この式を名前テスト用のワイルドカード(/* )に続くトークン5を持つパス式として解釈します。
パス式の最初の 2 つのスラッシュ文字 (//) は、コンテキスト・ノードがあるツリーのルートを含む 最初のノード・シーケンス、およびそのルートの下位にあるすべてのノードを規定します。 このノード・シーケンスは、パス式の後続のステップへの入力として使用されます。 そのルート・ノードは、文書ノードでなければなりません。
パス式の値は、パスの最終ステップの結果である、 結合された項目のシーケンスです。 この値は、一連のノードまたはアトミック値です。 ノードと アトミック値が混合したものを戻すパス式の結果は エラーになります。
ステップは、軸ステップまたはフィルター式で構成されます。
構文
例
パス式を使用して、誰かがその見積もりにつけた値段よりも高い値段の入札が少なくとも 1 つはある 見積もりを判別します。
//stock[bid/xs:double(price) > offer/price]/@stock_id