В этой главе вы узнаете, как добавлять и использовать в ваших документах три типа 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).
Внутри символьных данных в содержимом элемента нельзя помещать символ левой угловой скобки (<) или знак амперсанда (&) (см. главу 3). Одним из способов преодолеть это ограничение является использование ссылки на символ (< или &) либо на предопределенный общий примитив (< или &атр;) (см. главу 6). Однако в том случае, если вам требуется многократно вставлять символы < или &, использование ссылок неудобно и затрудняет восприятие данных. В этом случае проще поместить текст, содержащий такие символы, в раздел 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, вам не нужно использовать ссылки на символы (< и &) или на предопределенные примитивы общего назначения < и &а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.
При перепечатке материалов ссылка на автора материала обязательна.
Сообщить об ошибке или написать письмо администрации
через форму контактов.