パラグラフと区域(ブロック)構造



#HTMLの基本構造

HTMLは識別情報によるマーク付けブロック構造からなるテキスト化文書で、 SGMLの一アプリケーションです。SGMLは、標準一般化マーク付け言語といわれるよう に、識別情報(構成成分としては要素)をタグという形式でマーク付けし、固有のレ イアウト情報を排除し、文書をテキスト化する言語体系です。HTMLも、この識別情報 (構成成分としては要素)をタグ形式でマーク付けし文書をテキスト化したもので、 SGMLをベースにしているということです。

アプリケーション(application)
コンピューターによる実務処理などに適した特定の業務
(ランダムハウス英和大辞典)
メタ(meta)
メタ言語(meta-language)

1. SGML(Standard Generalized Markup Language)

様々なアプリケーション毎に形式が異なり文書交換ができない状況に対して、これ を改善するためにSGML(標準一般化マーク付け言語)が提案されました。ソフト固有 の情報を必要とするレイアウト情報を採用しないで、文書をすべてテキスト形式で表 現するようにしました。ここは「見出し」、この範囲が「パラグラフ」といった 識別情報は必要で、「タグ(名札)」 とよばれる特別の形式でマーク付け(マークアップ・印付け)し、且つブロック構造 になっています(マークアップ言語と言われる理由です)。

さらに、 識別情報もユーザーが定義できるようになっていますので、表現 の自由度は高く、且つ 識別情報や文書の厳密な論理構造の設定が可能です。その定義の 仕方が規格になっていて、 DTD(Document Type Definition:文書型定義)と呼ばれる部分で す。つまり、SGMLは構造的なテキスト化文書を作成する決まり手順を記述する言語で す(メタ言語)。このメタ言語を使って、SGMLをベースとしたいくつものアプリケー ションを作ることができいます。

電子文書交換・文書管理・文書印刷において使用されています。豊富な識別情報に そって検索を絞り込むことも可能でデーターベース化に適しています。

目次

2. HTML(Hyper Text Markup Language)

2.1 HTML(SGMLベースアプリケーション)とは

Tim Berners-Lee(World Wide Webの創案者)によって、CERNで使われていたサンプ ルSGML DTDの 幾つかのマーク付けリンクそれに スタイル・シートの併用で、HTMLがスタートしました。その後 シンタックス(使い方)がいくらか曖昧であったものが、 SGMLベースのアプリケーションへと発展しました(HTML 2.0)。 SGMLベースになったとはいえ、スタイル・シートでの体裁設定でなく属性で体裁を特 定するなど、妥協による痕跡もありHTML 4.0まで待たなければなりませんでした。

[W3C: HTML Home Page]の historical--> "Some early ideas for HTML"を参照。

HTMLもSGMLにそったタグ形式によるマーク付けによって文書をテキスト化しますが、 文書専門家でない人も使える言語を目指しています。HTMLでは SGMLの複雑さを解決するのに、識別情報や文書構造をユーザーが定義するのはなく、 比較的単純な文書作成に適する一連の構造と意味を前もって特定 すること(アプリケーションを作る)で対応しました。SGMLではオプション機能が多 くて送り手と受けてが相互操作ができるにはオプションの組について了解をしていな ければなりませんが、HTMLではその点問題がなくWWW(世界的通信網)であるグロー バルな汎用書式となりました("HTML for global markup")。

!DOCTYPE HTML PUBLIC と 公開されており、そのDTDは、 "-//W3C//DTD HTML 3.2 Final//EN" などと記載してDOC宣言(文書 型宣言)します。この規則に従ってHTMLを記載しなければなりません。SGMLとは異 なって、規則構造を記述するのではなく、既に構造規則が出来上がっているSGMLベー ス・アプリケーションです。

HTML 2.0 テーブル・フレームなし
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
HTML 3.2 テーブル認めるが、フレームはない。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
HTML 4.0 移行期のもの(体裁属性や要素を認める)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
HTML 4.0 構造と体裁を分離した厳密なもの
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
HTML 4.0 Transitionalで、フレーム+Transitional
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN">

などと、まず文書型宣言し、その識別情報や構造を 宣言された定義に従ってHTML文書を記載します。W3Cなどが勧告し ている基準に従い且つWAI指針にそって適切な降格化や背景色に留意すれば、 互換性が保たれ多くの人が閲覧できます。以下に関連資料をあげておきます。

さらにハイパーテキストシステムは文書内や文書間の協調リンク をサポートして、テキスト処理を別のやり方で改善し、画像やその他のメディアも 処理します。

HTMLの基本構造も、SGML同様ブロック構造です。文書体部に 記載される実際のデーターは、 ブロック体の積み重ねで構成されます。スタイル(体裁)を指定 するスタイル・シートはこのブロックを足掛りに設定するので、ブロック構造がきっ ちりできていないと設定できません。このことから、HTMLでは構造を設定し、スタイ ルシートで体裁を設定すると言われるわけですが、属性での体裁設定を残していま す。また、テーブルやフレームといった体裁用要素も認めていますが、工夫して使わ れるべきです。
スタイル・シートの意味]参照

2.2 HTML(SGMLベースアプリケーション)とXML(SGMLサブセット)

global:地球規模
及ぶ範囲(規模)が地球的・世界的である。
言葉の意味を支える文脈の共通性が緊密でなく、構造的なマーク付けに基盤をおく。
community:共同体
共通の意識に支えられた集団を意味する。
共通の特質・利益・職業を持った人の社会・界(通常:the community)
言葉の意味を支える文脈の共通性がより緊密である。意味論的なマーク付けもでき る。

HTMLでは、識別情報(要素)は前もって規定され固定的で数も限られていますので、 密な論理構造構築には向かない面もあります(限定された、SGMLベースのアプリケー ション)。 識別情報(要素)にそった検索の絞り込みにも制限があり、メタ情報でのキーワード が補ってくれますが、SGMLのように文書のデーターベース化などには適していまん。 それ故、SGMLより繁雑でなく識別情報が拡張可能なXML記述言語体系(メタ言語)、 つまり簡潔なSGMLのサブセット、の方向もでてき、データーベース化がXMLで進み、 XMLベースの目的別(community-specific)標準XMLアプリケーションがでてくるのか もしれません。 "HTML for global markup"(領域を問わない広範汎用マーク付けとしてのHTML)・ "XML for community-specific markup"(ある領域・何々界での詳しい特異的なマー ク付けとしてのXML)とも表現されるように、共存するのでしょう。後者の特異的な 用途の例として; Chemical Markup Language (CML)・ Mathematical Markup Language (MathML)・ Web Interface Definition Language (WIDL Automated Web Processing)などがあり ます。

一方HTMLでは、リンクやスタイル・シートが本来持つ効果が発揮されていません。SGMLでは、リンクの指定方法が決まっていません。XMLでは、URLの指定で高度なリンクが可能です(XLink・XPointer)。HTMLでは、ハイパーテキスト・システムのうち単一方向の最も単純なリンクに対応しているだけです。 スタイル・シートについても同じことが言えます。「文書・様式・意味論仕様 言語 Document Style Semantics and Specification Language(DSSSL)」が、SGML 文書のスタイルシート用言語ですが、サポートしたブラウザがありません。XMLでは、DSSSLではなくXSLをW3Cが勧告し、ブラウザもサポートする方向です(XSL)。このようにXMLでは、ハイパーテキスト・システやスタイル・シートが本来持つ、より実り多い機能が導入できます。

