ГЛАВА 4
Комментарии, инструкции по обработке и разделы CDATA



В этой главе вы узнаете, как добавлять и использовать в ваших документах три типа XML-разметки: комментарии, инструкции по обработке и разделы CDATA. Эти три составляющие не обязательны для корректно сформированных (и валидных) XML-документов, но они могут быть полезными. Вы можете использовать комментарии, чтобы сделать ваш документ более понятным для восприятия. С помощью инструкций по обработке вы можете изменить способ обработки или отображения ваших документов приложением. Вы также можете воспользоваться разделами CDATA, чтобы включать в символьные данные элемента практически любые сочетания символов.

  Добавление комментариев

Одним из принципов XML является создание предельно ясных и простых для понимания документов. Помещенные в нужном месте исчерпывающие примечания могут оказать существенную помощь при восприятии XML-документа, подобно тому, как комментарии заметно облегчают чтение исходного кода программы на языке С или BASIC.

Примечание. В Microsoft Internet Explorer 5 XML-процессор не анализирует и не обрабатывает текст комментариев в XML-разметке. Тем не менее, он делает тексты комментариев доступными для написанного внутри HTML-страницы кода сценария. В главе 9 вы узнаете, как применять сценарии для доступа к тексту комментария, а также к другим компонентам XML-документа. Internet Explorer 5 отображает все комментарии в XML-документе, если вы открыли документ в браузере, и если документ не имеет соответствующей таблицы стилей.

 

Форма записи комментариев

Комментарий начинается с символов <!— и заканчивается символами —>. Между этими двумя ограничителями вы можете поместить любые символы, за исключением двойного тире (—). Вы даже можете вставлять внутрь комментария символ левой угловой скобки (<) и знак амперсенда (&). Вот пример правильно записанного комментария:

<!- - Здесь вы можете поместить любой текст, за исключением двойного тире. 

Символы < и & также допустимы! -->

 

В каком месте вы можете поместить комментарий

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

<?xml version="1.0"?>

<!-- Это комментарий в прологе. -->

<DOCELEMENT>

This is a very simple XML-document.

</DOCELEMENT>

Вы можете поместить их вслед за элементом Документ:

<?xml version="1.0"?>

<DOCELEMENT>

This is a very simple XML-document.

</DOCELEMENT>

<!-- Это комментарий, следующий за элементом Документ. -->.

И вы можете поместить их внутри содержимого элемента:

<?xml version="1.0"?>

<DOCELEMENT>

<!-- Это комментарий, который является частью содержимого корневого

элемента. -->

This is a very simple XML-document. 

</DOCELEMENT>

Ниже приведен пример неправильной записи комментария, поскольку он помещен внутри разметки:

<?xml version="1.0"?>

<DOCELEMENT <!-- Это НЕПРАВИЛЬНАЯ ЗАПИСЬ комментария! --> >

This is a very simple XML-document.

</DOCELEMENT>

Тем не менее, вы можете помещать комментарий внутри определения типа элемента (DTD) - несмотря на то, что DTD является видом разметки - если только при этом комментарий не находится внутри другой разметки, входящей в состав DTD. Подробнее о DTD и правилах размещения комментариев внутри него вы узнаете в главе 5.

Использование инструкций по обработке

Назначение инструкций по обработке - сообщить информацию, передаваемую XML-процессором приложению.

Примечание. XML-процессор представляет собой программный модуль, который прочитывает и хранит содержимое XML-документа (см. главу 2). Приложение - это отдельный программный модуль, который получает содержимое документа от XML-процессора, а затем обрабатывает и отображает это содержимое. Если вы отображаете XML-документ в Internet Explorer 5, браузер содержит как XML-процессор, так и часть приложения. (Если вы пишете сценарий для обработки и отображения XML-документа, то тем самым самостоятельно создаете часть приложения.)

Форма записи инструкции по обработке

Инструкция по обработке имеет следующую общую форму записи: 

<? Кому инструкция ?>

