связыванием данных. XML и связывание данных

advertisement
XML и связывание данных
Презентацию подготовил Шакирзянов Айрат, гр. 950б
Все, что происходит в мире XML связано с хранением
данных. Одна из технологий, позволяющих извлекать
данные, не прибегая к методу программирования,
именуется связыванием данных.
Связывание данных с HTML-элементами


Лишь немногие элементы в Internet Explorer поддерживают свойства,
обеспечивающие связывание с объектами DSO (Data Source Objects,
применяются для чтения документа). Для этого применяются атрибуты
DATASRC и DATAFLD этих элементов. Атрибуту DATASRC в качестве
значения присваивается название объекта DSO, а атрибуту DATAFLD –
имя поля данных, связываемое с элементом. После этого элемент будет
отображать данные из текущей записи DSO. Вы можете использовать
методы moveFirst, moveLast, moveNext и movePrevious, чтобы сделать
другие записи текущими, причем связанные элементы будут обновляться
автоматически.
Например, если управляющий элемент типа «текстовое поле» связывается с
полем NAME в записи dsoCustomer DSO, то этот управляющий элемент
будет отображать имя Charles при первой загрузке страницы. После вызова
метода moveNext в качестве текущей выбирается следующая запись, а
управляющий элемент отобразит имя Franklin.
Текст HTML-документа 01.html
<HTML>
<HEAD>
<TITLE>
Customer Data
</TITLE>
</HEAD>
<BODY>
Name: <SPAN ID=“NAME”>Charles</SPAN><BR>
ID: <SPAN ID=“CUSTOMER_ID”>58704</DPAN><BR>
Purchase date: Date: <SPAN ID=“PURCHASE_DATE”>
10/15/2003</SPAN><BR>
Department: <SPAN ID=“DEPARTMENT”>
Meat</SPAN><BR>
Product: <SPAN ID=“PRODUCT_NAME”>Ham</SPAN><BR>
Name: <SPAN ID=“NAME”>Franklin</SPAN><BR>
ID: <SPAN ID=“CUSTOMER_ID”>58705</DPAN><BR>
Purchase date: Date: <SPAN ID=“PURCHASE_DATE”>
10/15/2003</SPAN><BR>
Department: <SPAN ID=“DEPARTMENT”>
Produce</SPAN><BR>
Product: <SPAN ID=“PRODUCT_NAME”>Tomatoes</SPAN><BR>
Name: <SPAN ID=“NAME”>Phoebe</SPAN><BR>
ID: <SPAN ID=“CUSTOMER_ID”>58706</DPAN><BR>
Purchase date: Date: <SPAN ID=“PURCHASE_DATE”>
10/15/2003</SPAN><BR>
Department: <SPAN ID=“DEPARTMENT”>
Meat</SPAN><BR>
Product: <SPAN ID=“PRODUCT_NAME”>Turkey</SPAN><BR>
Name: <SPAN ID=“NAME”>Mark</SPAN><BR>
ID: <SPAN ID=“CUSTOMER_ID”>58707</DPAN><BR>
Purchase date: Date: <SPAN ID=“PURCHASE_DATE”>
10/15/2003</SPAN><BR>
Department: <SPAN ID=“DEPARTMENT”>
Meat</SPAN><BR>
Product: <SPAN ID=“PRODUCT_NAME”>Beef</SPAN><BR>
Name: <SPAN ID=“NAME”>Nancy</SPAN><BR>
ID: <SPAN ID=“CUSTOMER_ID”>58708</DPAN><BR>
Purchase date: Date: <SPAN ID=“PURCHASE_DATE”>
10/15/2003</SPAN><BR>
Department: <SPAN ID=“DEPARTMENT”>
Frozen</SPAN><BR>
Product: <SPAN ID=“PRODUCT_NAME”>Broccoli</SPAN><BR>
</BODY>
</HTML>
HTML-элементы Internet Explorer, детализирующие связываемые
свойства атрибутов DATASRC и DATAFLD















A связывается со свойством href. Не обновляет данные.
APPLET связывается со свойством param. Обновляет данные.
BUTTON связывается со свойством value. Не обновляет данные.
DIV связывается со свойствами innerText и innerHTML. Не обновляет данные.
FRAME связывается со свойством src. Не обновляет данные.
IFRAME связывается со свойством src. Не обновляет данные.
IMG связывается со свойством src. Не обновляет данные.
INPUT TYPE=BUTTON связывается со свойством value. Не обновляет данные.
INPUT TYPE=CHECKBOX связывается со свойством checked. Обновляет
данные.
INPUT TYPE=HIDDEN связывается со свойством value. Обновляет данные.
INPUT TYPE=PASSWORD связывается со свойством value. Обновляет данные.
INPUT TYPE=RADIO связывается со свойством checked. Обновляет данные.
INPUT TYPE=TEXT связывается со свойством value. Обновляет данные.
LABEL связывается со свойством value. Не обновляет данные.
MARQUEE связывается со свойствами innerText и innerHTML. Не обновляет
данные.











