[FIG(pull-quote)[
> [[ん?]] 今[[何でも]]するって言ったよね?
]FIG]

[20] [[要素の内容]]として[DFN[何でも]]良いとされていることが[[稀によくあります]]。
本当に文字通り[[何でも]]とは限りません。

* 文書素片

[2] [CODE[DocumentFragment]] は[[節点木]]の構造の制約
([[要素]]、[[テキスト]]、[[コメント]]、[[処理指令]]を[[子供]]とできる)
以上の制約が規定されておらず、どんな[[要素]]や[[テキスト]]も[[内容]]として含められると解釈されています。

;; [3] 素の [CODE[DocumentFragment]] の他、 [[雛形内容]]や[[影根]]もあります。

[4] 何でもとはいえ、[[影根]]では実用上[[フロー内容]]が認められるものとするべきでしょう。

[HISTORY[
[5] [[雛形内容]]についてかつては制約がありましたが、緩和されました。
[CODE[template]] 参照。
]HISTORY]

* 文字列要素

[10] [[SVG]] は [CODE[title][svg:title]] [[要素]]と
[CODE[desc][svg:desc]] [[要素]]の[[内容モデル]]を
「Any elements or character data.」
としています。任意の [[XML]] の[[要素]]を使えると規定されています。

[11] ここでの「何でも」は、[[XML名前空間]]を使った拡張のための方便として使われています。
実際には使えるものは限られています。

[12] [CITE[HTML Standard]] は [[HTML文書]]における [CODE[title][svg:title]]
[[要素]]限定ではありますが、[[語句内容]]に限定しています。
現実的には [CODE[desc][svg:desc]] [[要素]]や[[XML文書]]においても同様に限定されるべきでしょう。

;; [13] [[SVG]] の[[仕様書]]には独自の[[語彙]]を [CODE[desc][svg:desc]]
[[要素]]で使った例文が掲載されています。

* メタデータ要素

[14] [[SVG]] は [CODE[metadata]] [[要素]]の[[内容モデル]]を
「Any elements or character data.」
としています。任意の [[XML]] の[[要素]]を使えると規定されています。

;; [15] [[SVG]] の[[仕様書]]には [[RDF/XML]] を使った例文が掲載されています。

-*-*-

[21] [[MathML]] は [CODE[annotation-xml]] [[要素]]の[[内容]]を任意の記述方式によるものとしていて、
明確な制限を設けていません。 [[XML Schema]] では [CODE[xs:any]]
とされています。

;; [[DTD]] ではなぜか [[MathML]] の[[要素]]に限定されています。

* [CODE[foreignObject]] 要素

[16] [[SVG]] は [CODE[foreignObject]] [[要素]]の[[内容モデル]]を
「Any elements or character data.」
としています。任意の [[XML]] の[[要素]]を使えると規定されています。

[17] ここでの「何でも」は [[XML名前空間]]を使った拡張のための方便として使われています。
[CODE[svg]] [[要素]]以外の [[SVG名前空間]]の[[要素]]は無視されることになっており、
事実上使えません。それ以外の「何でも」ということになります。

[18] [CITE[HTML Standard]] は [[HTML要素]]に関しては[[フロー内容]]であると制限しています。
現実的には他の[[名前空間]]に関しても[[フロー内容]]に制限されるべきでしょう。

* 未知要素

[9] 「その他」に該当する[[要素]]は、どんな[[内容]]でも持てると定められていることがあります。
こうした規定は、実際には拡張機能のための余地だったり、
エラー処理の方法の規定のための方便だったりして、
文字通り「何でも良い」と解釈するべきではなかったりします。

[6] [[SVG]] では[[未知要素]]の[[内容モデル]]が
「Any elements or character data.」
とされています。

[19] [[SVG]] では[[外来名前空間]]の[[要素]]を[[SVG名前空間]]の[[要素]]中どこにでも入れられると定めています。
ただし [[HTML要素]]については例外的な規定が色々とあり、本当に「何でも」
というわけではないようです。

[8] [[Atom]] では[[外来マーク付け]]が事実上任意の[[子供]]を持てるように定めています。

[22] [[XSLT1]] では [[XSLT名前空間]]と
[[null名前空間]]以外の任意の[[最上位要素]]が認められています。

[7] [[VALLANGS]] では[[未知要素]]が任意の[[子供]]を持てるとされています。

* 歴史

[1] [[SGML]] と [[XML]] の[[要素宣言]]では、 [DFN[[CODE[ANY]]]]
はどんな[[要素]] (や[[テキスト]]) も[[子供]]として含められることを表していました。