Что произойдет, если для названия элемента в XML-документе использовать уже зарезервированное имя HTML-элемента, например title?
Для устранения такой двусмысленности и предназначены пространства имен. Можно создать XML-документ с применением XSLT и использовать в нем уже зарезервированное имя HTML-элемента, например title, для одного из полей таблицы. Именно для этого придется использовать собственное пространство имен.
С помощью строки кода <xmlns:b=http://myMachine.com> можно теперь использовать префикс b: для любого XML-элемента, даже если его имя совпадает с каким-то уже зарезервированным именем HTML-элемента.
В таком случае строки <b:title> и <title> будут относиться к совершенно разным сущностям. Единственным строгим условием является предварительное объявление используемого пространства имен, например в самом начале документа.
ГЛАВА 10 ADO.NET и XML
Оставляя в стороне маркетинговую шумиху, следует отметить, что XML действительно способствует выполнению множества задач, связанных с программированием бизнес-решений. Это особенно верно в тех случаях, когда огромное значение приобретает интеграция разных систем и платформ в рамках одной или нескольких компаний. Поэтому при создании интегрированной среды разработки Visual Studio .NET одной из основных целей была расширенная поддержка XML.
Язык XML является форматом устойчивого хранения объекта DataSet, т.е. при сохранении на жестком диске объекта DataSet используется универсальный формат XML, а не двоичный или какой-то другой специализированный формат. Аналогично, при обмене объектами DataSet между разными процессами или компьютерами данные передаются в потоке формата XML.
В прежних главах показано, что объект DataSet не зависит от источника данных, которые он содержит. Для него данные — это всего лишь данные, независимо от их происхождения. То же самое верно, когда источник данных имеет формат XML. Объект DataSet обладает средствами чтения и записи данных в формате XML и/или информации о схеме данных. В модели ADO.NET эти средства обладают гораздо более высокими функциональными возможностями по сравнению с моделью ADO. Более того, благодаря объекту XmlDataDocument приложение может просматривать данные объекта DataSet и манипулировать ими с помощью реляционных инструментов и/или XML-инструментов, в зависимости от ситуации.
Полное описание XML и связанных с ним технологий и инструментов выходит за рамки данной книги. В главе 9, "XML и .NET", представлены основные сведения о расширенной поддержке XML на платформе.NET Framework, а в этой главе описываются основы интеграции ADO.NET и платформы .NET Framework. Более подробную информацию об этом можно найти в справочных материалах Visual Studio .NET и платформы .NET Framework, а также на Web-узле MSDN по адресу: http://msdn.microsoft.com.
Основные принципы чтения и записи XML-данных
В главах 5, "ADO.NET: объект DataSet", и 6, "ADO.NET: объект DataAdapter" демонстрируются программируемые и прямые способы загрузки данных в объект DataSet из базы данных. Еще один метод загрузки данных основан на чтении XML-данных. Как и следовало ожидать, в объект DataSet данные можно записывать в XML-формате. Более того, объект DataSet обладает средствами чтения и записи XML-схем либо вместе с XML-данными, либо раздельно.
Чтение XML-данных
В ADO.NET предусмотрены богатые и разнообразные инструменты чтения и записи XML-данных и XML-схем. Далее рассматриваются основные способы использования предназначенных для этого методов и свойств.
Как и в предыдущих главах, для демонстрации взаимодействия модели ADO.NET и XML здесь приводится практический пример их использования на основе простой формы.
1. Запустите интегрированную среду разработки Visual Studio .NET и создайте новый проект Visual Basic Windows Application. Для этого в диалоговом окне New Project (Новый проект) выберите тип проекта Visual Basic Project в области Project Types (Типы проектов), а затем шаблон Windows Application (Приложение Windows) в области Templates (Шаблоны).
2. Назовите проект ADO-XML.
3. Укажите путь к файлам проекта.
4. Увеличьте размер формы Form1.
5. В окне свойств Properties укажите значение frmXML для свойства (Name) и значение ADO.NET and XML для свойства Text формы Form1.
6. В верхнем левом углу формы создайте кнопку, перетаскивая ее из панели элементов управления.
7. В окне свойств Properties укажите значение btnReadXML для свойства (Name) и значение Read XML для свойства Text этой кнопки.
8. В правой части формы создайте сетку DataGrid, перетаскивая ее из панели элементов управления.