SGMLはウェブ上では危険性があります。と言うのは、オプション機能が多くて送り手 と受けてが相互操作ができるにはオプションの組について了解をしていなければなり ません。簡潔なしかしSGMLに厳密なSGMLサブセットであるXMLは、この点からもウェ ブで使えるアプリケーションの作成が可能ということなのです。

HTML for global markup と XML for community-specific markup
文書形式 自由度 公開性
共通性
ウェブ適応性
リンク・スタイルなどと
制作容易性
記述言語
SGML  ◎   ◎   ×   × 
XML  ◎   ◎   ◎   ◯ 
アプリケーション
XHTML  ◎   ◎   ◎   ◎ 
HTML(W3C勧告)  △   ◎   ◎   ◎ 
 :HTML(独自拡張)  △   △   ◯   ◎ 
その他
テキスト  ×   ◎   ×   

2.3 HTMLの意義と使用上の留意点

XMLベースでHTMLを再定義するXHML(XMLベース・アプリケーション)の試みもあり、HTMLからの転換ソフトも試みられています。 HTMLでは、識別情報(要素)つまり構造、が限定されている故に多くの人にとっ て習得が容易で、 文書専門家でない人にも使える言語であると言うHTMLの利点があ ります。互換性ある情報発信者になるには、 基本構造の意味を理解し、基本的なスタイル・シート設定で、制 限内(HTML)でも応用が効くようにし、"HTML for global markup"という利点を大切 にすることが重要です。

目次

3. ブロック体:パラグラフ・パラグラフ様要素

3.1 ブロック体とは:一つにまとまったもの

RFC 1866 (HTML 2.0) 6. 文字符号・単語そしてパラグラフ
表示代行手段(ブラウザなど)は、植字されたパラグラフや整形文の集まり として、HTML文書を表現すべきです。
マーク付け
構造を表現するために、文書のデーターに付けられた構文的に区切られた文字
構文的に区切られた文字:タグ(名札 tag:印)という形式の文字
要素に区切りを付けるマーク付け。 タグは、 DTDにある要素宣言を参照する名前を含み、 属性もふくむこともあります。 開始タグは、`<'`>'で区切られ、
終了タグは、`</'`>'で区切られます。
**********************************************************************
<P align="center">
DTDにある要素宣言を参照する名前を含み、属性もふくむこともあります。
</P>
**********************************************************************
<P align="center">: 配置属性のあるP要素の 開始タグ P要素が始まります。
</P>: P要素の終了タグ P要素 は終ります。注意 属性は記載しません。

上のようにHTML 2.0に「集まりとして」と記載があり、構造化ということです。構造 を表現するのにタグという形式のマーク付けをします。HTML構造でいうブロック体の 代表的なもので、ノーマル・パラグラフとも言われます。これが基本の基本の考え方 です。以前は、HTMLについての非公式な文書がインターネット上に色々とありまし た。それまでに出回っていたものとは異なり、[ HTML 2.0]では、識別情報(要素)で 囲みデーターを一まとめにし、ブロック構造にとSGMLにそったものにしました。


<HTML>
<HEAD>
<TITLE>パラグラフ</TITLE>
<BODY>
表示代行手段(ブラウザなど)は、植字されたパラグラフや整形文の集まりとして、 HTML文書を表現すべきです。
</BODY>
</HTML>

から、以下のように一纏まりを識別情報でマーク付けし明確にブロック体とすると言 う SGMLにそった規定にしました。上のほうの書式ではブロック構造か ら外れた 「浮き漂う文(floating text)」になってしまい、ここの例では P要素を足掛りとしてスタイル・シートは設定されますので、上の書式 ではその足掛りがありません。

<HTML>
<HEAD>
<TITLE>パラグラフ</TITLE>
<BODY>
<P>
表示代行手段(ブラウザなど)は、植字されたパラグラフや整形文の集まりとして、 HTML文書を表現すべきです。
</P>
</BODY>
</HTML>


block:ブロック
コンピューター用語で、「一操作で読み書きできるようデーターを一つにまとめ る」と定義されるものです。この範疇に入り、HTML書式にそったものの典型は、パ ラグラフ(段落)です。以後ブロック体という用語が使われる場合も考え方は、この 範疇に入るものです。
normal paragraphとparagraph like要素
テキストはP要素で囲み、normal paragraphとも言われ、「normal」とは、 「普通の」とか「基本の」という意味です。PREは、前もって整形された文で通常等 幅フォントで表示されるnormal Pの一亜型ですし、BLOCKQUOTEも他者の構造化された 内容の引用ですのでnormal Pの一亜型と言えす。これ以外のブロック・レベル要素 は、パラグラフ様(Paragraph like)とも言われます。つまり、ブロックを作り、垂 直に配置されるという意味(垂直配置体、ブロック体)では、同じ範疇に入りす。

3.2 ブロック中断:一行空白挿入しブロック体を垂直配置に標示

通常のテキストのパラグラフ要素とこれに準じるリストやテーブル等のパラグラフ様 要素は、ブロック体と総称され、垂直に配置されます(垂直配置体)。ブロック体の 区切りをブラウザ上では一行空白(パラグラフ・ブリーク、ブリーク=中断)で表示 します。パラグラフ中断をなくすには、スタイル・シートによって余白をゼロに設定 する方法をとります。パラグラフとその表示については、[ 日本語]を参照下さい。

一般的なブロック体(一つに纏まっていて、垂直に配置されるもの)には、パラグ ラフとしてのP・PRE・BLOCKQUOTEや構造整理としてのHn・HR・DIVなどの要素があ り、さらに特別な目的のブロック体としては構造的なList(UL・OL・DL)要素と配 列体裁的なTableや相互交信要素Formがあります。配列体裁的なTable要素は、注意 して使わなければなりません。ブロック体は全て要素(識別情報)からなっていて、 パラグラフ中断は一行空白をおいて区切りを表示します。

基本的なHTMLの書き方とスタイル・シート設定法については:

3.3 HTML 4.0 DTDでのブロック体の定義

(共通の性質としてブロックを形成し、配置が垂直になる) ブロック体と総称されるものは、DTDの定義により、以下のような 要素(識別情報)から構成されています。その要素群はブロック ・レベル要素といわれます。



ブロック体とは、
<!ENTITY % block
<!ブロック体
     "P | %heading; | %list; | %preformatted; | DL | DIV | NOSCRIPT |
      BLOCKQUOTE | FORM | HR | TABLE | FIELDSET | ADDRESS">
で、
各要素とその他の体のことです。
その他の体とは以下の要素のことです。

<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
<!見出し体 "H1|H2|H3|H4|H5|H6">

<!ENTITY % list "UL | OL">
<リスト体 "UL | OL">

<!ENTITY % preformatted "PRE">
<!整形体 "PRE">

