XML Path Language
完全な構文の一般式は以下の形となる。
/軸方向::名前空間:ノードテスト[述語]/~~
先の#省略構文の節で示した2つの例を、省略しない完全な構文によって書き直すと次のようになる。
/child::A/child::B/child::C
child::A/descendant-or-self::node()/child::B/child::*[1]
このように完全な構文で記述されたロケーションパスの各ロケーションステップにおいては、
軸をchildやdescendant-or-selfのように明示的に指定する。
軸の指定に続けて::を記述し、さらにノードテストをAやnode()、*のように記述する。
省略構文と同様に、ノードテストの指定に続けて角括弧[と]を後ろにつけて述語を指定することができる。
コンテクストノード自身とコンテクストノードの祖先ノード
省略構文でattribute軸を使う例を示す。
//a/@href
この例では、href属性ノードの集合を選択する。 選択された href属性ノードは、XML文書内のいずれかのa要素ノードに属している。
self軸は、後述する述語の中でその述語の直前のノードテストで選択されたノードを記述するためによく使われる。 例を示す。
h3[.='関連項目']
この例では、カレントノードの子ノードであり、かつ内容のテキスト'関連項目'をもつh3要素が選択される。
全てのテキスト(文字列)ノードを指定する。例: <k>こんにちは</k>の中の'こんにちは'