はじめに
仕事でXMLに触れる機会があり、<![CDATA[https://example.com/hoge/fuga]]>という記述がありました。
このCDATAというのがどのような意味なのか気になったので調べてみることにしました。
CDATAとは
まずMDNドキュメントには、以下のような記述がありました。
CDATA セクション内では、通常の文字として XML 内に記述する場合に実体参照として記述する必要がある < や & など(※本来これらは<や&のように記述する必要がある)を、エスケープ無しでそのまま記述する事ができます。
ここから、CDATAセクションというものを使えば、 < や & などのエスケープを省くことができるということがわかりました。
書き方としては、<![CDATA[ ... ]]>という形で書くことができます。
使い方はそれでいいと思うのですが、XMLの実体参照というものが気になったので追加で調べてみました。
まず、XMLにおいて、< や & などは特殊文字であり、そのままでは文字データとして使うことができません。
そこで、「アンパサンド」+文字列+「セミコロン」の形式で表現する必要があるらしいです。
例えば、
< → <
> → >
& → &
" → "
のような形で記述する必要があります。
その書き方のことを実体参照というらしいです。
つまり、その実体参照という書き方をいちいちしないで済むように、<![CDATA[ ... ]]>という形を使うということでした。
まとめ
- XMLには
<![CDATA[ ... ]]>という書き方がある。 -
<![CDATA[ ... ]]>を使うとそれで囲んだ部分は実体参照を使う必要がない。 - XMLの実体参照とは「アンパサンド」+文字列+「セミコロン」の形式で特殊文字を囲む形式のこと。
参考文献