Опубликован: 24.01.2007 | Уровень: для всех | Доступ: платный
Лекция 4:

Добавление комментариев, инструкций по обработке и разделов CDATA

< Лекция 3 || Лекция 4: 123 || Лекция 5 >

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

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

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

<![CDATA[
Здесь вы можете разместить любые символы, 
за исключением двух правых квадратных скобок 
с последующим знаком "больше".
]]>

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

Если вы хотите включить в состав имеющихся символьных данных блок исходного кода или разметку, которые будут отображаться браузером, то можете воспользоваться разделом CDATA с целью предотвратить интерпретацию синтаксическим анализатором символов < или & как XML-разметку. Например:

<A-SECTION>
Вот пример очень простой HTML-страницы:
<![CDATA[
<HTML>
<HEAD>
<TITLE>R. Jones & Sons</TITLE>
</HEAD>
<BODY>
<P>Добро пожаловать на нашу домашнюю страницу!</P>
</BODY>
</HTML>
]]>
</A-SECTION>

Внутри раздела CDATA процессор будет предполагать, что <HTML>, например, есть начало вложенного элемента, но не часть символьных данных элемента A-SECTION.

Примечание. Поскольку вы можете непосредственно помещать символы < и & внутрь раздела CDATA, вам не нужно использовать ссылки на символы ( &#60; и &#38; ) либо на предопределенные примитивы общего назначения &lt; и &amp; (см. в "лекцию 6" ). Фактически, если вы используете подобную ссылку, синтаксический анализатор интерпретирует каждый из символов в ссылке как литерал и не замещает ссылку символами < и &.

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

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

<?xml version="1.0" encoding="windows-1251" ?>
<MUSICAL>
	<TITLE_PAGE>
		<![CDATA[
			<Oklahoma!>
				By
		Rogers & Hammerstein
		]]>
	</TITLE_PAGE>
	<!-- Здесь расположены другие элементы… -->
</MUSICAL>

Ошибочно сформированный XML-документ, представленный ниже, содержит два неправильно записанных раздела CDATA. Первый из них не находится внутри содержимого элемента. Второй находится внутри содержимого элемента, но также и внутри начального тега разметки.

<?xml version="1.0" encoding="windows-1251" ?>
<![CDATA[ ОШИБКА: не внутри содержимого элемента! ]]>
<DOC_ELEMENT>
	<SUB_ELEMENT <![CDATA[ ОШИБКА: внутри разметки! ]]>  >
		 содержимое подэлемента…
	</SUB_ELEMENT>
</DOC_ELEMENT>

Примечание. Разделы CDATA не являются вложениями. Вы не можете поместить один раздел CDATA внутрь другого.

< Лекция 3 || Лекция 4: 123 || Лекция 5 >
Максим Попов
Максим Попов

Почему при использовании скриптов, приведенных в курсе Основы XML

лекция Лекция 8: 

Отображение XML-документов с использованием связывания данных

не происходит связывания XLM документа с HTML?

Отображаются пустые поля. Браузер IE11

Владислав Нагорный
Владислав Нагорный

Подскажите, пожалуйста, планируете ли вы возобновление программ высшего образования? Если да, есть ли какие-то примерные сроки?

Спасибо!

Наталья Алмаева
Наталья Алмаева
Россия
Светлана Казьмина
Светлана Казьмина
Россия, Волгодонск