以上まとめると、DTDの各パラメーター実体を要素レベルまで展開して、ブロック体 とは以下の要素のことです。


 P | H1|H2|H3|H4|H5|H6| UL | OL | PRE | DL | DIV | NOSCRIPT |
 BLOCKQUOTE | FORM | HR | TABLE | FIELDSET | ADDRESS

UL・OLがブロック・レベル要素であって、LIはブロック・レベル 要素ではないことに注意しておいて下さい。

3.4 ブロック・レベル要素にくる内容

インライン体(後述)しか取れないものと、ブロック体のみ取 るもの、両者を取れるものがあります。入れ子は後者の一形態です。そこで、DTDの 読み方を知らなければなりません。 [SGMLって] [HTML 4.0仕様書:SGMLとHTMLについて] [HTML 2.0:SGMLアプリケーションとしてのHTML] [HTMLのDTDを読 んでみよう(by Yano)]を参照下さい。また、W3C勧告仕様書には索引がありま すので、 [要素辞典]として確認に利用することができます。

3.4.1 定義の見方とタグ形式によるマーク付け
<!ELEMENT P - O (%inline;)*    -- パラグラフ -->
<!要素 P - O (インライン体)*   -- パラグラフ -->
要素名はPで、開始タグは必須(-)で閉じタグは省略(O:omitte)しても構いません。 要素Pの内容にはインライン体(%inline;)がき、インライン体が来なくてもまた何 回きても(*)かまいません。
<!ENTITY % flow "%block; | %inline;">
<!フロー体 "ブロック体 | インライン体">
%flowと銘々されるフロー体は、ブロック体もしくはインライン体とのことです。
マーク付け
構造を表現するために、文書のデーターに付けられた構文的に区切られた文 字
(HTML 2.0の用語から)
要素と名札(タグ):タグ形式によるマーク付け
要素の意味をブラウザに伝えるには、特殊な形式の名札(タグ)を付けます (タグ付け・マーク付け)。こうしないと単なる文字としか解釈しません。はじめを 示すには開始タグ (<>)を、終りを示すには閉じタグ(</>)を使います。
要素Aの意味は<A>-------------</A>で表現し、ブラウ ザに その要素の意味その及ぶ範囲を伝えます; <A>をA要素の開始タグ、 </A>をA要素の閉じ(終了)タグと言います。
インライン体が「来なくてもまた何回きても(*)」かまいませんとは:

<P></P>は、意味はありませんが文法的には間違ってい ません。ブリーク中断表示、つまり一行空白が挿入されるので、挿入目的のために 流用されています。weblintでは警告をだします。2の様にしておくと警告はでません が、流用には違いありません。このような場合、 <HR>を使うケースです。

  1. <P></P>
  2. <P>&nbsp;<P>や<P>_</P> (_は二バイト空白文字)
  3. <HR>

目次

3.4.2 ブロック・レベル要素(ELEMENT)を分けてみる
  1. <!ELEMENT P - O (%inline;)*               -- パラグラフ -->
    <!ELEMENT (%heading;)  - - (%inline;)*        -- 見出し -->
  2. <!ELEMENT BLOCKQUOTE - - (%block;|SCRIPT)+  -- 長い引用 -->
  3. <!ELEMENT UL - - (LI)+              -- 非序列リスト -->
    <!ELEMENT LI - O (%flow;)*          -- リスト項目 -->

インライン体を使える場合でも整形文(PRE)では等幅フォントで表示するので、文 字サイズを変更する要素は使えません。それは %pre.exclusion;(PRE除外体)といわれるもので、以下の要素が この範疇にはいります。

| IMG | OBJECT |BIG | SMALL | SUB | SUP |

ブロック・レベル要素"UL"の内容は「一つ以上複数(+)」の要素"LI"を取り、"LI" の内容はフロー体(%flow)です。"UL"がブロック・レベル要素なのです。"LI"は "UL"の構成成分としての要素で、ここに項目を記載するのであって、"UL"に直接項目 を記載するのではありません。DTDにそって正確に記載しなければなりません。

タグ付けした非序列リストは、
       <UL>
         <LI>%flow;</LI>      :</LI>は省略してもいい
         <LI>%flow;</LI>
         </UL>
<!ELEMENT DL - - (DT|DD)+                    -- 定義リスト -->
<!ELEMENT DT - O (インライン体)*               -- 定義用語 -->
<!ELEMENT DD - O (フロー体)*             -- 定義用語の説明 -->

定義リストは、多少異なりリスト項目は二つの部分、用語と説明、からなっていま す。用語は、 DT要素で与えられ、内容はインライン体に限ります。説明は、 DD要素 で与えられ、ブロック体(%flow;=インライン体+ブロック体)とります。DLの応用 は、例えば、対話をマーク付けします。 DTを話し手の名前を、DDを言葉をいれま す。

タグづけした定義リストは、
            <DL>
            <DT>インライン
            <DD>フロー
            </DL>

<!ELEMENT DIV - - (%flow;)*    -- generic language/style container -->

区域(division)を指定し、グループ化します。HTML 4.0 Trasitionalでは、配置 属性がありこの区域のセンタリングなどに使います。

タグ付けすると、
        <DIV>%flow;</DIV>   :%flowがTABLEの例を以下に示します。

