2008年10月19日(日)更新 |
■XQueryの書き方
たけち: 前回まででDB2でデータベース "SAMPLE01" を作って、テーブル MANYO01 に簡単なXMLデータを入れ、それを短いXQueryの記述で検索することができたね。 さらら: えぇ。 たけち: で、今回はXQueryの書き方を簡単な例で学んでみよう。 さらら: は〜い。 |
|
※ここでは、Windows版についてご説明しています。 |
■FLOWR構文
たけち: XQueryの基本構文は、FLOWR構文と呼ばれているものだよ。 さらら: FLOWR ?? たけち: 次に構文を簡単にみてみよう。 |
※FLOWRは、Flowerと同じ発音だそうです。 |
さらら: なんだか、難しそうねぇ。 たけち: う〜ん。簡単な検索だったら、一部だけ(たとえばforとreturn)を使えばできるから、少しずつ見ていこうね。 さらら: はい。でも、なんでFLOWR構文っていうの? たけち: それぞれの先頭の文字をみてごらん。 さらら: あっ、。。。(^ ^; |
|
■テーブル MANYO01内のデータ
たけち: じゃあ、検索を試してみる前に、先に作ったテーブル MANYO01内のデータがどうなっているかを確認しておこうね。どんなXMLデータだったかな? さらら: えぇ。次のデータを入れたんだったわね。 |
テーブル MANYO01 に登録したXMLデータ |
---|
<poem pno="0008" poet="額田王"> <poem pno="0015" poet="中大兄"> <poem pno="0020" poet="額田王"> |
たけち: XQueryの検索指定と結果がわかりやすいように、図にしておこうね。 さらら: はい。 |
■forとreturnだけの検索文の例
たけち: じゃあ、読みの要素(yomi)だけを検索する検索式の例を書いてみよう。ここでは、forとreturnを使うよ。XQuery文を入力する用意をして。 さらら: はっ、はい。えっ〜と。。。 たけち: 前回やったみたいに、コマンドエディタを起動して、SAMPLE01にアクセスして。。 さらら: あっ、そうだったわね。 |
yomi要素の検索例 |
コマンドエディタで |
さらら: あっ、3つの読み(yomi要素)が表示されたわ。へぇ〜。。。ねぇ、でも、どうなっているの? たけち: それじゃ、説明するね。 さらら: はい。 |
|
■forとreturn
たけち: ここでの検索式は、for句とreturn句が使われているよ。 さらら: はっ、はい。 たけち: for句では、検索対象のXMLデータの指定したノードを繰り返して処理することを指示するんだよ。 さらら: えっ?? たけち: じゃ、ここでの例を見てみよう。図を見て。 |
たけち: inで検索対象のXMLデータと抽出するノードを指定しているんだ。この例だと、 さらら: あれ。どっかで見たような・・・・ たけち: そうそう。さららの思ったとおりだよ。XMLデータ内のノードをXPathで指定しているんだよ。 さらら: あっ、XPathで指定しているのね。それで、yomiノードが抽出されるのね。わかるわ。 たけち: で、抽出したこれらのyomiノードが、変数の$inputに順に並べられるんだ。 さらら: そうなんだぁ。 |
|
※このサイトでは、XPathのコーナー(すみませんが、XPath 1.0です)で説明しています。 |
たけち: で、return句では、変数の$inputをそのまま記述しているよね。 さらら: えぇ。 たけち: この場合は、変数$inputの内容をそのまま出力しているんだね。 さらら: あ、なるほど。それで、3つの読み(yomi要素)が表示されたのね。 |
たけち: 今回はとっても簡単な例を試してみたね。 さらら: はい。だいたいの雰囲気はわかったわ。 たけち: 次回からは、少しずつ複雑な検索式にトライしてみよう。 さらら: は〜い。ありがと。 →次回はwhere句の例です。 (^ ^; |
|