XML CDATA


Весь текст в XML-документе будет разобран парсером.

Только текст внутри секции CDATA будет игнорироваться парсером.


PCDATA - анализируемые символьные данные

XML-парсеры обычно анализируют весь текст в XML-документе.

Когда XML-элемент анализируется, текст между его тегами также анализируется:

<message>Этот текст также анализируется</message>

Парсер делает это, потому что XML-элементы могут содержать другие элементы, как в этом примере, где элемент <name> содержит два других элемента (first и last):

<name><first>Bill</first><last>Gates</last></name>

Парсер разбивает его на подэлементы следующим образом:

<name>
<first>Bill</first>
<last>Gates</last>
</name>

Анализируемые символьные данные (PCDATA) — это термин, используемый для текстовых данных, которые анализируются XML-парсером.


CDATA - (неразбираемые) символьные данные

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

Такие символы, как "<" и "&", недопустимы в XML-элементах.

"<" вызовет ошибку, потому что парсер интерпретирует этот символ как начало нового элемента.

"&" вызовет ошибку, потому что парсер интерпретирует этот символ как начало символьной сущности.

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

Всё, что находится внутри раздела CDATA, игнорируется парсером.

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

<script>
<![CDATA[
function matchwo(a,b)
{
if (a < b && a < 0) then
{
return 1;
}
else
{
return 0;
}
}
]]>
</script>

В приведённом выше примере парсер игнорирует всё в секции CDATA.

Примечания о секциях CDATA:

Секция CDATA не может содержать строку "]]>". Вложенные секции CDATA также не допускаются.

Последовательность "]]>", обозначающая конец секции CDATA, не может содержать пробелы или переносы строк.


Другие расширения