После загрузки в объект DataSet (независимо от способа и места загрузки) данные и/или схемы данных можно записать в XML-формате (с XML-схемой или без нее). Для демонстрации способов записи данных в XML-формате выполните перечисленные ниже действия.
1. Создайте в форме новую кнопку сразу под кнопкой Read XML, перетаскивая ее из панели инструментов.
2. В окне свойств Properties укажите значение btnWriteXML для свойства (Name) и значение Write XML для свойства Text этой кнопки.
3. Затем в определении класса формы frmXML введите код из листинга 10.3.
Листинг 10.3.
Код сохранения содержимого объекта DataSet в виде XML-файла
Private Sub btnWriteXML_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnWriteXML.Click
Dim daAuthors As New SqlDataAdapter("select * from sales", en)
Dim daPublishers As New SqlDataAdapter("select * from stores", en)
' Загрузка реляционных данных из базы данных.
daAuthors.Fill(dsSales, "Sales")
daPublishers.Fill(dsSales, "Stores")
' Запись XML-данных в файл
dsSales.WriteXml("…\StoreSales.xml")
' Запись схемы в XSD-файл.
dsSales.WriteXmlSchema("…\StoreSales.xsd")
End Sub
В этой подпрограмме создаются два объекта — адаптера данных (daAuthors и daPublishers), которые затем используются для вставки данных в объект dsPubs из двух таблиц базы данных pubs СУБД SQL Server. В листинге 10.4 приведено содержимое файла StoreSales.xml, который создается в результате выполнения этой подпрограммы. Обратите внимание на то, что данный XML-документ содержит записи о продажах, а затем записи о магазинах. Этот подход имеет смысл, так как между ними не задано никакого отношения. Если бы таблицы Sales и Stores были связаны, то эти записи можно было вложить друг в друга. Пример такого вложения приводится далее, в бизнес-ситуации 10.1.