DTD: 要素型宣言(3)

2005年07月17日(日)更新


■内容モデルが要素の場合 「複数の子要素の宣言」

たけち: 前回は、内容モデルが要素の場合の要素型宣言の書き方について学んだよね。

さらら: えぇ。

たけち: 今回は、内容モデルが要素の場合の複数の子要素の宣言について学ぼうね。

さらら: は〜い。

ここでは要素型宣言を学びます。

■(1)複数の子要素が順番に出現する場合の書き方

たけち: まずは、複数の子要素が順番に出現する場合、どう書くかをみてみよう。

さらら: 二つ以上の子要素がある場合ね。

たけち: うん。次のように書くんだよ。

複数の子要素が順番に出現する場合の書き方

さらら: えっ〜と。。。子要素名の名前を","(カンマ)で区切って書けばいいのね。。

たけち: その通りだよ。簡単な例で確認してみようね。

さらら: はい。

複数の子要素が順番に出現する場合の例

さらら: 図の例だと、personという要素の子要素にはnameaddress、そしてmailという要素がこの順番で出現する、ということなのよね。

たけち: そういうことだね。だから、×がついているのは、DTDで宣言した順番とは違っているからダメなんだね。

さらら: mailaddressの前にあるものね。


■(2)複数の子要素のうち、いずれかひとつが出現する場合の書き方

たけち: じゃあ、次は、複数の子要素のうち、いずれかひとつが出現する場合、どう書くかをみてみよう。

さらら: えっ〜と。。えっ〜と。。

たけち: DTDで宣言した二つ以上の子要素があって、XMLインスタンスでは、それらのうちのひとつだけの要素が出現する場合だね。次のように書くんだよ。

いずれかひとつの子要素が出現する場合の書き方

さらら: えっ〜と。。。子要素名の名前を"|"で区切って書けばいいのね。。

たけち: その通りだよ。ここでは、"|"(パイプ)は、「または」という意味で使われていると覚えておこうね。じゃあ、簡単な例で確認してみよう。

さらら: は〜い。

いずれかひとつの子要素が出現する場合の例

さらら: 図の例だと、transportという要素の子要素にはtrainbus、そしてplaneのいずれか要素が出現する、ということなのよね。

たけち: そういうことだね。だから、×がついているのは、trainbusの二つが出現しているからダメなんだね。

さらら: わかったわ。

たけち: じゃあ、今回はここまでにして、次回は、出現回数についてみてゆこうね。

さらら: あっ、はい。ありがとね。

→ 次は、要素型宣言(4) です。 (^ ^;