Объект XMLDOMNodeList [2] представляет собой список узлов - поддеревья и содержит методы, при помощи которых можно организовать процедуру обхода дерева. Например:
· length – число элементов списка узлов;
· item(i) – выбор i-того элемента из списка. Возвращает объект XMLDOMNode;
· nextNode() – выбор следующего элемента в списке, если такого элемента нет, то возвращает null. Первый вызов этого метода возвратит ссылку на первый элемент списка;
· reset() – сброс внутреннего указателя текущего элемента.
Объект XMLDOMParserError [2] позволяет получить всю необходимую информацию об ошибке, произошедшей в ходе разбора документа. Все свойства этого объекта доступны только для чтения. Основные свойства:
· errorCode – содержит код возникшей ошибки либо 0, если таковой не случилось;
· url – возвращает URL обрабатываемого документа;
· filepos – возвращает смещение относительно начала файла фрагмента, в котором обнаружена ошибка;
· line – содержит номер строки, содержащей ошибку;
· linepos – позицию ошибки в строке, в которой была обнаружена ошибка;
· reason – описание ошибки;
· srcText – содержит полный текст строки, в которой произошла ошибка;
1. Создать HTML-страницу, связать ее с XML-документом из лабораторной работы №1.
2. Написать кода сценария (JavaScript или Microsoft Visual Basic Scripting Edition [VBScript]) для доступа к индивидуальным XML-элементам.
3. Оформить отчет, включающий постановку задачи, тексты XML-документа и скриптов, демонстрацию работы программ.
4. Защитить лабораторную работу.
1. Объектная модель документа.
2. Зачем нужна модель DOM.
3. Использование модели DOM на сервере.
4. Использование модели DOM у клиента.
Написание web-сервиса для обработки XML-документа
Цель работы: Изучить основные принципы создания WEB- сервисов.
Сервис
Для того чтобы создать самый простой Web-сервис [1,8], который по запросу пользователя будет выдавать текущую дату или комбинацию даты и времени, в среде разработки Visual Studio .NET следует выполнить команду меню File | New | Project и в появившемся диалоговом окне New Project в наборе Templates выделить значок ASP.NET Web Service. В поле Name следует указать наименование создаваемого проекта. После того, как все необходимые приготовления средой разработки будут сделаны, на основном рабочем поле появятся две новые страницы. Одна будет предназначена для разработки визуального дизайна, а на второй будет располагаться код нашего сервиса. Естественно, у создаваемого сервиса не может быть внешнего вида как такового, ему нечего отображать, поэтому страницу для дизайна можно спокойно закрыть.
В состав одного проекта может входить несколько отдельных сервисов. Для нашего примера потребуется всего один Web-сервис, заготовка для которого создается средой разработки Visual Studio. NET автоматически, поэтому ничего изменять не потребуется, и мы можем сразу перейти на страницу с наименованием Service1.asmx.vb. На этой странице нужно разместим код нашего Web-сервиса:
<WebMethod()> Public Function MyDate(ByVal ShowTime As Boolean
) As String
Dim MD As DateTime
If ShowTime Then
MyDate = MD.Now
Else
MyDate = MD.Today
End If
End Function
После компиляции к созданному Web-сервису можно обратиться даже из браузера. При попытке обращения к Web-сервису Web-сервером генерируется Web-страницы. На этой Web-странице расположена ссылка на формальное описание структуры Web-сервиса, а также перечислены все функции, поддерживаемые Web-сервисом. В нашем случае, естественно, указана лишь одна функция MyDate. Наименование функции также является гиперссылкой, нажав на которую можно перейти к Web-странице, позволяющей воспользоваться этой функцией. После щелчка мышью на ссылке в браузере будет отображена Web-страница. На этой странице расположено поле ввода, в котором пользователь может указать значение параметра, передаваемого функции.
В результате работы функции сервиса получим:
<?xml version="1.0" encoding="utf-8" ?>
<string xmlns="http://tempuri.org/">11.08.2006 23:03:54</string>
XML-документ в качестве источника данных
Создадим Web-сервис, который будет включать единственную функцию, возвращающую обычный набор данных (DataSet), содержащий информацию, взятую из XML-файла [8].
Для этого создадим новый проект Web-сервиса. На его страницу отбуксируем один компонент DataSet с вкладки Data. При этом будет актировано диалоговое окно AddDataset, в котором разработчику предлагается указать тип создаваемого набора данных. Так как в нашем случае XML-файл может содержать данные любой структуры, то для набора данных нельзя заранее указать структуру. Следовательно, в этом диалоговом окне разработчик должен выбрать переключатель Untyped dataset.
Фрагмент кода Web-сервиса приведен ниже.
<WebMethod()> Public Function XMLData(ByVal file As String) As DataSet
Dim FS As IO.FileStream
Dim Reader As IO.StreamReader
FS = New IO.FileStream(Server.MapPath(file), IO.FileMode.Open, IO.FileAccess.Read)
Reader = New IO.StreamReader(FS)
DataSet1.ReadXml(Reader)
FS.Close()
XMLData = DataSet1
End Function
Для создания клиентского приложения нужно для начала создать новый проект. Для этого следует выполнить команду меню File | New | Project. В появившемся диалоговом окне New Project в наборе Templates выбрать шаблон Windows Application и в поле Name указать наименование создаваемого приложения.
После этого Visual Studio .NET создаст форму с именем Form1, устанавливаемым по умолчанию. В окне этой формы нам потребуется разместить один элемент TextBox, одно текстовое поле Label, одну кнопку Button, один компонент DataGrid, и один компонент DataSet с вкладки Data. Пример формы приведен на рисунке 2.
Рис. 2.
После этого следует установить связь с искомым Web-сервисом. Для этого надо в окне Solution Explorer выбрать наименование создаваемого приложения и правым щелчком мыши вызвать для него контекстное меню. В этом контекстном меню необходимо выполнить команду Add Web Reference, после чего будет активизировано одноименное диалоговое окно, позволяющее установить ссылки на используемые сервисы.
Для того чтобы получить ссылки на функции Web-сервиса и перенести их в проект, нужно в текстовом поле Address указать URL необходимого сервиса и загрузить ресурс, располагающийся по этому адресу. После этого в левой части искомого окна Add Web Reference будет отображено содержимое стартовой Web-страницы.
После того как искомые ссылки на функции Web-сервиса будут найдены, при помощи кнопки Add Reference их необходимо добавить к разрабатываемому проекту. После чего можно обращаться к функциям Web-сервиса в приложении (функция Button_Click).
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim xml = New WindowsApplication2.localhost.Service1()
DataSet1.Merge(xml.XMLData(TextBox1.Text))
End Sub
1. Изучить основные принципы создания Web-сервисов.
2. Создать web-сервис, который будет использовать XML-документ, созданный в лабораторной работе 1, в качестве источника данных. То есть создать Web- сервис, возвращающий обычный набор данных, содержащий информацию, взятую из XML-файла.
3. Дополнить созданный web- сервис процедурами позволяющими:
· сохранять данные в XML-документе;
· находить по заданной строке данные в XML-документе;
· заменять одну строку на другую;
· добавлять данные в XML-документ;
· удалять данные из XML документа.
4. Создать клиентское приложение, работающее с разработанным web-сервисом.
5. Оформить отчет, включающий постановку задачи, тексты программ, демонстрацию работы программ.
6. Защитить лабораторную работу.
5. Web-службы. Основные понятия. Назначение.
6. История развития Web-служб.
7. Модель COM/DCOM. .
8. Стандарт CORBA/IIOP.
9. Web-службы .Net. Достоинства. Архитектура.
10. Базовые технологии web-служб: SOAP.
11. Базовые технологии web-служб: UDDI.
12. Базовые технологии web-служб: WSDL.
1. Алекс Феррара, Мэтью Мак-Дональд Программирование web-сервисов для .NET.
2. А. Печерский. Язык XML - практическое введение. Часть 2. http://www.citforum.ru/internet/xml2/index.shtml
3. Бумфрей Ф., Дирецо О., Дакетт Й. и др. XML. Новые преспективы WWW. Пер. с англ. – М.:ДМК, 2000 – 688 с.
4. Марк Зайден XML для электронной коммерции. – Издательство: Бином. Лаборатория знаний , 2003 – 480 с.
5. Основы XML. http://www.intuit.ru
6. Основы работы с CSS. http://www.intuit.ru
7. Скотт Шорт. Разработка XML Web-сервисов средствами Microsoft. NET (+ CD-ROM) Building XML Web Services for the Microsoft .NET Platform 2003
8. Хабибуллин И.Ш. Самоучитель XML. – СПб.: БХВ-Петербург, 2003.-336 с.
9. Шапошников И.В. Web-сервисы Microsoft .Net. – СПб.: БХВ-Петербург, 2002. – 336 с.