Щёлкните здесь для просмотра

</A>

Это свойство, как и атрибут HREF элемента, устанавливает URL для гиперссылки. Следовательно, из поля XML извлекается URL гиперссылки для сцепленного элемента А, а не его текстовое содержимое. (XML-поле REVIEWS в рассматриваемом примере должно содержать корректный URL.)

В качестве другого примера рассмотрим связывание поля флажка элемента INPUT через свойство checked (которое изменяет статус выбора элемента (установлен или сброшен флажок)) с XML-полем:

<INPUTTYPE="CHECKBOX" DATASRC="#dsolnventory" DATAFLD="INSTOCK">

Если XML-поле INSTOCK пусто, либо содержит текст “0” или “false”, то поле флажка очищается. Если оно содержит какой-либо другой текст, флажок устанавливается.

В качестве последнего примера рассмотрим элемент IMG (изображение), свойство src которого сцеплено с XML-полем. Это свойство, как и атрибут SRC элемента, задает URL файла, содержащего графические данные. Листинги 3 и 4 иллюстрируют технику сцепления для элементаIMG.

Листинг 3

<?xml version=”1.0”?>

<!-- Имя файла: Inventory03.xml -->

<INVENTORY>

<BOOK>

<COVERIMAGE>VoiMir.bmp</COVERIMAGE>

<TITLE>Война и мир</TITLE>

<AUTHOR>Лев Толстой</AUTHOR>

<BINDING>Жёсткая обложка</BINDING>

<PAGES>510</PAGES>

<PRICE>12 000 рублей</PRICE>

</BOOK>

<BOOK>

<COVERIMAGE>PresNak.bmp</COVERIMAGE>

<TITLE>Преступление и наказание</TITLE>

<AUTHOR>Фёдор Достоевский</AUTHOR>

<BINDING>Мягкая обложка</BINDING>

<PAGES>590</PAGES>

<PRICE>14 000 рублей</PRICE>

</BOOK>

<BOOK>

<COVERIMAGE>KorMar.bmp</COVERIMAGE>

<TITLE>Королева Марго</TITLE>

<AUTHOR>Александр Дюма</AUTHOR>

<BINDING> Мягкая обложка </BINDING>

<PAGES>410</PAGES>

<PRICE>10 000 рублей</PRICE>

</BOOK>

<BOOK>

<COVERIMAGE>ZaterMir.bmp</COVERIMAGE>

<TITLE>Затерянный мир</TITLE>

<AUTHOR>Артур Конан Дойль</AUTHOR>

<BINDING>Жёсткая обложка</BINDING>

<PAGES>350</PAGES>

<PRICE>9 000 рублей</PRICE>

</BOOK>

</INVENTORY>

Листинг 4

<HTML>

<HEAD>

<TITLE>Описание книги</TITLE>

</HEAD>

<BODY>

<XML ID="dsoInventory" SRC="Inventory03.xml"></XML>

<H2> Описание книги </H2>

<TABLE DATASRC="#dsoInventory" BORDER="1" CELLPADDING="5">

<THEAD>

<TH>Рисунок</TH>

<TH>Заголовок</TH>

<ТН>Автор</TH>

<TH>Обложка</TH>

<ТН>Страниц</TH>

<ТН>Цена</TH>

</THEAD>

<TR AUGN="center">

<TD><IMG DATAFLD="COVERIMAGE"></TD>

<TD><SPAN DATAFLD="TITLE" STYLE="font-styte:italic"></SPAN></TD>

<TD><SPAN DATAFLD="AUTHOR"></SPAN></TD>

<TD><SPANDATAFLD="BINDING"></SPAN></TD>

<TD><SPAN DATAFLD="PAGES"></SPAN></TD>

<TD><SPAN DATAFLD="PRICE></SPAN></TD>

</TR>

</TABLE>

</BODY>

</HTML>

Листинг 3 есть XML-документ, который содержит поле с именем COVERIMAGE в каждой записи BOOK. Каждое поле COVERIMAGE содержит URL графического файла, который хранит рисунок обложки книги. Листинг 6 - это та же самая HTML-страница, что и в Листинге 2, за исключением того, что в начало каждой строки таблицы добавлена дополнительная ячейка (элемент TD), которая содержит элемент IMG, а неSPAN. Элемент IMG сцеплен с полем COVERIMAGE XML-документа, и поэтому отобразит рисунок обложки для каждой книги, как показано на следующем рисунке.

Щёлкните здесь для просмотра - student2.ru

Рисунок 3. Сцепление с элементами XML-документа, в которых указано имя файла рисунка

Передача HTML-разметки

По умолчанию, если символьные данные XML-поля включают HTML-разметку, HTML-элемент, сцепленный с этим полем, воспринимает и отображает символы разметки как литерал. Рассмотрим, например, следующий элемент SPAN, который сцеплен с XML-полем AUTHOR-BIO:

<SPAN DATASRC="#dsoInventory" DATAFLD="AUTHOR-BIO"></SPAN>

Если поле AUTHOR-BIO содержит элемент I (курсив), например:

<AUTHOR-BIO>Джек Лондон - американский писатель, живший с 1876 по 1916 гг., им была написана повесть &lt;I>Зов предков&lt;I> и множество других литературных произведений.</AUTHOR-BIO>

элемент SPAN, который воспринимает символы HTML-разметки как литералы, отобразит содержимое поля следующим образом:

Джек Лондон - американский писатель, живший с 1876 по 1916 гг., им была написана повесть <I>Зов предков</I> и множество других литературных произведений.

Для некоторых сцепляемых HTML-элементов, таких как SPAN, можно установить для атрибута DATAFORMATAS значение “HTML”, что заставит браузер обрабатывать любую HTML-разметку, содержащуюся в тексте поля, а не просто воспринимать ее как символы-литералы. Предположим, что вышеуказанный элемент SPAN определён следующим образом:

<SPAN DATASRC="dsoInventory" DATAFLD="AUTHOR-BIO" DATAFORMATAS="HTML"></SPAN>

Текст внутри элемента I будет воспринят как текст с курсивным начертанием:

Джек Лондон - американский писатель, живший с 1876 по 1916 гг., им была написана повесть Зов предков и множество других литературных произведений.

Присвоение атрибуту DATAFORMATAS его значения по умолчанию “TEXT” дает тот же эффект, что и пропуск этого атрибута -символы HTML-разметки будут восприниматься как литералы.

Чтобы узнать, какие элементы вы можете использовать для передачи HTML-разметки посредством установки атрибутаDATAFORMATAS=”HTML”, обратитесь к таблице 5.18. Для таких элементов в предпоследнем столбце таблицы (“Передает ли разметку HTML, содержащуюся в поле XML?”) стоит “Да”.

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

При добавлении HTML-разметки в XML-поле, нельзя помещать в текст символ левой угловой скобки (<) или знак амперсенда (&) как литералы. (Эти символы недопустимы в символьных данных элемента.) Однако их можно вставлять с использованием предопределённых ссылок на примитивы < и &. Другой возможностью сделать HTML-разметку более наглядной, что особенно полезно для большого фрагмента HTML, является использование разделов CDATA (см. выше).

Наши рекомендации