3. XPath Support Function

XMLPGSQLのXPath処理系が提供する主な二つの処理を以下に挙げる。

Table 1. XMLPGSQLが提供する主なXPath処理関数

XPath2SQL(text)XPath問合せをSQLに変換し, 文字列として返す.
XPath2SQL(text,int4)
XPath_Eval(text)XPathを問合せ評価する.
XPath_Eval(text,int4)

XPath_Eval関数はDefaultでは, マッチするノードを(文書順に)整列せずに, 抜きだす.XPath_Evalは第2引数として, (現状で)0-3のinteger型を受けつける. 第2引数を省略時にはDefaultの0として, 評価が行なわれる

Table 2. Evaluation Mode Setteing

0整列なし,マッチしたノードIDを返す(Default)
1文書順で整列, マッチしたノードIDを返す
2整列なし, Node-Flagmentsを返す
3文書順で整列, Node-Flafmentsを返す

Figure 2. Evaluation Modes

Evaluation Modes

XPathではツリーを辿る為の基本的な順序を文書順(Document Order)と呼ぶ.文書順は, ノードの出現順序によって整列する必要がある評価の際に必要である.

例えば, Axis predicateの評価(ex./predicate::node[2])では, 該当するノードを逆文書順に並べてその2番目のノードを抜きだす.

<a id="A">1
  <a id="B">2
    <a id="C" />3
    <a id="D" />4
  </a>
  <a id="E">5
    <a id="F" />6
  </a>
</a>