![]()
Главная Обратная связь Дисциплины:
Архитектура (936) ![]()
|
Использование одной HTML-таблицы для отображения простого набора записей
Можно использовать один HTML-элемент TABLE для отображения XML-документа, в котором данные организованы в виде простого набора записей - т.е. XML-документа, составленного следующим образом: · корневой элемент содержит множество элементов типа запись (record) (в этой главе подобные элементы иногда называются просто записями); · каждый элемент типа запись содержит одинаковый набор элементов типа поле (field) (в этой главе подобные элементы иногда называются просто полями); · каждый элемент типа поле содержит только символьные данные. (Если дочерний элемент элемента запись содержит один или несколько своих собственных дочерних элементов, DSO интерпретирует его как вложенную запись, а не как поле. О том, как отображать вложенные поля, ,будет рассказано в разделе “Использование вложенных таблиц для отображения иерархической структуры записей” далее в этой главе.) Примером такого типа XML-документов является документ, представленный в Листинге 1.1. В этом документе корневой элемент (INVENTORY) содержит набор из четырёх элементов-записей (элементы BOOK), и каждый из элементов-записей имеет одинаковый набор элементов-полей, которые содержат только символьные данные (TITLE, AUTHOR, BINDING, PAGES, PRICE). При связывании таблицы с XML-документом, данные, принадлежащие каждому из элементов записей, отображаются в отдельной строке таблицы, а каждый из дочерних элементов полей — в отдельном столбце. В качестве примера возьмем HTML-страницу из Листинга 1.15, которая содержит таблицу, сцепленную с данными документа из Листинга 1.1 (файл "Inventory.xml").
<HTML> <HEAD> <TITLE>Опись книг</TITLE> </HEAD> <BODY> <XML ID="dsoInventory" SRC="Inventory.xml"></XML> <H2>Опись книг</H2> <TABLE DATASRC="#dsoInventory" BORDER="1" CELLPADDING="5"> <THEAD> <TH>Заголовок</TH> <TH>Автор</TH> <TH>Обложка</TH> <TH>Страниц</TH> <TH>Цена</TH> </THEAD> <TR ALIGN="center"> <TD><SPAN DATAFLD="TITLE" STYLE="font-style:italic"></SPAN></TD> <TD><SPAN DATAFLD="AUTHOR"></SPAN></TD> <TD><SPAN DATAFLD="BINDING"></SPAN></TD> <TD><SPAN DATAFLD="PAGES"></SPAN></TD> <TD>< SPAN DATAFLD ="РRIСЕ"></SPAN></TD> </TR> </TABLE> </BODY> </HTML> Листинг 1.15
XML-документ из Листинга 1.1 связан с HTML-страницей из Листинга 1.15 посредством фрагмента данных на этой странице, имеющего ID dsoInventory:
<XML ID="dsoInventory" SRC="Inventory.xml"></XML>
Элемент TABLE страницы сцеплен со всем XML-документом путем присвоения атрибуту DATASRC элемента идентификатора (ID) фрагмента данных, предваренного символом #:
<TABLE DATASRC="#dsoInventory" BORDER="1" CELLPADDING="5">
Таблица определена со стандартным заголовком (элемент THEAD) и с одной строкой (элемент TR). Каждая ячейка в этой строке (т.е., каждый элемент TD) состоит из элемента SPAN, который сцеплен с одним из полей XML-документа таким образом, что этот элемент отображает содержимое поля. Например, первая ячейка содержит элемент SPAN, сцепленный с полем TITLE:
<TD><SPAN DATAFLD="TITLE" STYLE="font-style:italic"></SPAN></TD>
Элемент SPAN связывается с полем XML путем присвоения имени поля (в данном примере TITLE) атрибуту DATAFLD элемента. Вот как работает связывание данных: даже если в элементе TABLE определена только одна строка, когда браузер отображает таблицу, он повторяет строковый элемент для каждой записи в XML-документе. Т.е., в первой строке, следующей за заголовком, отображены поля (TITLE, AUTHOR и т.д.), принадлежащие первой записи (элемент BOOK для книги “Война и мир”). В следующей строке отображены поля для второй записи (элемент BOOK для книги Преступление и наказание) и т.д. На следующем рисунке показано как выглядит документ в Internet Explorer. Рисунок 38. Отображение XML-документа с простым набором записей
Может возникнуть вопрос, почему ячейки (элементы TD) не сцеплены непосредственно с полями XML. Ответ заключается в том, что элемент TD не является связываемым HTML-элементом. (Связываемые элементы перечислены в таблице 5.18.) Следовательно, необходимо включить внутрь каждого элемента TD связываемый элемент (обычно SPAN).
![]() |