<!ELEMENT TABLE - -
  (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>
<!ELEMENT CAPTION  - - (%inline;)*     -- 表題 -->
<!ELEMENT TBODY    O O (TR)+           -- table body -->
<!ELEMENT TR       - O (TH|TD)+        -- テーブル行 -->
<!ELEMENT (TH|TD)  - O (%flow;)*  - テーブル表題、テーブル・データー ->

ブロック・レベル要素"TABLE"の内容は要素CAPTION・TBODYなどがき、要素TBODYのとる内容は複数の要素TRで、そのTRの内容は複数の要素TD(TH)です。CAPTIONの内容 はインライン体(%inline;)で、TDの内容にはフロー体(%flow;)がきます。TBODY が一つの場合省略できます。

タグ付けした表題付き二行二列表でセンタリングすると、
            <DIV align="center">    :Transitionalではセンタリングが
       <TABLE>
       <CAPTION>%inline;</CAPTION>
               <TR>
                  <TH>%flow;</TH>
                 <TH>%flow;</TH></TR>
               <TR>
                <TD>%flow;</TD>
                 <TD>%flow;</TD></TR>
              </TABLE>
            </DIV>

以上のDTD定義は常識的にもわかります。

Pは本来の段落つまり文字の意味ある一塊のことですし、見出し(heading)は章・ 節で簡潔な文字列です。長い引用(BLOCKQUOTE)は他者の構造化 されたものを内容にする場合でブロック体が内容になり、テキストの一部を引用する 場合は短いインライン引用(Q)を使うことも常識的に理解できます。BLOCKQUOTE要 素の取る内容をブロック体もしくはインライン体としていたHTML 3.2よりもHTML 4.0 では構造化をより厳密にしています。リストやテーブルでは 入れ子ができるということです。また、TABLEのTHは表題なので、 内容はフロー体(%flow;)ですがそのうちのインライン体がくることも常識から判断 でます。ブロック体とインライン体の意味を掴んだ上で、見出しでは簡潔な文字列と いった常識を働かすことが大切です。

目次

4. インライン体(ブロック要素の内容になる)

4.1 インライン体とは:直列に配置されるもの

ブロック・レベル要素の内容になるのが、インライン体(直列配置するもの)と総称 され、[文字列]と[画像・アンカー・文字の修飾・強制改行といった要素]が含ま れます。ブロック体に対して直列で表現し、垂直配置であることを示す表示上のパラ グラフ・ブリーク(一行空白)はなく、横並び(直列配置)で表示されます。

inline:インライン
元来は文字についての印刷上の言葉ですが、"inline skates"の説明で「車が一 列に並んだローラースケート」と記載され、イメージがつきやすいと思います。ブ ロック体とは違って横並びに連なって表示されます。ブロック中断一行空白はきませ んし、連続を切るのにBR要素が使われます。

4.2 HTML 4.0 DTDでのインライン体の定義

(共通の性質としてブロク・レベル要素の内容になり配置が直列になる) インライン体と総称されるものは、DTDの定義により以下のように 文字列(#PCDATA)要素から構成されていま す。この要素群はインライン要素(HTML 4.0以前はテキスト・レベル要素)といわれ ます。



<!--=================== テキストのマーク付け ======================-->
<!ENTITY % fontstyle  "TT | I | B | BIG | SMALL">
<!ENTITY % phrase "EM | STRONG | DFN | CODE |
                   SAMP | KBD | VAR | CITE | ABBR | ACRONYM" >
<!ENTITY % special
   "A | IMG | OBJECT | BR | SCRIPT | MAP | Q | SUB | SUP | SPAN | BDO">
<!ENTITY % formctrl "INPUT | SELECT | TEXTAREA | LABEL | BUTTON">

<!-- インライン体(%inline;) 行もしくは「テキスト・レベル」要素内にきます。 -->

インライン体とは、
<!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;">
<!実体 % inline "#PCDATA | 文字スタイル体 | 句体 | 特別体 | フォーム体l;">
のことです。
「行もしくはテキスト・レベル要素内にきます。」とは:

以下の例での文字列Aは行に、文字列Bや 「<FONT color="#ccccccc">CCC</FONT>」でのFONT要素は「テキス ト・レベル」要素内にきています。要素はFONTのように内側の要素から閉じておか なければなりません。

<TD>−−−−−−行−−−−−−</TD>
<LI>−−−−−−行−−−−−−</LI>
<P>−−−−−−行−−−−−−</P>

<P>AAAAAAAAAAAAAAAAAA</P>
<P><BIG>BBBBBBBBBBBBB</BIG></P>
<P>AAAAA<BIG><FONT color="#cccccc">CCC</FONT></BIG>AAAAA</P>
文字はインライン体で、ブロック要素の内容に:浮き漂う文
インライン体は、ブロック・レベル要素に来て直列に配置されるものです。リス トやテーブルを書く場合は要素を書いてからテキストをいれますが、文章を書く場合 はついついいきなりテキストを書き、要素の内容になっていなくて「HTML文書は、ブ ロック構造です」という規約から見て構造に組み込まれていない 「浮き漂う文」になりがちで、スタイル・シート設定の足掛りも ありません。文章を書く場合も、今から意味のあるまとまった文つまりパラグラ(段 落)を書きます、つまりP要素の内容を書くのでまず <P></P>と記載しその内容を書くと考えておくと「浮いた 文」をうっかり書くことがなくなります。文字はインライン体で、ブロック要素の内 容ですと定義されているのですから。インライン体という意味を理解しておくと、結 果的にHTML文書をブロック構造化していることになり、 スタイル・シート設定が正しくできるHTML文書をかくことにつな がります。
IMG・A要素もインライン体です。
画像を単独で使う場合もうっかり「浮いた文」と同じことをするものです。 IMGはインライン体ですので、規定ではブロック・レベル要素の内容 にならなければなりません。インライン体の定義を思い出さなければなりません。

インライン体をさらにDTDにそって展開し、

#PCDATA(文字列)

もしくは以下の要素です。

TT | I | B | BIG | SMALL |EM | STRONG | DFN | CODE |
SAMP | KBD | VAR | CITE | ABBR | ACRONYM | A | IMG | OBJECT | BR | SCRIPT |
MAP | Q | SUB | SUP | SPAN | BDO |INPUT | SELECT | TEXTAREA | LABEL | BUTTON

もう少し詳しく見ると:

<!ELEMENT A - - (%inline;)* -(A)       -- アンカー(固定点) -->

インライン体ではありますが、 -(A)とは内容にA要素を取れないという意味です。これも常識的に理解できます。

正しい例:
<A href="url">%inline;ではありますが</A><A name="inline">-(A)とは</A> 内容にA要素を取れないという意味です。
間違った例:
<A href="url">%inline;ではありますが<A name="inline">-(A)とは</A></A> 内容にA要素を取れないという意味です。

4.3 BRの使い方

BR要素で改行し、段落をつくるのではありません。段落(パラグラフ 、normal P)は、一つのまとまった意味を伝える文字列(テキスト)を P要素で囲いブロック構造にするものです。パラグラフの体裁をスタ イル・シートで設定する場合を考えるとこの意味が理解できます。

水平に配置されるインライン体を強制的に垂直方向に改行させるための要素で、 BR要素を使う典型例は以下の場合です。

<DIV>
<IMG src="abc.gif" alt="*" width="30" height="40"><BR clear="all">テキスト
</DIV>

または、

<P>
<IMG src="abc.gif" alt="*" width="30" height="40"><BR clear="all">テキスト
</P>

ビジュアル・ブラウザの場合 BR要素に続くマーク付けが左や右に来ている画像やそ の他の対象物を何処で回避するのか、またこの様な対象物の底辺の何処から開始する のかを決めるために、 clear属性が使われます。より詳しいことは、 配置と対象物の回避の セクションに記載されています。画像やその他の対象物を回避するテキストの調整に はスタイル・シートを使うように薦めます。

HTML 4.0勧告仕様書のBR要素の解説


<!ELEMENT ADDRESS - - (%inline;)* -- 制作情報 -->

と規定されています。ここは文章ではないので、パラグラフにはしません。横並びになる羅列項目を強制改行する場合に、以下のようにBR要素を使います。

<ADDRESS>
&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"&gt;<BR>
iso-2022-jp<BR>
URL: http://www.asahi-net.or.jp/%7ebd9y-ktu/html4rec_f/onegai_i.html<BR>
Last modified 99.04.24<BR>
<A href="mailto:y.kato@personal.email.ne.jp">Yasutaka Kato 加藤泰孝</A><BR>
&lt;email:y.kato@personal.email.ne.jp&gt;<BR>
&lt;email:ykato-ind@umin.ac.jp&gt;
</ADDRESS>

目次

5. パラメータ実体とその展開


ブロック体(垂直に配置されるもの)と総称されるものは、全てが要素からなりたっ ています。一方インライン体(直列に配置されるもの)と総称されるものは、文字列 ( #PCDATA)と直列配置になる要素からなりたっています。 ブロック・レベル要素=ブロック体でいいのですが、インライン体は直列配置(横並 び)するものの総称のことで、インライン要素といった場合文字列( #PCDATA)以外の直列配置要素のことになります。

要素とは
識別情報をにない、タグ形式でマーク付けできるもの

文字列(#PCDATA)はこの範疇には入らなくて、インライン体つまり 横並びになりますが、要素ではありません。

ブロック体(ENTITY)とは全てブロック要素(ELEMENT)です。一方、インライン体 (ENTITY)は、文字列(#PCDATA)とインライン要素(ELEMENT)で す。実際にHTML体部で使うのは、要素と文字列(#PCDATA・CDATA)で す。体(ENTITY)という考えは、DTDの定義を正確にするために使われるものです が、DTDを読まなければならないので、その概念は理解しておく必要はあります。

細かく言えば上の様な表現になります。この記載法が、ものごとを正確に定義付け できるので、DTDでこの方式がとられています。詳しくは、 [SGMLって]を参照下さい。

目次


6. 内容を取らない空要素

一方、内容を取らない要素もあり空要素と言われ、 終了タグは記載してはいけません。 HR・BR・IMGは空要素です。HRはブロック・レベル要素で空要素で、 BR・IMGはテキスト・レベル要素で空要素です。 DTDでは以下のようにEMPTYと記載されています。

<!ELEMENT META - O EMPTY               -- generic metainformation -->
<!ELEMENT LINK - O EMPTY               -- a media-independent link -->

<!ELEMENT HR - O EMPTY -- horizontal rule -->

<!ELEMENT BR - O EMPTY                 -- forced line break -->
<!ELEMENT IMG - O EMPTY                -- Embedded image -->

目次

7. 要素の属性について

各要素には、その機能を補う属性があります。配置を特定するといった見栄え (体裁)に関するものもあり、構造を記述するHTMLという思想からは逸脱しています ので、HTML 4.0ではスタイル・シート設定で体裁は指定するようになってきていま す。HTML 3.2での体裁属性を認める移行期間としてのHTML 4.0もあり、 Transitional(HTML 3.2も認める)と宣言しておかなければなりません。従って、仕 様書のDTDに直接あたるか、[ Tohoho's WWW Guide(HTML Tag List)タグ比較一覧]を利用すると便利ですが、[ HTML 4.0で許されないHTML 3.2はどれ?]も参照下さ い。

<!-- テキスト・ブラウザでのトラブルや
        画像内容を分からせたり
        非ビジュアルブ・ブラウザのユーザを誘導するためにも
        ALTで説明を入れておかなければなりませんし、
        サーバー側イメージ・マップを避けなければなりません。 -->

<!ELEMENT IMG - O EMPTY                -- 埋め込み画像 -->
<!ATTLIST IMG
  %attrs;                              -- %coreattrs, %i18n, %events --
  src         %URI;          #REQUIRED -- 埋め込まれる画像のURL --
  alt         %Text;         #REQUIRED -- 簡潔な説明 --
  height      %Length;       #IMPLIED  -- 高さの上書き --
  width       %Length;       #IMPLIED  -- 幅の上書き --
  >

"#REQUIRED"は記載しておかなければならない必須の属性です。"#IMPLIED"は必要な場合に記載するということです。「非ビジュアルブ・ブラウザのユーザを誘導 するためにもALTで説明を入れておかなければなりません」とは、適切な降格化の手 法です。"height"や"width"は"#IMPLIED"ですが、表示速度を考慮すると記載が薦め られています。その他注意すべき点については、[ ウェブ上での画像の使用]も参考にして ください。

<!ELEMENT P - O (%inline;)*            -- パラグラフ -->
<!ATTLIST P
  %attrs;                              -- %coreattrs, %i18n, %events --
  %align;                              -- 配置、テキスト配置 --
  >

<!ENTITY % align "align (left|center|right|justify)  #IMPLIED"
              -- default is left for ltr paragraphs, right for rtl -->

<P align="center">
このパラグラフをセンタリングします。
</P>
<!ELEMENT TABLE - -
     (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>
<!ATTLIST TABLE                        -- table element --
  %attrs;                              -- %coreattrs, %i18n, %events --
  summary     %Text;         #IMPLIED  -- 音声出力用に --
  width       %Length;       #IMPLIED  -- table width --
  border      %Pixels;       #IMPLIED  -- controls frame width around table --
  cellspacing %Length;       #IMPLIED  -- spacing between cells --
  cellpadding %Length;       #IMPLIED  -- spacing within cells --
  >

<!ENTITY % Text "CDATA">
<!-- Length defined in strict DTD for cellpadding/cellspacing -->
<!ENTITY % Length "CDATA" -- nn for pixels or nn% for percentage length -->
<!ENTITY % Pixels "CDATA" -- integer representing length in pixels -->

"CDATA"については、[#文字列:SGMLトークン(字句)]を参照を。
summary = text [CS] テキストがき、[大文字小文字を区別]
この属性にテーブルの目的や構成の要約を記載します。読み取りや点字ブラウザ といった非ビジュアルな媒体でも再現できます。

HTML 4.0にはアクセスしやすいようにするための属性があります。テーブルでの summaryはその例です。長さや幅にも二種類ありますので、DTDで確認 しておかなければなりません。

目次

8. コメント記載方法

ブラウザが表示しない注釈として使用し、以下のシンプルなルールに従いましょ う。

HTMLコメントは,
"<!--"で始まり、 "-->"で終わる。
"--"">"は、コメント内では何処にも使わない。

目次

9. HTMLの全体構造

ここまで実際のデーターがくる文書体部内でのブロック構造について述べてきまし た。HTML文書全体から見たこの体部部分の位置付けをDTDではどのように規定してい るのかをDTDでみます。

<!--=================== 文書構造 ===========================-->
<!ENTITY % html.content "HEAD, BODY">
<!ELEMENT HTML O O (%html.content;)    -- 文書ルート要素 -->

文書構造:
文書の出発要素である要素HTMLが、要素HEAD(頭部)次いで要素BODY(体部)を取ります。


<!--===================== 文書頭部 ================================-->
<!-- %head.misc; defined earlier on as "SCRIPT|STYLE|META|LINK|OBJECT" -->
<!ENTITY % head.content "TITLE & BASE?">
<!ELEMENT HEAD O O (%head.content;) +(%head.misc;) -- 文書頭部 -->

<!ELEMENT TITLE - - (#PCDATA) -(%head.misc;) -- 文書タイトル -->
すべての文書のHEAD部分に一つのTITLE要素を記載しなければなりません。 

文書頭部には要素HEADがき、要素HEADはTITLEやBASEを取り(BASEはこないこと も)、さらにSCRIPT|STYLE|META|LINK|OBJECTもきます。要素TITLEの内容は、 #PCDATAです。

<!--===================== 文書体部 ================================-->
<!ELEMENT BODY O O (%block;|SCRIPT)+ +(INS|DEL) -- 文書体部 -->

文書体部には、要素BODYがき、内容に構造成分としてのブロック体(=ブロック・ レベル要素)と体裁設定のスタイル・シートSCRIPTをとります。ここに、実際の文 書データーがブロック体ですので、積み重ねのブロック構造になって記載されてい ます。


<!--================ 文書構造 ==================================-->
<!ENTITY % version "version CDATA #FIXED '%HTML.Version;'">

<![ %HTML.Frameset; [
<!ENTITY % html.content "HEAD, FRAMESET">
]]>

<!ENTITY % html.content "HEAD, BODY">

<!ELEMENT HTML O O (%html.content;)    -- 文書ルート(出発)要素 -->

文書の全体構造をみると、まずHTMLのDOC宣言を書きます。フレーム版かそうでないかで切り替えるようになっています。次いで、出発要素であるHTMLが来ます。

バージョンがフレーム(%HTML.Frameset
<!ENTITY % html.content "HEAD, FRAMESET">とHEADに次い でFRAMESETがきます。
フレームでないバージョン(%HTML.Version;
<!ENTITY % html.content "HEAD, BODY"> とHEADに次いでBODYがきます。

目次


#文字列:SGMLトークン(字句)

トークン

1.文字列の種類

文書構造で一番下位にくるのはインライン体である文字データーで、内容トーク (SGMLトークン)と総称されます。以下のように分類されています。

#PCDATA(Parsed Character Data:構文解析文字データー)は、SGML にそっているかが調べられます。文書文字設定も関わってきます。 [文書文字コード指定]を参照。

文書構造で一番下位とは:以下の「下位文字列」の位置のことです。一番下位にきて、その文字列はテキスト・マーク付け要素で修飾されますと言うことです。

2.文字(符号)参照

ウェブ上で普通よく使われる文字符号コード化には、ISO-8859-1 ・ISO-8859-5 (Cyrillicをサポート)・ISO-2022-JP・UTF-8(ISO 10646)・などがあり ます。

この既存の文字符号コード化では、文書文字符号セットのすべての文字符号を表現 できないかもしれません。そんなコード化やハードウェアー・ソフトウェアーがある 種の文書文字符号を直接入力できない場合、制作者は SGML文字符号参照を使えます。文字符号参照は、文書文字符号セットの文字符号を入力する機序とは別の文字符号コード化です。

文書文字符号セットの文字符号参照でより直観的な参照方法を提供するためにHTMLは 、一組の文字符号実体参照を提供しています。HTML 4.0では、文書文字符号セットの 全文字符号について文字符号実体参照を定義していません。例えば、Cyrillic大文字 "I"の文字符号実体参照はありません。

文字符号実体参照は、"&"ではじまり、セミ・コロン(;)で終わっています。

特別な文字符号を代行するのによく使われるものに、四つの文字符号実体参照があり ます。

文字符号参照は ブラウザのサポート状況に依存して、現状では参照が完全にサポ ートされているわけではありません。上記の上三つの文字符号実体参照はサポートさ れています。

implement
用具一式・装具・手段、また「実行する」・「〜に手段を提供する」
DTDに定義されていてもブラウザがそれをサポートしていない場合もあります。 implementを「実装」と表現しているのはこのことを意味していますが、「装備」や 「手段」でいいと思います。「実装」は辞典になく、「実相」しかでてきません。 定義されていても、ブラウザが手段を提供していない(装備されていない)場合があ るので戸惑うことがあります。
「ウェブ内容アクセス指針1.0技術」の[ 「3.6 分かりやすさ」の4]を参照

インライン体で言う文字列は、 #PCDATAです。従って、単なる英数文字"&"は "&amp;"、また開始タグや閉じタグでない単なる"<"や">" は、 "&lt;"・"&gt;"と記載しておかなければなりません。実体参 照や開始・閉じタグと解釈されないようにするためです。 [章の終の資料]を参照下さい。

3.URIとRFC2396

<!ELEMENT A - - (%inline;)* -(A)       -- アンカー -->
<!ATTLIST A
  %attrs;                              -- %coreattrs, %i18n, %events --
  href        %URI;          #IMPLIED  -- リンクされたリソースのURI --
  >

<!ENTITY % URI "CDATA"
    -- a Uniform Resource Identifier,
       see [URI]
    -->
    

A要素のhrf属性の内容は、"%URI;" (URI体)で、URI体とは文字列"CDATA"のこと です。

URI](Web Naming and Addressing Overview (URIs, URLs, ...))での文字は、 [rfc2396.txt][ RFC2396J(翻訳 by HTML研究室)]に記載され、以下のようになっています。

2.2. Reserved Characters 予約文字記号
      reserved    = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" |
                    "$" | ","

2.4.3. Excluded US-ASCII Characters 除外US-ASCII文字記号
      delims      = "<" | ">" | "#" | "%" | <">
      unwise      = "{" | "}" | "|" | "¥" | "^" | "[" | "]" | "`"

一般のURI (Uniform Resource Identifier)は、RFC2396で規定されて います。 ASCIIコード 20〜7E以外の文字に対しては、別の警告が出ます。しか し、ASCII文字の中にも使用を除外されている文字がこのRFCに示されています。 以下の文字が、除外されています。これらのうち、空白と¥は別の警告 が出ますし、httpプロトコルのときは#はアンカー名の区切りに解釈さ れます。

          空白  %20
            "   %22
            #   %23
            %   %25
            <   %3C
            >   %3E
            [   %5B
            ¥   %5C
            ]   %5D
            ^   %5E
            `   %60
            {   %7B
            |   %7C
            }   %7D
            /   %2F
            :   %3A

これらは、ASCIIコードを、右に示してある %に続く 2桁の 16進数(大文字でも 小文字でも同じ)で表現します。 プロバイダ指定のCGIの中には |をそのまま書くように指定してあるものもあり ます。この場合、これを %7Cにして動作しないのは、そのCGIが正しい仕様を守 っていないからなので、諦めてください。

Another HTML-lintの結果の解説]から


参考資料

ユニコードについては:

目次


#関連資料と検証

この文書は全体像を掴み、その意味を理解する足掛りにと考えています。部分的には 仕様書に当たらなければなりません。意味や全体像が分かっていると、膨大な仕様書 の索引を有効に利用できるようになると思います。

アウトライン(Outline)

以下はこの文書のアウトラインで、見出しタグ(<H1>〜<H6>)をもと に自動的に生成されています。

これが実際のアウトラインと違っているなら、見出しタグが適切に使用されていない かもしれません(見出しは文書の論理的な構造を反映しなくてはなりません;単に強 調や文字サイズ変更の目的で、見出しを使ってはいけません)。

W3C HTML Validation Service Resultsのコメント

目次


#構造の図解


HTML文書を設計することは、それ自身アートです。 まず、六段階の見出しタグだ けを使って、文書の構造を設定します。

この全体の構造に、リストやテーブルやその他のブロック要素を追加していき、書 全体のレイアウトを仕上げます。 それから、各ブロク内を書きます、適切なテキスト・レベル要素で文(テキスト) をマーク付けしていきます。画像は大変大切なものです。しかし、IMGタグはテキ スト-レベル要素ですので、ブロック-レベル要素の中に置かなければなりません。

一つの文書が組のひとつになっているものでは、共通のスタイルを使うようにしす 。誘導のやりかたや標準的なイメージなどを持った共通の文書構造にしておきます。 テンプレート(原型、基準になるもの)を書いておくと取り扱いが容易になりま す。[ オンライン・ハイパーテキストの様式]で、 このことについて詳しく記載します。

WDG Wilbur - HTML 3.2の[HTML 3.2文書の構造]から



  +---------------------------------------------------------------------+
  |
  |      以下の図解では、枠がブロックを示しています。
  |
  +---------------------------------------------------------------------+

 設定見出し:
 +---------------------------------------------------------------------+
       <H1 align="center">翻訳に際してのメモ</H1>
 <H2>はじめに</H2>
 <H2>パラグラフのイメージ</H2>
 <H2>要素(タグ)のランダムな知識ではなく</H2>
 <H2>HTML文書建築での煉瓦(%block)と中味(%inline)</H2>
  <H3>文書建築の煉瓦:% block</H3>
  <H3>煉瓦の中味(%inline)</H3>
 <H2>HTML仕様書と検証</H2>
 <H2>スタイル・シート以前</H2>
 +---------------------------------------------------------------------+


 HTML文書の例:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> :規則(DTD)記載
+--------------------------------------------------------------------------+
<HTML>                              :この文書は、HTML文書です。
+==========================================================================+
|<HEAD>                                :HTML文書の情報:文字情報など
|<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-2022-jp">
|<TITLE>memo about transrating HTML 4.0</TITLE>
|<META NAME="keywords" CONTENT="w3c,HTML,validation">
|<LINK REV=MADE HREF="mailto:y.kato@personal.email.ne.jp">
|</HEAD>                :HEADは終です。
+==========================================================================+
+==========================================================================+
|<BODY>          BODY〜BODY内に実際の内容がきます。
| +---------------------------------------------------------------------+
| |<DIV>    注:AやIMGも%inlineです。                               
| |<A href="../index.html">[ホームへ]</A>
| |<A href="cover.html">[HTML 4.0仕様書へ]</A>
| |</DIV>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<HR>     :ブロック・レベル要素の空要素HRは終了タグは記載しません。
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |     <H1 align="center">翻訳に際してのメモ</H1>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<HR>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<H2>はじめに</H2>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<P>    注:P内は%inline だけです。 空要素BRは終了タグを記載しません。
| |<STRONG>この仕様書の翻訳にあたって、W3Cの許可を受けています。<BR> 
| |なにぶん個人でやっているのでこの大きな仕様書を全部翻訳するのには時間
| |がかかります。まず、基本的なセクションから翻訳します。</STRONG>
| |</P>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<P><STRONG>翻訳は、以下のサイトにもあります。</STRONG></P>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<UL>
| |  <LI><A href="http://www.asahi-net.or.jp/%7esd5a-ucd/rec-html40j/">REC-
| |       HTML4.0j(訳)カバーページ</A>
| |  <LI><A href="http://www.bekkoame.or.jp/%7Epoetlabo/WWW/index.html">HTML
| |      研究室</A>に翻訳があります。
| |</UL>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<HR>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<H2>パラグラフのイメージ</H2>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<P><A href="onegai_i.html">イメージ(図)</A></P>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<HR>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<H2>要素(タグ)のランダムな知識ではなく</H2>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<BLOCKQUOTE>        注:BLOCKQUOTE内に%block が許されます。
| | +*****************************************************************+
| | |<HR size="1" noshade>
| | +*****************************************************************+
| | +*****************************************************************+
| | |<P>      :#PCDATAなので、"<<"を"&lt;&lt;"で
| | |知育(instruction)という名詞は、&lt;&lt;装備する&gt;&gt;を意味すinstruere
| | |というラテン語の動詞から出ている。たとえば、ラテン語のinstruere navemと
| | |は、船を艤装する、即ち、航海に必要な船具・人員等の性能を備えさせることであ
| | |る。知育ということは、それ故、人生に向かって装備させることである。
| | |知育という語によって、学校での授業または書物での個人的な研究によって、
| | |獲得される知識の総体と理解できる。実際、知識を得るためには、歴史上のある
| | |人物・科学的物質の特性・ある型のモーターの機能を知るだけでは十分ではな
| | |く、現代人に必要と考えられる一定量の知をわが物にしてしまわなければならな
| | |い。
| | |</P>
| | +*****************************************************************+
| | +*****************************************************************+
| | |<P align="right">P.フルキエ 「公民の倫理」(筑摩書房)</P>
| | +*****************************************************************+
| | +*****************************************************************+
| | |<HR size="1" noshade>
| | +*****************************************************************+
| |</BLOCKQUOTE>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<P>
| | タグの知識を得るだけではなく、HTMLの基本構造に基づいてタグを使うという
| |点を心に留めておいてもらいたので、上の引用をあげました。
| |</P>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<P>
| | HTMLの基本構造の背景には、文章の構文というより一般的な基本があります
| |(引用「現代人に必要と考えられる一定量の知をわが物にしてしまわなければならな
| |い」に当たります)。それは、見出しとパラグラフから文を構成するというもので
| |す。この点について、われわれは十分な教育を受けてきていませんので、なかなか
| |ピーンときません。それ故に、HTML文書で、Hn(見出し要素)・P(パラグラフ素)が
| |正しく使えない傾向があり、ブロック・レベル要素とテキスト・レベル要素(ライン
| |要素 %line)の使いわけに不備がでてきます。この問題は、タグ要素の知識からだけ
| |では解決しません。文章構造があって、それにタグ付け(マーク付け)すると言う文
| |章構造部分を理解しないと解決しません。
| |</P>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<HR>| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<H2>HTML文書建築での煉瓦(%block)と中味(%inline)</H2>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<P>
| | イメージを作っておくと、仕様書の意味がより分かるようになると思います。
| |</P>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<P>
| | HTMLには、二種類の基本的内容モデルがあります。%inlineと%blockと言われる
| |ものです。%blockに属する要素を積み重ねていき、この要素で囲われた部分は一行
| |空白(パラグラフ・ブリーク)がきて表示されます。HTML文書と言う建築をつくる
| |のレンガに当たるものが%blockです(ブロックと銘々されたイメージもわかります)。
| |</P>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<PRE>      引用なので、"<!"は"&lt;!"と記載します。
| |&lt;!--============= HTML内容モデル==== HTML content models ==========--&gt;
| |
| |&lt;!--
| |    HTMLには、二種類の基本的内容モデルがあります:
| |
| |        %inline;    character level elements and text strings
| |                    文字記号レベル要素とテキスト
| |        %block;     block-like elements e.g. paragraphs and lists
| |                    ブロック様要素、例えばパラグラフやリスト
| |--&gt;
| |</PRE>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<H3>文書建築の煉瓦:% block</H3>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<PRE>
| |&lt;!ENTITY % block %blockには以下のものがあります。
| |     "P | %heading; | %list; | %preformatted; | DL | DIV | NOSCRIPT |
| |      BLOCKQUOTE | FORM | HR | TABLE | FIELDSET | ADDRESS"&gt;
| |
| |&lt;!ENTITY % flow "%block; | %inline;"&gt; 
| | %flowと言われるものは、%blockか%inlineのどちらかのことを指します。
| |</PRE>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<TABLE border="0">
| |<TR>
| |<TD><TABLE border="0" cellpadding="14">
| | <TR>
| | <TD> </TD>
| | </TR>
| | </TABLE></TD>
| |<TD>記号(中にもっと単位・レベルの低いものが集まっている:この一塊をマクロと
| |表現されます)を見ていくと、最小単位つまりHTML文書で使う要素(タグ)になりま
| |す。
| |<TD><TABLE border="0" cellpadding="14">
| | <TR>
| | <TD> </TD>
| | </TR>
| | </TABLE></TD>
| |</TR>
| |</TABLE>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<PRE>  ここも"&lt;!"と実体参照にします。
| |&lt;!--============== Imported Names ===========================--&gt;
| |&lt;!--パラメータ実体(その現わすもの) Parameter Entities --&gt;
| |&lt;!ENTITY % heading "H1|H2|H3|H4|H5|H6"&gt;
| |  %heading は、H1・H2・H3・H4・H5・H6 のことです。
| |&lt;!ENTITY % list "UL | OL"&gt;
| |  %list は、ULやOLのことです。
| |&lt;!ENTITY % preformatted "PRE"&gt;
| |  %preformatted は、PRE のことです。
| |</PRE>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<H3>煉瓦の中味(%inline)</H3>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<P>
| | %inlineは、%block要素という煉瓦の中に入っているものです。煉瓦が積み重
| |なる縦のイメージなら、中のものは横に並ぶイメージで線%inlineと表現してあ
| |るのでしう。煉瓦のなかにテキストなど(文字や記号の列)がきて、その文字な
| |どを修飾する要素というイメージです。文字などは、必ず煉瓦(%block)内で使
| |われます。
| |</P>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<PRE>
| |&lt;!--================= Text Markup ==================================--&lt;!gt;
| |&lt;!lt;!-- %inline; covers inline or "text-level" elements --&gt;
| |&lt;!lt;!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; 
| |%formctrl;"&gt;
| |</PRE>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<TABLE border="0">
| |<TR>
| |<TD>+***********************************+
| |    |<TABLE border="0" cellpadding="14">
| |    |<TR>
| |    |   <TD> </TD>
| |    |</TR>
| |    |</TABLE>
| |    +***********************************+</TD>
| |<TD>
| | 記号(中にもっと単位・レベルの低いものが集まっている:この一塊をマクロ
| |と表現されます)を見ていくと、最小単位つまりHTML文書で使う要素(タグ)に
| |なりす。しかし、グループのDTD上での性質は同じということに注意しておいて下
| |さい。要素だけをアットランダムに覚えてしまうと、この性質に気付かなくて間違
| |った使い方をしてしまします。</TD>
| |<TD>+***********************************+
| |    |<TABLE border="0" cellpadding="14">
| |    |<TR>
| |    |   <TD> </TD>
| |    |</TR>
| |    |</TABLE>
| |    +***********************************+</TD>
| |</TR>
| |</TABLE>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<PRE>            以下は引用なので、&lt;!ENTITY % と記載します。
| |&lt;!ENTITY % fontstyle "TT | I | B | BIG | SMALL">
| |
| |&lt;!ENTITY % phrase "EM | STRONG | DFN | CODE |
| |                   SAMP | KBD | VAR | CITE | ABBR | ACRONYM" &gt;
| |
| |&lt;!ENTITY % special
| |   "A | IMG | OBJECT | BR | SCRIPT | MAP | Q | SUB | SUP | SPAN | BDO"&gt;
| |
| | % special に、A・IMG・BRがあります。これらは、%inlineなのですから、%block
| |内でつかいます。単独で使うときは、%blockに入るパラグラフ(P)煉瓦にいれま
| |す。
| |
| |  &lt;P&gt;
| |   &lt;IMG src="url" width="数値" height="数値" alt="説明テキストや記号"&gt;
| |   &lt;/P&gt;
| | としなければいけません。
| | これで、文書建築の煉瓦になり文書建築は強固(DTDにそった正しいものに)に
| |なります。
| |
| |&lt;!ENTITY % formctrl "INPUT | SELECT | TEXTAREA | LABEL | BUTTON"&gt;
| |</PRE>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<HR>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<H2>HTML仕様書と検証</H2>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<P>
| | HTML 4.0仕様書は、広くバックボーンについても言及してあり、読むと要素の知
| |識だけには終わらないものです。最近は、日本語でも構文をチェックするサーバー
| |もありますので、<STRONG>是非HTML文書を検証して下さい。</STRONG>
| |</P>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<UL>
| |<LI>HTML 3.2 仕様書の翻訳もあります。
| |  <UL>
| |  <LI><A href="../HTML3.2.html">HTML 3.2 Reference Specification(JP)</A>
| |  <LI>+*******************************************************************+
| |      |<P>
| |      |<A href="http://www.bekkoame.or.jp/%7Epoetlabo/WWW/index.html">HTML
| |      |研究室</A>に翻訳があります。
| |      |</P>
| |      +*******************************************************************+
| |  </UL>
| |<LI>文書の検証は、まず、ここでチェックを。DATAペーストもできます。
| |  +*******************************************************************+
| |  |<UL>
| |  |<LI><A href="http://www.vector.co.jp/htmllint/index.html">Another HTML-
| |  |lint</A>の説明で、便利な使い方・タグ一覧などがあります。
| |  |<LI><A href="http://ring.aist.go.jp/openlab/k16/htmllint/htmllint.html">
| |  |Another HTML-lint gateway</A> (Ring OpenLab)<BR>
| |  |<A href="http://www.vector.co.jp/htmllint/htmllint.html">Another HTML-
| |  |lint gateway</A> (Vector mirror)
| |  |</UL>
| |  +*******************************************************************+
| |</UL>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<HR>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<H2>スタイル・シート以前</H2>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<P>
| | HTML 3.2やブラウザがスタイル・シートをサポートしていない場合には、
| |<STRONG>フォント・サイズや背景色</STRONG>に配慮する必要があります。例えば、
| |フォント・サイズでは&lt;BIG&gt;と&lt;SMALL&gt;しか使わないなどで、
| |<A href="../wfont.html">「What's wrong with the FONT element?」</A>にその
| |解説がありますので、参考にしてく下さい。
| |</P>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<HR>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<ADDRESS>
| |&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"&gt;<BR>
| |iso-2022-jp<BR>
| |URL: http://www.asahi-net.or.jp/‾bd9y-ktu/html4rec_f/onegai_i.html
| |                   注:urlを記載しておくと便利です。
| |</ADDRESS>
| +---------------------------------------------------------------------+
| |<HR>
| +---------------------------------------------------------------------+
| +---------------------------------------------------------------------+
| |<P align="center">
| |<A href="../index.html">[ホームへ]</A>
| |<A href="cover.html">[HTML 4.0仕様書へ]</A>
| |</P>     :アンカーはテキスト・レベル要素ですので、横に並びます。
| +---------------------------------------------------------------------+
|</BODY>                      :内容は終りです。
+==========================================================================+
</HTML>                        :HTML文書は終りです。
+--------------------------------------------------------------------------+

目次


脱字・誤字について、< 原田さん>からコメントを頂きました。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
iso-2022-jp
URL: http://www.asahi-net.or.jp/‾bd9y-ktu/htmlrel_f/html4rec_f/onegai_i.html
Last modified 99.05.11

ホーム] [翻訳についてへ] [DTDを知る必要へ