ページの先頭行へ戻る
Symfoware Server V12.7.0 RDB運用ガイド(XMLアダプタ編)
FUJITSU Software

5.3.1 XML検索式の概要

CONTAINS関数を使用することによって表に格納しているXML文書に対して、ある条件を満たすXML文書が格納されている行を特定することができます。満たすべき条件を指示するのがCONTAINS関数で指定するXML検索式です。

XML検索式は、XMLデータの中の特定の要素や属性に対して満たすべき条件を指定したものです。

XMLデータの要素や属性を特定するためには、要素の名前や属性の名前を指定します。これは表の中の列を特定するのに列名を使用することと似ています。

XMLデータは、要素の中に要素を記述することによって多階層のデータを表現できます。

このためXML検索式では、上位の階層にある要素から順に要素や属性の名前を“/”でつないだ形によって要素や属性を特定します。このような記述を「パス」と呼びます。

パスはXML検索式を記述する上で基本となる概念です。

たとえば次の記述は、「XMLデータのルート要素である“A要素”配下にある“B要素”」を表すパスです。

/A/B

また、属性は以下のように属性名の先頭に“@”を付加して表します。

/A/@C

以下のように“/”だけを指定したパスは、XMLデータ自身を表します。

/

XML検索式とは、「“ある条件を満たす”XMLデータ」という意味を表現したパスのことです。

“ある条件を満たす”という意味をパスの記述に含めるためには、パス中の要素名・属性名またはXMLデータを表す“/”の右に“[”“]”で括った式を記述します。

つまり、XML検索式は以下のような、XMLデータ自身を表す“/”の右に“[”“]”で括った式を付加した形式となります。

XML検索式の形式 :
    /[式]

“[”から“]”までをフィルタと呼びます。

フィルタの中に指定する式として一般的なのは、以下の例のように「要素や属性がある値である場合」という条件を表す比較式です。

以下のXML検索式は「ルート要素である“A要素”配下の“B要素”の値が“abc”であるXMLデータ」という意味を表しており、CONTAINS関数はこの条件を満たすXMLデータが格納されている行に対して1を返します。

/[A/B = " abc" ]