Передача HTML-разметки
По умолчанию, если символьные данные XML-поля включают HTML-разметку, HTML-элемент, сцепленный с этим полем, воспринимает и отображает символы разметки как литерал. Рассмотрим, например, следующий элемент SPAN, который сцеплен с XML-полем AUTHOR-BIO:
<SPAN DATASRC="#dsoInventory" DATAFLD="AUTHOR-BIO"></SPAN>
Если поле AUTHOR-BIO содержит элемент I (курсив), например:
<AUTHOR-BIO>Henry James was an American author who lived from 1843 to 1916, and wrote <I>The Bostonians</I> and many other works of psychologically realistic fiction.</AUTHOR-BIO>
элемент SPAN, который воспринимает символы HTML-разметки как литералы, отобразит содержимое поля следующим образом:
Henry James was an American author who lived from 1843 to 1916, and wrote <I>The Bostonians </I> and many other works of psychologically realistic fiction.
Для некоторых сцепляемых HTML-элементов, таких как SPAN, вы можете установить для атрибута DATAFORMATAS значение "HTML", что заставит браузер обрабатывать любую HTML-разметку, содержащуюся в тексте поля, а не просто воспринимать ее как символы-литералы. Предположим, вы определили рассмотренный ранее элемент SPAN следующим образом:
<SPAN DATASRC="#dsoInventory" DATAFLD="AUTHOR-BIO" DATAFORMATAS="HTML"></SPAN>
Текст внутри элемента I будет воспринят как текст с курсивным начертанием:
Henry James was an American author who lived from 1843 to 1916, and wrote The Bostonians and many other works of psychologically realistic fiction. Примечание. Присвоение атрибуту DATAFORMATAS его значения по умолчанию, "TEXT", дает тот же эффект, что и пропуск этого атрибута – символы HTML-разметки будут восприниматься как литералы.
Чтобы узнать, какие элементы вы можете использовать для передачи HTML-разметки посредством установки атрибута DATAFORMATAS="HTML", обратитесь к таблице 8.3. Для таких элементов в предпоследнем столбце таблицы ("Передает ли разметку HTML, содержащуюся в поле XML?") стоит "Да".
Вставка и передача HTML-разметки в XML-поля весьма полезна для изменения формата части текста (например, с использованием элементов I или B) и для включения HTML-элементов, таких как гиперссылки или изображения, в текст. Хотя форматирование XML-текста путем включения в XML HTML-разметки нарушает принцип разделения данных и форматов, при связывании данных эта техника является единственным подходящим способом модификации формата или включения HTML-элементов внутрь поля. (При использовании других методов отображения XML, рассматриваемых в этом курсе, вы обычно имеете возможность форматировать или вставлять элементы внутрь XML-элемента путем включения дочерних элементов и соответствующей их обработки.)
Когда вы добавляете HTML-разметку в XML-поле, вы не можете помещать в текст символ левой угловой скобки (<) или знак амперсанда (&) как литералы. (Напомним, что эти символы недопустимы в символьных данных элемента.) Однако вы можете вставлять их с использованием предопределенных ссылок на примитивы < и &. Другой возможностью сделать HTML-разметку более наглядной, что особенно полезно для большого фрагмента HTML, является использование разделов CDATA (см. лекцию 4).