» Навигация
- - - - - - - - - - - - - - - -
  » Наша кнопка
- - - - - - - - - - - - - - - -
  » Книги
- - - - - - - - - - - - - - - -
   » PCDATA и CDATA
 
Автор: Алексей Голубев
Источник: www.frnet.narod.ru

Вся текстовая информация в XML-документе, по умолчанию, подлежит обработке анализатором. Однако, сущестует возможность запретить анализ конкретных частей документа. Т.о. текстовые данные делятся на два вида PCDATA и CDATA, первый вид данных подлежит анализу, второй – игнорируется анализаотором.

PCDATA – Parsed Character Data

PCDATA – анализируемые символьные данные. По умолчанию весь XML-документ состоит из них.

Когда XML-документ проходит через анализатор его содержимое разбивается на теги. Содержимое этих тегов так же подлежит анализу и так до тех пор, пока анализатор не найдет вложенных тегов. За счет такого анализа мы и имеем возможность просмотра XML-документа в виде древовидной структуры.

<message>Добрый день.</message>

В приведенной примере сообщение «Добрый день» будет обрабатываться анализатором, так как вместо обычного текста в теге <message> могли находится также и другие теги. Рассмотрим следующую строку:

<message> <title>Тема доклада</title> <to>teacher@gmail.com</to>
<text>Измерение показателя преломления</text> </message>

Данную строку анализатор разобьет на составляющие и ее содержимое представит в виде структуры:

<message>
	<title>Тема доклада</title>
	<to>teacher@gmail.com</to>
	<text>Измерение показателя преломления</text>
</message>

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

CDATA – (Unparsed) Character Data

CDATA – (неанализируемые) символьные данные. Указывая этот вид данных, мы даем команду анализатору не интерпретивать их как XML-данные, а использовать их как обычный текст, независимо от того, какие символы могут встречаться внутри блока.

Такие символы как «<» и «&» могут вызвать ошибку при обработке. Символ «<» для анализатора является началом нового элемента (тега), а «&» - началом описания символа (например: &amp;).

Для того, что бы избежать подобных ошибок, например при описании программы на JavaScript, нужно дать указание XML-анализатору, что бы он считал это описание как CDATA.

Блоки CDATA начинаются с конструкции <![CDATA[ и заканчиваются ]]>, например:

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

В приведенном примере, указанные выше символы будут игнорироваться анализатором. Блок CDATA не может содержать в себе последовательность символов ]]>, так как она будет интерпретироваться как окончание блока. Стоит помнить, что границы CDATA должны быть описаны как есть, т.е. нельзя включать в эти последовательности пробелы или переносы строк.

Пример вы можете скачать по ссылке: http://www.frnet.narod.ru/script/article/0052.zip

 

  » Друзья сайта
- - - - - - - - - - - - - - - -
  » Разное
- - - - - - - - - - - - - - - -
  » Счетчики
- - - - - - - - - - - - - - - -
  Дизайнер и ведущий проекта: Голубев Алексей
Copyright Alexei Golubev © 2004 — 2011
Hosted by uCoz