130 likes | 335 Views
XML и связывание данных. Презентацию подготовил Шакирзянов Айрат, гр. 950б. Все, что происходит в мире XML связано с хранением данных. Одна из технологий, позволяющих извлекать данные, не прибегая к методу программирования, именуется связыванием данных.
E N D
XML и связывание данных Презентацию подготовил Шакирзянов Айрат, гр. 950б Все, что происходит в мире XML связано с хранением данных. Одна из технологий, позволяющих извлекать данные, не прибегая к методу программирования, именуется связыванием данных.
Связывание данных с HTML-элементами • Лишь немногие элементы в Internet Explorerподдерживают свойства, обеспечивающие связывание с объектами DSO (Data Source Objects, применяются для чтения документа). Для этого применяются атрибуты DATASRC и DATAFLD этих элементов. Атрибуту DATASRCв качестве значения присваивается название объекта DSO, а атрибуту DATAFLD– имя поля данных, связываемое с элементом. После этого элемент будет отображать данные из текущей записи DSO. Вы можете использовать методы moveFirst, moveLast, moveNextи movePrevious, чтобы сделать другие записи текущими, причем связанные элементы будут обновляться автоматически. • Например, если управляющий элемент типа «текстовое поле» связывается с полем NAMEв записи dsoCustomerDSO, то этот управляющий элемент будет отображать имя 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>, отображающим раскрывающийся список. Этот управляющий элемент связывается с DSOdsoCustomer таким же образом, как это делается в случае с другими элементами; однако следует определить возможные значения связываемого поля 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, используя кнопки, размещенные внизу страницы.