事の発端は「ddの中にpって入れられますか?」っていう質問からでした。
「入れられるよ!」と答えたものの自信が・・。
とりあえずHTMLの仕様書を見れば分かるんじゃないですかね。

HTMLの仕様書

他のいろんな言語と同じように、HTMLにも仕様書があります。
英語だとよくわかんないので日本語に翻訳されたものを見ます。

HTML 4.01

ほかにもいろいろ。

W3Cの仕様書等の日本語訳集

タグの説明部分を見てみる

今回はddを調べたいのでddについて書いてある箇所をみることにします。
すると、こんな感じで。

<!ELEMENT DD - O (%flow;)*             -- definition description -->

書いてありました。
なんでしょうこれ。
分かるのは「DD」っていう部分くらいかな。
調べてみるとどうやらこれが仕様のようで、これを読み解けば分かるらしいんですね。
いわゆる、DTD(Document Type Definition)(文書型定義)っていうやつ。

DTDを読む

読み方はこちらのページにありました。

DTD(文書型定義)の読み方

神崎先生のサイトにも。

ごくごく簡単なDTDの説明 - The Web KANZAKI

これをもとにすると、DTDというのは

<!ELEMENT 要素名 , タグの省略について ,  内容  , コメント -->

※カンマは見やすくするためにつけているだけで、実際は入れません

というように書かれているようです。
じゃあ、ddについてを見直してみます。

ddについて

まず、要素名。
これは分かりますね。

<!ELEMENT DD - O (%flow;)*             -- definition description -->

「DD」となっているのでこれはddについてのものだということですね。
さて、次にタグの省略について。

<!ELEMENT DD - O (%flow;)*             -- definition description -->

この「- O」の部分なんですが、最初の記号が開始タグ、二番目の記号が終了タグを表します。
「-」は省略不可
「O」は省略可能
なので、ddタグは終了タグのみ省略が可能ということですね。(HTML 4.01)

さて、この次が問題の内容についてです。
これは、タグの中身に何が入るかということです。
この場合だと、

(%flow;)*

となっています。まあ、正規表現みたいなものですね。
()の中のものが、0回もしくは複数回入るということです。
(その他のものについては上記に紹介したサイトに書いてあります!)

じゃあ、この「%flow;」ってのはなんだろう?
仕様書を見てみると「%flow;」っていうのは

<!ENTITY % flow "%block; | %inline;">

ということみたいです。
“%block; | %inline;”とあるので、ブロック要素(%block;)もしくはインライン要素(%inline;)のどちらかが入るという意味のようです。
(※詳しくは下記に記述します)

つまり、ddは

終了タグが省略可能で、中身がブロック要素かインライン要素が0回以上入る

ということですね!
あってましたね!
よかったよかった。

ENTITYとは

<!ENTITY % flow "%block; | %inline;">

にあるように、ENTITYって書いてあるときはどういうことでしょうか。
神崎先生のサイトによると

実体(Entity)はDTDやHTML文書に頻繁に現れる要素などを別名として定義しておく、C言語のマクロあるいはエイリアスのようなものです。DTD内部だけで使うものをパラメータ実体と呼びます。

とのこと。
一種の変数のようなものなんですかね。グループ分け?
記述方法は

<!ENTITY 実体名 "置換実体文" >

になります。
つまり、上記のでいくと、

「flow」というものは、ブロック要素(%block;)もしくはインライン要素(%inline;)

ということですね。
もちろん、ブロック要素やインライン要素もENTITYなのでタグの集合体になるわけです。
※気になる方は仕様書を見てみて下さい。結構細かく分かれています。

まとめ

普段HTMLの仕様書って見ることがあまりないですが、何か疑問に思ったり分からないときは仕様書をみるクセをつけるようにすると良いですよね。
何か大きな発見があるかもしれません!

Name
Comment

To pagetop


wonder_boys

wonder
Webデザイナー兼マークアップエンジニア。 静岡県浜松市在住。

RSS Entries

RSS Comments

Sponsored

Entries

Archive

Categories

Tags

まとめ アクセシビリティ イベント イベントリスナー オブジェクト オライリー バグ マイクロフォーマット マークアップ ユーザビリティ レビュー 引数 携帯サイト 正規表現 画像 目標 管理画面 背景 設定 alt AS3.0 Bitmap canvas content css DataGrid dreamweaver Flex form HTML html5 IK iphone javascript meta middle PHP png SGML SVG table wordpress XHTML XML

Links

킹ēǂ݂uOp[c