XMLをIEで表示(基礎編): XSLTによる変換の流れ(2)

2003年7月20日(日)更新


■ツリーチャートで使う言葉

たけち: 今回はツリーチャートを少し詳しく見てみようね。前回、ツリー構造ではノードが上下関係をもっているって話をしたよね。

さらら: えぇ。木を逆さにしたようなイメージね。

たけち: だけど、上下のノードや横並びのノードの関係を言葉で表現するときは、「系図」のようなイメージで、つぎのように呼ぶんだよ。

自分(self)、親(parent)、子(child)、子孫(descendant)、祖先(ancestor)、兄弟(sibling)

さらら: あっ、なんとなくわかる。

たけち: こうした言葉を使ってツリーチャートを見たり、それぞれのノードを示したりするんだよ。

さらら: そうなんだぁ。でも、具体的にはどうなの?

たけち: そうだね。じゃあ、次のXMLテキストを見てみよう。

さらら: えぇ。

XMLテキスト例: 万葉歌の例 【manyo.xml】

<?xml version="1.0" encoding="Shift_JIS"?>
<manyosyu>
<volume no="1">
  <poem>
    <poet>額田王(ぬかたのおおきみ)</poet>
    <yomi>
    熟田津に船乗りせむと月待てば潮もかなひぬ今は漕ぎ出でな
    </yomi>
  </poem>
  <poem>
    <poet>中大兄(なかのおおえ)</poet>
    <yomi>
    海神の豊旗雲に入日さし今夜の月夜さやけくありこそ
    </yomi>
  </poem>
</volume>
</manyosyu>

さらら: 歌(poem)が二つあるのね。

たけち: そうだね。じゃあ、このXMLデータをツリーチャートで表わしてみよう。

manyo.xmlのツリーチャート

たけち: どう? そんなに違和感はないと思うけど。

さらら: う〜ん・・そうね。雰囲気はわかるわ。でも、説明しろって言われたら、なんて言っていいかわからないわ。

たけち: じゃあ、少し詳しく見てみようね。上のツリーチャートで、最初のpoemから他のノードを見たときに、どのように示すのかを次の図で見て。

poemから見たそれぞれのノード


■同じノードをいろいろなノードから見ると・・・

さらら: あっ、そういうことなのね。。。。あっ、じゃあ、同じノードvolumeでも、poemからみたのと、たとえばpoemの子ノードのpoetから見たときは呼び方が違うのね。

たけち: そうだね。たとえば、ノードvolume

  • ルートノード(root)からは、子孫(descendant)
  • manyosyuからは、子(child)
  • volumeからは、自分(self)
  • poemからは、親(parent)
  • poemの子ノードpoetやyomiからは、祖先(ancestor)
という風に見えるんだね。

さらら: ふぅ〜ん。。。

たけち: じっ、じゃぁ。念のために、この様子を図で見てみよう。 (^ ^;

volumeをいろいろなノードから見たときの呼び方

さらら: あっ、そっか。そうなのね〜。どこから見ているかによって、同じ呼び方でも他のものを指し示すことになるのね。

たけち: そうなんだね。この「どこから見ている」、ってことはとても大事だからね。

さらら: あっ、はい。。

たけち: それから、自分より後(図で右側)の兄弟(sibling)とその子孫を含んで"following"というんだ。このあたりの詳しいことはXPathのところで説明するね。。

さらら: えっ、えぇ・・・(^ ^; (いっぺんには覚えられないわ)

たけち: じゃあ、次は、このようなツリーチャートでXSLTスタイルシートによる変換の様子を少し詳しくみてみようね。

さらら: あっ、は〜い。

→次回は変換の流れ(3)です。 (^ ^)v