Раздел CDATA

Внутри символьных данных содержимого элемента нельзя помещать символ левой угловой скобки (<) или знак амперсанда (&). Одним из способов преодолеть это является использование ссылки на символ или примитив. Но в случае когда эти символы встречаются многократно, это не удобно. В этом случае проще поместить текст, содержащий такие символы, в раздел CDATA.

Форма записи раздела CDATA

Раздел CDATA начинается с символов <![CDATA[ и заканчивается символами ]]>

Между этими двумя ограничителями можно помещать любые символы, за исключением (]]>). Можно даже вставлять внутрь комментария символ левой угловой скобки (<) и знак амперсанда (&). Все символы внутри раздела CDATA трактуются как литерная часть символьных данных элемента, а не как XML разметка.

Пример правильно записанного раздела CDATA:

<![CDATA[Здесь можно поместить любые символы ]]>

замечание: Ключевое слово CDATA (как и другие ключевые слова XML) должно быть набрано прописными буквами.

Куда можно поместить раздел CDATA?

Раздел CDATA можно поместить в любое место, занимаемое символьными данными - т.е. внутри содержимого элемента, но вне описания разметки. Например:

<?xml version="1.0"?> <MUSICAL> <TITLE>Thank You For Loving Me</TITLE> <![CDATA[ <Stadt!> By Roger & Hammerstein ]]> <LONG>3:44</LONG> </MUSICAL>

Ниже приведен пример двух неправильно записанных разделов CDATA, первый не находится внутри содержимого элемента, второй находится внутри содержимого элемента, но также и внутри начального тега разметки:

<?xml version="1.0"?> <![CDATA[Ошибка: не внутри содержимого элемента]]> +<MUSICAL> <TITLE>Thank You For Loving Me</TITLE> <LONG<![CDATA[ Ошибка: внутри разметки начального тега элемента ]]> >3:44</LONG> </MUSICAL>