Здесь Кому есть имя приложения, которому адресована инструкция. Допускается любое имя при соблюдении следующих правил:

Инструкция есть информация, передаваемая приложению. Она может состоять из любой последовательности символов, за исключением пары ?>, зарезервированной для обозначения окончания инструкции по обработке.

Как вы можете использовать инструкции по обработке

В зависимости от процессора, который будет прочитывать документ, вы можете использовать различные инструкции по обработке. Если вы используете в качестве XML-процессора Internet Explorer 5, у вас есть две основные возможности применения инструкций по обработке:

<?xml-stylesheet type="text/css" href=" Inventory01.css"?>

<? MyScript detail="2"?>

В главе 9 вы узнаете, как использовать сценарии для доступа к составляющим XML-документа, включая инструкции по обработке.

Куда вы можете поместить инструкции по обработке

Вы можете поместить инструкцию по обработке в любое место XML-документа вне других элементов разметки (т.е. аналогично комментариям):

в пролог документа, после элемента Документ, либо внутри содержимого элемента. Ниже приведен XML-документ с правильно записанными инструкциями по обработке:

<?xml version="1.0"?>

<!-- Далее следует инструкция по обработке внутри пролога: --> 

<?xml-stylesheet type+"text/css" href="lnventory01.css"?> 

<INVENTORY> 

<BOOK>

<!-- Это инструкция поo обработке внутри содержимого элемента: -->

<?ScriptA emphasize="yes" ?>

<TITLE> The Adventures ol Huckleberry Finn<\TITLE>

<AUTHOR>Mark Twan</AUTHOR>

<BINDING>mass market paperback</BINDING>

<PAGES>298</PAGES>

<PRICE>$5.49</PRICE> 

</BOOK> 

<BOOK>

<TITLE>Leaves of Grass</TITLE>

<AUTHOR>Walt Whitman</AUTHOR>

<BINDING>hardcover</BlNDING>

<PAGES>462</PAGES>

<PRICE>$7.75</PRICE> 

</BOOK> 

</INVENTORY>

<!-- Это инструкция по обработке после элемента Документ: --> 

<?ScriptA Category="books" Style="formal" ?>

Вот пример инструкции по обработке, неверно помещенной внутрь элемента разметки:

<!-- Следующий элемент содержит НЕВЕРНУЮ инструкцию по обработке: --> 

<ВООК <?ScriptA emphasize="yes" ?> > 

<TITLE>Leaves of Grass<TITLE>

<AUTHOR>Walt Wnitman</AUTHOR>

<BINDING>hardcover</BNDING>

<PAGES>462</PAGES>

<PRICE>$7.75</PRCE> 

</BOOK>

Тем не менее, вы можете помещать инструкцию по обработке внутри определения типа документа (DTD) - несмотря на то, что DTD представляет собой форму разметки - если только она не находится внутри имеющегося и DTD") другого элемента разметки (подробнее в главе 5).

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

Внутри символьных данных в содержимом элемента нельзя помещать символ левой угловой скобки (<) или знак амперсанда (&) (см. главу 3). Одним из способов преодолеть это ограничение является использование ссылки на символ (&#60; или &#38;) либо на предопределенный общий примитив (&lt; или &атр;) (см. главу 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>

<Р>Добро пожаловать на нашу домашнюю страницу! </Р>

</BODY>

</HTML>

]]> </A-SECTION>

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

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

 

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

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

<?xmlversion="1.0"?> 

<MUSICAL> 

<TITLE PAGE> 

<![CDATA[ <0klahoma!>

By 

Rogers & Hammerstein

]]>

</TITLE_PAGE>

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

</MUSICAL>

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

<?xmlversion="1.0"?>

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

<DOC ELEMENT>

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

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

</SUB ELEMENT> 

</DOC_ELEMENT>

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





Copyright © Realcoding.NET 2003-2007. При перепечатке материалов ссылка на автора материала обязательна.
Сообщить об ошибке или написать письмо администрации через форму контактов.

realcoding.net Webalta Уровень доверия