вторник, 11 ноября 2008 г.

XML термин CDATA

Элемент CDATA содержит в себе текстовые данные, которые не должны быть проанализированы XML-парсером.


Дополнение: по-умолчанию, парсер воспринимает их как PCDATA.


Такие символы как "<" и "&", содержащиеся в тексте, вызовут ошибку XML.


Символ "<" XML-парсер интерпретирует как начало нового элемента. А символ "&" – как начало сущности.


Некоторые текстовые данные, например JavaScript, могут содержать множество символов "<" или "&". Чтобы избежать ошибок, такие блоки должны быть определены как CDATA.


Всё внутри секции CDATA игнорируется XML-парсером.


Секция CDATA начинается с "<![CDATA[" и заканчивается "]]>".


Пример использования CDATA


<script type="text/javascript">
<![CDATA[
function leadZero(number){
if (number < 10 && number > 0){
return "0" + number;
}else{
return number;
}
}
]]>
</script>

Дополнение
Для браузеров, не понимающих признаков CDATA, внутри блоков скриптов и стилей CDATA рекомендуется «скрывать» с помощью комментариев.


Пример: CDATA внутри блоков сценариев javascript


<script type="text/javascript">
//<![CDATA[

// Совместимо с XML и XHTML
var strVerReq = " < 1.0.5 ";

//]]>
</script>

Пример: CDATA внутри блоков стилей CSS


<style type="text/css">
/*<![CDATA[*/

.post > p {
font-size: 0.8em;
}

/*]]>*/
</style>

5 Комментариев :

Анонимный комментирует...

О спасибо...
а CDATA влияет на js скрипт или нет?

Croaker комментирует...

Нет, не влияет. Но блоки CDATA рекомендуется «отбивать» комментариями.

Croaker комментирует...

Добавил примеры для javascript и CSS.

Анонимный комментирует...

а вот как обратно?...
столкнулся с проблемой того что в БД не валидный html, который нужно сохранить.
"Засунул" в CDATA, а обратно...?

Croaker комментирует...

Анонимный, HTML "забивается" обычными комментариями. ЦДАТА тут не нужна. Либо программными средствами. Но вообще рекомендую перепроверить верстку в хорошем редакторе.

P.S. Ответ запоздал, но вдруг кому поможет :D

Отправить комментарий

Жги!