OBJECT связывается со свойством objects. Обновляет данные.
PARAM связывается со свойством param. Обновляет данные.
SELECT связывается со свойством text выбранного жлемента списка. Обновляет
данные.
SPAN связывается со свойствами innerText и innerHTML. Не обновляет данные.
TABLE конструирует таблицу в целом. Не обновляет данные.
TEXTAREA связывается со свойством value. Обновляет данные.
Кроме того, HTML-теги включают определенные события, применяемые в
процессе связывания данных:
onafterupdate происходит после изменения данных элемента посредством DSO;
onbeforeunload происходит перед выгрузкой страницы;
onbeforeupdate происходит до изменения данных элемента посредством DSO;
onerrorupdate происходит в случае прекращения процесса изменения данных
вследствие ошибки.
Добавим управляющий элемент dsoCustomer на веб-страницу и подключим его
с помошью DSO к документу 01.html:
<HTML>
<HEAD>
<TITLE>
Data Binding With the MSHTML DSO
</TITLE>
</HEAD>
<BODY>
<CENTER>
<H1>
Data Binding With the MSHTML DSO
</H1>
<OBJECT ID=“dsoCustomer” DATA=“01.html” HEIGHT=“0” WIDTH=“0”>
</OBJECT>
-
Таким же образом поле CUSTOMER_ID связывается с другим текстовым
полем. Текстовые данные объекта DSO могут отображаться
непосредственно на веб-странице – без использования текстового
управляющего элемента – путем привязки объекта DSO к элементу
<SPAN> следующим образом:
<OBJECT ID=“dsoCustomer” DATA=“01.html” HEIGHT=“0” WIDTH=“0”>
</OBJECT>
Name: <INPUT TYPE=“TEXT” DATASRC=“#dsoCustomer” DATAFLD=“NAME” SIZE=“10”>
<P>
ID: <INPUT TYPE=“TEXT” DATASRC=“#dsoCustomer” DATAFLD=“CUSTOMER_ID”
SIZE=“5”>
<P>
Purchase date: <SPAN DATASRC=“#dsoCustomer” DATAFLD=“PURCHASE_DATE”></SPAN>
-
Чтобы показать, каким образом связываются другие управляющие
элементы, поле DEPARTMENT, которое принимает значения Produce,
Meat или Frozen, будет связано с управляющим элементом <SELECT>,
отображающим раскрывающийся список. Этот управляющий элемент
связывается с DSO dsoCustomer таким же образом, как это делается в
случае с другими элементами; однако следует определить возможные
значения связываемого поля DEPARTMENT, выступающие в качестве
элементов <OPTION> в управляющем элементе <SELECT>:
<P>
Department: <SELECT DATASRC=“#dsoCustomer” DATAFLD=“DEPARTMENT” SIZE=“1”>
<OPTION VALUE=“Produce”>Produce
<OPTION VALUE=“Meat”>Meat
<OPTION VALUE=“Frozen”>Frozen
</SELECT>
<P>
Product: <SPAN DATASRC=“#dsoCustomer” DATAFLD=“PRODUCT_NAME”>
</SPAN>
-
Аналогичным образом поле PRODUCT_NAME привязывается к другому
элементу <SPAN>. При первой загрузке страницы отображается имя
покупателя, его идентификатор, дата покупки, название отдела и ID товара
первой записи элементов, которые размещены на странице. Однако в этом
случае имеют место некоторые проблемы. Объект DSO не отображается на
странице. В связи с этим возникает вопрос о том, каким образом
пользователь может просматривать различные записи?
Ответ на поставленный выше вопрос заключается в применении методов
набора записей: moveFirst, moveLast, moveNext и movePrevious,
вызываемых после щелчка на отображаемых кнопках. К объекту набора
записей в DSO можно обращаться по имени dsoCustomer.recordset.
Таким образом, вызов метода moveFirst для перехода к первой записи
выглядит следующим образом: dsoCustomer.recordset.moveFirst().
Перед использованием методов moveNext и movePrevious стоит
проверить, можно ли совершить переход к следующей или предыдущей
записи,- если выйти за пределы набора записей, связанные элементы будут
на странице пустыми. Можно воспользоваться свойствами набора записей
BOF (beginning of file, начало файла) и EOF(end of file, конец файла) для
определения нахождения в начале или в конце набора записей
соответственно.
<P>
<BUTTON ONCLICK=“dsoCustomer.recordset.moveFirst()”><<
</BUTTON>
<BUTTON ONCLICK=“if (!dsoCustomer.recordset.BOF)
dsoCustomer.recordset.movePrevious()”><
</BUTTON>
<BUTTON ONCLICK=“if (!dsoCustomer.recordset.EOF)
dsoCustomer.recordset.moveNext()”>>
</BUTTON>
<BUTTON ONCLICK=“dsoCustomer.recordset.moveLast()”>>>
</BUTTON>
</CENTER>
</BODY>
</HTML>
Соответствующая веб-страница показана ниже. Пользователь может
перемещаться по записям файла 01.html, используя кнопки, размещенные
внизу страницы.
Download