CDATA

1. 基本情報

説明 普通の文字列
語源 Character DATA
根源型 なし
使用属性 name (param), name, value (param), value (button), value (option), value, axis, content, scheme, style

2. 解説

2-1. 概要

CDATAデータタイプは、文字列データを意味する、XHTMLにおいて最も基本的なデータタイプです。後述する幾つかの例外を除けば、殆ど何書いても構いません。XMLの仕様書に、次のような定義があります。

All text that is not markup constitutes the character data of the document.

マークアップでない全てのテキストは、文書のキャラクタデータを構成する。

即ち、開始タグや終了タグ、空要素タグ、実体参照、文字参照などの形のマークアップでないものは、全てキャラクタデータという事になります。属性値としてのCDATAデータタイプは、このキャラクタデータに加え、実体参照、文字参照を書く事ができます。

2-2. 前処理

CDATAデータタイプでは、タブ(#x9)、改行コード(#xD#xA、#xA、#xDの全て)が、全てスペース(#x20)に置換されます。

2-3. 書式

2-3-1. 使用可能文字

XMLで定義されている、使用可能文字は次の通りです。

[プログラムコード開始]

Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]

[プログラムコード終了]

サロゲートブロック、#xFFFE、#xFFFFを除くUnicode文字の全てが使えます。

2-3-2. 属性値としての書式

属性値としてのCDATAデータタイプの書式は、次のCDATA as AttValueの通りです(IDデータタイプNMTOKENデータタイプなどと揃える為、AttValueの最初と最後のダブルクォーテーションマーク、シングルクォーテーションマークは取っています)。

[プログラムコード開始]

CDATA as AttValue ::= ( ( [^<&"] | Reference )* | ( [^<&'] | Reference )* )

[プログラムコード終了]

簡単に説明しましょう。

まず、Referenceを書く事ができます。これは実体参照EntityRef(&lt;や&amp;など)と、文字参照CharRef(&#x9;や&#x20;など)を含みます。

また、「<」や「&」はそのまま書く事ができません(参照を使わなければなりません)。しかし、それらの文字や文字列を書かない限り、他のどんな文字を使っても良い(但し、Charに限る)のです。

2-3-3. まとめ

厳密さを抜きにして、大雑把にまとめると、

  • 文字「<」や「&」、「>」、「"」、「'」などは、それぞれ「&lt;」「&amp;」「&gt;」「&quot;」「&apos;」のように実体参照を使う
  • あとは何書いても構わない

……そうです。CDATAデータタイプは殆ど自由なんです。変な事をしようとしなければ、まず大丈夫です。

[CDATA]
Published : 2006-03-26T09:00:00+09:00
Last Modified : 2007-04-29T18:24:06+09:00
Table of Contents : データタイプ目次
Index : データタイプ索引
Verified with : Valid XHTML 1.1
Copyright © 2006 - 2007  E+X.