[1] [DFN[[RUBY[空要素][くう (から) ようそ]@en[empty element]]]]は、 [[HTML]] や [[SGML]] や [[XML]] において「[[空]]」である[[要素]]を指します。 意味は何種類かあります。 * 内容 (モデル) が空の要素 = 空要素 (HTML) [3] [[HTML]] では、[[要素]]の[[内容]] (あるいは[[内容モデル]]) が[[空]]である[[要素]]のことを 「[[空要素]]」といいます。 [4] [[HTML]] では[[空]]といっても本当に何も無い ([CODE(DOMa)@en[[[childNodes]]]] の [CODE(DOMa)@en[[[length]]]] が0である) 状態''だけではありません''。 [[要素間空白]]、[[注釈節点]]、[[処理指令節点]]は[[空]]かどうかの判断に当たっては無視されます。 ;; [[Web Applications 1.0]] * 内容が何も無い要素 = 空要素 (XML) [5] [[XML]] では、[[要素]]の[[内容]]が何も無い[[要素]]のことを「[[空要素]]」 といいます。[[空要素]]は[[開始タグ]]の直後に[[終了タグ]]を置くことでも表現できますし、 専用の[[空要素タグ]]で表現することもできます。 ;; [[XML]] [6] 俗に[[空要素タグ]]のことを指して[[空要素]]と言うこともあります。 * 内容モデルが [CODE(SGML)@en[EMPTY]] で開始タグだけを使う要素 = 空要素 (素の SGML) [7] [[素のSGML]] では、[[DTD]]で[[内容モデル]]を [CODE(SGML)@en[[[EMPTY]]]] とした[[要素型]]の[[要素]]は[[終了タグ]]を使えず、[[開始タグ]]だけで表現することになっており、 この[[要素]]あるいは[[要素型]]を「[[空要素]]」といいます。 [8] [[Web SGML]] では [CODE(SGML)@en[[[EMPTY]]]] な[[要素]]の[[終了タグ]]を使うことができるようになって、 見た目上の普通の[[要素]]の[[内容]]がたまたま無い場合との区別が付きづらくなりました。 このため、[[内容モデル]]が [CODE(SGML)@en[[[EMPTY]]]] な[[要素]]には新たに「[[強制空要素]]」 という用語が作られました。 * [CODE(CSS)@en[:empty]] 擬似クラス [10] [DFN[[CODE(CSS)@en[[[:empty]]]]]] [[擬似クラス]]は[[空]]の[[要素]]を表します。 ** 仕様書 [REFS[ - [11] [CITE@en[Selectors Level 3]] ([TIME[2011-09-29 22:16:17 +09:00]] 版) ]REFS] ** 意味 [12] [CODE(CSS)@en[[[:empty]]]] は[[子供]]が無い[[要素]]を表します。ここでいう[[子供]]がいないとは、 [[文書木]]中において[[要素節点]]と長さが0でないデータを持つ[[内容]][[節点]] ([[DOM]] の[[テキスト節点]]、[[CDATA節点]]、[[実体参照]]など) がないことを言います。 [[注釈]]、[[処理指令]]、その他の[[節点]]は数えては[['''なりません''']]。 [SRC[>>11]] ;; [13] [[HTML]] の[[空要素]]の定義とは違って[[要素間空白]]は無視されないようです。 ** 歴史 *** 選択子3 [REFS[ - [14] [CITE@en[CSS3 module: W3C Selectors]] ([TIME[2000-10-06 02:05:50 +09:00]] 版) ]REFS] [15] >>14 が初出です。 * 関連 [9] [[HTML]] では >>3 を[[空要素]]、 >>7 を[[void要素]]と呼んで区別しています。 * メモ [2] >Use of empty elements within XML instance documents is a source of controversy for a variety of reasons. An empty element does not simply represent data that is missing. It may express data that is not applicable for some reason, trigger the expression of an attribute, denote all possible values instead of just one, mark the end of a series of data, or appear as a result of an error in XML file generation. Conversely, missing data elements can also have meaning — data not provided by a trading partner. In information exchange environments, different trading partners may allow, require, or ban empty elements. UBL has determined that empty elements do not provide the level of assurance necessary for business information exchanges and therefore will not be used. ;; [CITE[Universal Business Language v2.0]] ([TIME[2006-12-12 21:00:00 +09:00]] 版)