目次 戻る

バナー

中年おっちゃんでも出来た ウェブページ作成講座 with ? mark

CDATA と PCDATA

HTML文書には、CDATA と PCDATA の文字データがあります・・・・?

CDATA ( Character DATA 文字データ )

要素の属性の値の文字データです。この中には他の要素は含む事は出来ず、ブラウザは以下の解釈を行います。

  • 置換文字は文字に置き換える。
  • 改行文字(LF:Line Feed)は無視する。
  • 復帰文字(CR:Carriage Return)やタブ文字は、1つの半角空白文字で置き換える

PCDATA ( Parsed CDATA 解釈される文字データ )

要素の内容の文字データでインライン要素として扱われ、ブラウザは以下の解釈を行います。

  • 置換文字は文字に置き換える。
  • 改行文字(LF:Line Feed)は無視される。
  • 復帰文字(CR:Carriage Return)やタブ文字は、1つの半角空白文字に置き換えられる。
  • 連続した半角の空白は、1個の半角の空白に置き換えられる。
  • UAは、開始タグ直後と終了タグ直前の半角の空白は、無視すべきであると求められている。

何のコッチャ?

&、<、>、何て読むの? ! を 『おったまげーしょん』 と呼ぶ知人がおります

痴漢置換文字って何でしょう?属性の値には他の要素は記入できません。要素は

<開始タグ>

で始まります。文字データの中に <> が出てきたら、UAはどのように解釈したら良いのか分からなくなってしまいます。

<p> 0 < X , Y > 100 </p>

上記のような記述の場合、UA< X , Y > をタグと解釈して混乱してしまいます。"<" や ">" を制御文字と呼ぶとすれば、制御文字を何らかの形で変換して、文字データとして扱ってもらわなければなりません。

そこで、&***; と記述してあれば、その内容を置換して解釈する仕組みが取り入れられています。

文字文字置換数値置換
&&amp;&#38;ampersand
<&lt;&#60;less than
>&gt;&#62;greater than

と文字置換/数値置換して、文字データの中に記述する <> を解釈させる方法です。

UAは、& 以降を置換文字として解釈しようとしますので、置換文字を宣言する & 以外の & は、&amp; と記述する必要があります。

何処へ?

今では殆ど見かけない機械式のタイプライター。何処へ行ったんでしょうか?

機械式タイプライターでは、改行(Line Feed)、復帰(Carriage Return)は、それぞれ別の動作でした。

TABとは、タブキーを押下することにより、タブセットされた場所までCarriage(印字ヘッド)が移動し、そこから次に入力される文字を印字してくれました。

パソコンで文字をメモ帳等で入力する場合は、Enterキーを押下することで自動的に改行(LF)と復帰(CR)を行います。TAB位置はソフトウエアで設定されています。

を半角の空白とします。

メモ帳で 『aロロbロロロロc[TAB]d[Enter][Enter]123456781234・・・ 』 と入力した画面と、それをブラウザで表示した画面です。

メモ帳でaロロbロロロロc[TAB]d[Enter][Enter]123456781234・・・・と入力した画面ブラウザで表示した画面 a b c d 123456781234・・・・と表示されている
メモ帳の内容をブラウザで表示

これを見て分かるのは、メモ帳のTAB位置は、8文字毎にセットされている・・・・ではなくて、

です。見事にCDATA/PCDATAの説明と一致しています。UAは、

<開始タグ>ロロABCロロロロDEロロFGロロ<終了タグ>

<開始タグ>ABCDEFG<終了タグ>

を、同等の解釈をして表示を行うように求められています。

じゃ、半角の空白を開始タグの直後や、連続して記述したい場合はどうするの?文字置換を使います。

半角の空白 = &nbsp; ( non-breaking space )

目次 戻る Top

Created:Jun 01, 2005 Updated:Oct.,25,2011 © by おっちゃん
Oct.,25,2011 全面更新