Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
k4.doc
Скачиваний:
7
Добавлен:
13.11.2019
Размер:
74.75 Кб
Скачать

Использование разделов cdata

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

Форма записи раздела 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, вам не нужно использовать ссылки на символы (< и &), либо на предопределенные примитивы общего назначения < и & (см. в лекцию 6). Фактически, если вы используете подобную ссылку, синтаксический анализатор интерпретирует каждый из символов в ссылке как литерал и не замещает ссылку символами < и &.

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

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

<?xml version="1.0"?>

<MUSICAL>

<TITLE_PAGE>

<![CDATA[

<Oklahoma!>

By

Rogers & Hammerstein

]]>

</TITLE_PAGE>

<!-- Здесь расположены другие элементы… -->

</MUSICAL>

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

<?xml version="1.0"?>

<![CDATA[ ОШИБКА: не внутри содержимого элемента! ]]>

<DOC_ELEMENT>

<SUB_ELEMENT <![CDATA[ ОШИБКА: внутри разметки! ]]> >

содержимое подэлемента…

</SUB_ELEMENT>

</DOC_ELEMENT>

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

© 2003-2007 INTUIT.ru. Все права защищены.

6

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]