2002年10月13日(日)更新 |
■HTMLでの混在内容の例
たけち: 今回は、混在内容について勉強しようね。 さらら: 混在内容って? たけち: 要素の内容として、テキストと要素が混在していることを言うんだよ。例えばHTMLではよくこんな書き方をしたよね。 |
<p><u>雑歌</u>、<u>挽歌</u>、<u>相聞歌</u>は万葉集の<font color="red">三大部立</font>と言われます。また相聞歌の中で<strong>譬喩表現</strong>が使われているものを特に<u>譬喩歌</u>と呼びます。</p> |
さらら: あ、そうそう、こんな書き方よくしたわ (^ ^;) たけち: こんなふうに要素の内容として、テキストと要素が混在しているもののことを言うんだ。この例題ではfont要素なんか使っているところがちょっと古いけれど (^ ^;) さらら: え〜ん、DTDも覚えていないといけないのね...(^ ^; ..... こんな感じじゃないかしら。。 |
<!ELEMENT p (#PCDATA | u | font | strong)* > <!ELEMENT u (#PCDATA)> <!ELEMENT font (#PCDATA)> <!ELEMENT strong (#PCDATA)> <!ATTLIST font color NMTOKEN #IMPLIED> |
たけち: そうだね。ここで見てもらいたいのは、 さらら: そうね。 たけち: さてこれをXML Schemaではどのように書くかなんだけれど... さらら: 全然見当もつかないわ! (キッパリ) たけち: そっ、そうだよね (^ ^;) これはこんなふうに書くんだよ。。。。 |
■混在内容を定義したXML Schemaの例 |
■mixed="true"
たけち: この中で見てほしいのは、 さらら: あっ、そうね。これだと、#PCDATAが無いのと同じね。 たけち: それを、 さらら: そうなんだ。。。DTDとは全然違うのね。 たけち: そうだね。まったくDTDと指定する方法が違うから注意しないといけないね。そしてこういう指定の仕方をしているから、今までDTDでは決められなかったような混在内容の指定の仕方もできるんだ。例えば、さっきのPTypeの定義を以下のように書き換えてみるね。 |
■choiceをsequenceに変更してみると・・・ |
さらら: choiceをsequenceに変更したのね。これだと、どうなるの? たけち: こう書き換えると、 u → font → strong の順番で1つずつだけこれらの要素が出現し、それらの要素の間にテキストが入っていてもかまわない、という意味になるんだ。だから次のようなXMLデータに合致するんだよ。 |
<p><u>雑歌、挽歌、相聞歌</u>は万葉集の<font color="red">三大部立</font>と言われます。また相聞歌の中で譬喩表現が使われているものを特に<strong>譬喩歌</strong>と呼びます。</p> |
さらら: うんうん。p要素の中に、u要素→テキスト→font要素→テキスト→strong要素→テキスト、が順に出てきているわ。やはりXML Schemaだと、DTDとはかなり違ったことが定義できるのね。 たけち: 今回はこれでおしまい。次回は「名前付きモデルグループ」について説明するね。 さらら: は〜い。 次の名前付きモデルグループにつづきます 。。。。 (^ ^* |
■XMLスキーマのコーナーは、TAKABEさま(XSLTの遊び部屋)の全面的なご協力をいただいて作成しています。 |