Warning: session_name(): Cannot change session name when session is active in /home/stalko/rodina-ru.com/docs/dokuwiki/inc/init.php on line 231

Warning: session_set_cookie_params(): Cannot change session cookie parameters when session is active in /home/stalko/rodina-ru.com/docs/dokuwiki/inc/init.php on line 232
======CDATA====== **CDATA** (/ˈsi.deɪ.tə/) — сокращение от character data, что в переводе с английского обозначает «символьные данные». Используется для разных, но связанных между собой целей в языках разметки [[sgml|SGML]] и [[xml|XML]]. CDATA показывает, что определённая часть документа представляет собой символьные данные, в отличие от несимвольных или символьных, но особым образом структурированных, данных. =====CDATA в XML===== В XML документах фрагмент, помещённый внутрь CDATA, — это часть содержания элемента, которая помечена для парсера как содержащая только символьные данные, а не разметку. CDATA — это просто альтернативный синтаксис для отображения символьных данных, нет никакой смысловой разницы между символьными данными, которые объявлены как CDATA и символьными данными, которые объявлены в обычном синтаксисе и где «''<''» и «>» будут представлены как «''<''» и «''>''», соответственно. ====Синтаксис и ==== Раздел CDATA начинается со следующей последовательности [[символ|символов]]: '' и заканчивается с первым появлением последовательности: '']]>'' Все символы, заключённые между этими двумя последовательностями, интерпретируются как символы, а не как разметка или ссылки на объект. Например, в этой строке: ''John Smith'' открывающий и закрывающий теги «sender» будут интерпретированы как разметка. Однако, если записать её вот так: ''John Smith]]>'' то этот [[код]] будет интерпретирован так же, как если бы было записано: ''<sender>John Smith</sender>'' Таким образом, [[тег-языки-разметки-|теги]] sender будут восприниматься так же, как «John Smith», то есть как текст. Аналогично, если в содержимом элемента появляется цифровая последовательность ''ð'', это будет интерпретировано как простой символ [[юникод|Юникода]] 00F0. Но если эта последовательность появится в разделе CDATA, она будет разделена на 6 символов: [[амперсанд]], знак [[октоторп|октоторпа]], [[цифра|цифру]] 2, цифру 4, цифру 0 и [[точка-с-запятой|точку с запятой]]. ====Использование CDATA==== Новички в использовании XML часто неверно представляют назначение раздела CDATA, как «защиту» от обработки данных внутри этого раздела наряду с обычными символьными данными. Некоторые API для работы с XML документами предоставляют независимый доступ к разделу CDATA, но эти возможности существуют поверх и вне обычных требований к системе обработки XML и не меняют смысл этих данных. Символьные данные — это символьные данные, независимо от того, записаны они в раздел CDATA или же с помощью обычной разметки. Раздел CDATA полезен, когда надо написать XML код как текстовые данные внутри XML документа. Например, если надо набрать [[книга|книгу]] про XML на [[xsl|XSL]] с примерами использования XML приложений, то встречающиеся примеры будут заключены в CDATA. Однако, CDATA не может содержать строку «]]>» и, следовательно, невозможно создавать вложенные разделы CDATA. Если текст содержит «]]>», то можно его отобразить, используя, например, несколько разделов CDATA, оканчивая один из них перед символом «>». Пример: ]]> Поэтому для того чтобы закодировать «]]>» в разделе CDATA, заменяют все вхождения этого набора символов на следующее: ]]]]> =====CDATA в DTD===== ====Значения атрибутов типа CDATA==== В [[dtd|DTD]] файлах и в SGML и в XML атрибуту может быть назначен тип CDATA — произвольные символьные данные. Внутри атрибута типа CDATA разрешены указатели на символ и ссылки на сущность, они будут обрабатываться при чтении документа. Например, если XML DTD содержит это значит, что элементы, названные foo, имеют необязательный атрибут «//a//» типа CDATA. В XML документе, который соответствует этому DTD, может появиться такой элемент: и XML [[парсер]] интерпретирует атрибут «//a//» как символьные данные «//1 & 2 are < 3//». ====Сущности типа CDATA==== SGML и XML DTD могут также включать объявления [[сущность-xml-|сущностей]], в которых маркер CDATA используется, чтобы указать, что сущность представляет собой символьные данные. Символьные данные могут появиться в самом описании или же могут быть доступны как внешний ресурс по ссылке [[uri|URI]]. Так или иначе в этой сущности разрешены указатели на символ и ссылки на сущность, которые будут обрабатываться при чтении документа. ====Содержание элемента типа CDATA==== SGML DTD может объявить содержание элемента типом CDATA. Внутри элемента типа CDATA не обрабатывается никакая разметка. Можно провести аналогию с разделом CDATA в XML, но в данном случае нет никакой специальной разметки, тип CDATA действует сразу на всё содержимое элемента. ====Смотри также==== * [[мнемоники-в-html|Мнемоники в HTML]] * [[pcdata|PCDATA]] {{tag>XML}}