作者: 閑舎
日時: 2002/2/12(03:39)
 これから何回かにわたり XML の概要を説明し、その使用例の一つとして、私
の考案した XTOP というフィルタについて解説したいと思います。

 この解説は XML についての予備知識を持たない人にも容易に理解できるよう、
基本的なポイントを押さえながら述べる予定です。ただ、ホームページ作成言語 
HTML についての知識があるほうが理解は早いでしょう。

 また、現在私は多忙を極めており、その気分転換をかねて書いているために、
多くの質問に答えたり、十分な具体例を提供したりする暇はないと思います。

                    −*−         −*−         −*−

■第一回 HTML とは

 まず、現在 Web 上で広く使われている HTML について振り返っておきましょ
う。

 次のような HTML 文書があるとします(samp1.html)。

                    −*−         −*−         −*−

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
 "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
 <title>News on TS Network</title>
</head>
<body>

<h1>TS Network ニュースシステム開始!</h1>
<a href="http://rakunet.org/TSNET/">閑舎</a><br>
&nbsp;&nbsp;&nbsp; 2002/01/01<br>

本日未明、うわさのニュース共有システムが始まった。
これは @Nifty の フォーラム FGALTS 主宰者 藤岡氏の提唱によるもので、
その呼びかけに応じて、
有志数名が XML 形式による Web ニュース共有システムに賛同し、
参加を表明したもの。
当面、テキスト、スクリプトの話題についてのニュースを流していくという。

</body>
</html>

                    −*−         −*−         −*−

 これはごくシンプルな例ですが、XML につながるいろいろな意味を持っていま
す。HTML 文書ですので、意味がわからない部分があれば、切り取って 
samp1.html という名前で保存し、Internet Explorer あるいは Netscape
Navigator などのブラウザで表示してみましょう。

 以下、細部について説明していきます。

                    −*−         −*−         −*−

1.  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
2.   "http://www.w3.org/TR/REC-html40/loose.dtd">

 HTML 文書は < と > に囲まれた「タグ」という部分がそのまま画面に表示さ
れない特別な意味を担っています(一般に文書の論理構造を指定)。

 この 1-2 行目はそのタグの中でも特別な ! で始まるタグ名を使い、HTML 文
書が準拠する規格名を明確に示している箇所で、本来ホームページの先頭にはこ
れを書くのが望ましいとされています(つまりなくても動作する)。現在の 
HTML の規格は W3C が発表した 4.0 が最も上位のもので、このうち、Strict、
Frameset という規格はタグの一部しか使えないので、フレームの親となる場合
を除き、「Transitional」と指定するのが無難になっています。

                    −*−         −*−         −*−

3.  <html>
    ...
22. </html>

 タグは通常「開始タグ」と「終了タグ」がセットとなっており、その中に文書
の内容が入ります。この場合、<html> が開始タグ、</html> が終了タグで、こ
の間に全 HTML 文書が入るということになります。

                    −*−         −*−         −*−

4.  <head>
5.   <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
6.   <title>News on TS Network</title>
7.  </head>

 開始タグ <head> と終了タグ </head> に囲まれた部分は、<html> タグの直後
にあって、ヘッダ情報を書く箇所です。通常、複数の「空白文字」はつぶされて 
1 個の空白文字になり、ヘッダ情報内の記述は画面に表示されないので、改行や
インデントを入れてタグを見やすくします。

 <meta ...> は特別な 1 行で、「文字コード」を Shift JIS に指定していま
す。<title> ... </title> はタイトルを設定する箇所で、ここで設定した文字
が通常ブラウザのタイトルバーに表示されます。

                    −*−         −*−         −*−

8.  <body>
    ...
21. </body>

 <body> から </body> までに書かれるテキストが本文となります。

                    −*−         −*−         −*−

10. <h1>TS Network ニュースシステム開始!</h1>

 <h1> ... </h1> に書くのは大見出しです。<h2> ... </h2>、<h3> ... </h3> 
となるにつれ、見出しの文字が小さくなります。

11. <a href="http://rakunet.org/TSNET/">閑舎</a><br>

 <a> タグはこれまでと違い、a という「要素名」の後に空白があり、href と
いう「属性名」が続いて、その値を http://rakunet.org/TSNET/ とセットして
います。このようにタグの中には、属性を持つものがあります(<img> タグの場
合の src 属性など)。<a> タグはハイパーリンクを表すもので、href 属性でそ
のリンク先を指定しているわけです。

 「属性値」を "" で囲まない例も散見しますが、XML ではエラーになるので、
"" で囲む習慣をつけたほうがよいでしょう。この場合、画面には「閑舎」とい
う文字が地の文と違う形で表示され、クリックすると、別のページにジャンプす
る、というのがブラウザ側の実装となっています。

 つづく <br> タグは改行を表すものなのですが、注意することがあります。こ
れまでに出たタグは全て開始タグと終了タグがセットになっており、その適用範
囲が明確だったのですが、<br> には </br> という終了タグがありません。これ
は HTML には「終了タグの省略」という規定があり、中味が「空のタグ」の場合
終了タグを省略できるのです。

 つまり、<br> とは <br></br> のことなのです。

                    −*−         −*−         −*−

12. &nbsp;&nbsp;&nbsp; 2002/01/01<br>

 ここに現れた &nbsp; を「実体参照」と呼びます。HTML では < や > は特別
な役割をしますから、テキスト内にそのまま書くことができません。そこでそれ
ぞれ &lt; &gt; という形式で書くことになっています。同様に、空白文字もつ
ぶされますから、そのまま書くことができません。どうしても書きたい場合、
&nbsp; と書くことになるわけです。つまり、& で始まり ; で終わる文字列は特
殊なものを表現するのに使われる、ということを覚えておきましょう。

                    −*−         −*−         −*−

14. 本日未明、うわさのニュース共有システムが始まった。
    ...
19. 当面、テキスト、スクリプトの話題についてのニュースを流していくという。

 ここは単純な本文なので、説明は省略します。

                    −*−         −*−         −*−

 HTML についての説明がもう少し残ってしまいましたが、十分長くなったので、
今回はこれで終わります。

--
本田博通(閑舎)
Hiromichi Honda <raku@...>