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を返す |
XPathではツリーを辿る為の基本的な順序を文書順(Document Order)と呼ぶ.文書順は, ノードの出現順序によって整列する必要がある評価の際に必要である.
例えば, Axis predicateの評価(ex./predicate::node[2])では, 該当するノードを逆文書順に並べてその2番目のノードを抜きだす.
<a id="A"><a id="B">
<a id="C" />
<a id="D" />
</a> <a id="E">
<a id="F" />
</a> </a>