Обработка баз данных на Visual Basic®.NET
Шрифт:
Обратите внимание, что страница стиля связана с XML-документом. С помощью .NET-классов для XML или MSXML-анализатора Visual Basic можно динамически изменять результаты с представлением
Строка select="People/Person" — это XPATH-запрос, который представляет собой эквивалент SQL-команды SELECT People FROM Person. Для циклического обхода всех элементов применяется команда xsl:for-each из спецификации XSL. В отличие от XML, в котором нет программных директив, в XSL предусмотрен целый набор директив, который может быть расширен благодаря сценариям для предоставления дополнительной функциональности.
XML и доступ к данным
Обладая этими базовыми знаниями об XML и зная способы их использования, можно применить их в реальных приложениях для работы с данными. XML-анализатор способен считать данные в формате XML, и они будут иметь одинаковый смысл в любом приложении. Эта гибкость сокращает необходимый для работы с данными код, улучшает сопровождение и поддержку программ.
Когда создатели платформы .NET планировали следующую версию интегрированной среды разработки, такая гибкость была одним из основных требований. Теперь практически все элементы платформы .NET используют XML для обмена информацией. Среда CLR использует XML-файлы для указания параметров приложения. Объекты DataSet возвращаются как XML-документы, которые могут записываться в виде строки или документа. XML Web-службы удовлетворяют открытому стандарту SOAP, который в конечном итоге означает, что код объекта для платформы Windows может быть расширен для использования на любой другой платформе, которая поддерживает HTTP- или SOAP-запросы.
XML не предлагает никаких новых революционных способов изменения способов доступа к данным, а лишь иначе использует известные способы сбора и сохранения данных. Более подробная информация о применении компонентов XML с моделью ADO.NET предлагается в главе 10, "ADO.NET и XML".
Классы XML на платформе .NET
На платформе .NET язык XML применяется для повышения производительности, совместимости с открытыми стандартами и интеграции с ADO.NET. Для этого предусмотрены специализированные классы и пространства имен. Для перечисления всех имеющихся пространств имен, классов, методов, свойств, перечислений, интерфейсов и делегатов потребовалось бы привести огромную таблицу, что в целом было бы крайне неэффективным способом расходования пространства и времени. Вместо этого здесь и далее описывается несколько основных классов платформы .NET Framework, предназначенных для работы с XML. На основе этих классов далее приводится несколько примеров эффективного использования XML с иллюстрацией причин, по которым разработчики платформы .NET Framework из компании Microsoft создали их именно такими.
В этом разделе приводятся примеры выполнения задач, связанных с созданием приложений для XML, XSL, XSLT и XPATH. (В замечании из предыдущего раздела приводятся ссылки на некоторые ресурсы
Применение модели Document Object Model
С появлением модели Document Object Model (DOM) значительно упростилось создание динамически генерируемых Web-узлов, благодаря приданию дополнительных функциональных возможностей статическим элементами в документах HTML/XML. Простая строка кода document.location сценария JavaScript выполняет обход всех элементов Web-страницы, начиная с самого верха объекта document и заканчивая поиском свойства location. Этот способ программируемого доступа к объектам Web-страницы был в определенной степени революционным. Затем появился XML со строгими правилами и динамической объектной моделью, на основе которой автор документа определял корневой или родительский элемент.
В примерах оставшейся части главы с помощью утилиты SQLXML создается XML-документ с именем simple2.xml. Ручное кодирование больших HTML-страниц — это довольно скучное и утомительное занятие, при котором нужно тщательно следить за форматом всех данных. Однако XML обладает несомненным достоинством: нет необходимости беспокоиться о том, что в документ попадет какая-то дополнительная ненужная информация, как это обычно бывает при создании Web-страниц с помощью некоторых HTML-редакторов.
В листинге 9.4 приведен текст простого XML-документа simple2.xml. Расположение символов конца строки на самом деле не имеет никакого значения, потому что аналогично другим языкам программирования XML использует специализированные символы для обозначения строк. Например, в С++, Java и JavaScript для разделения строк используется точка с запятой, а в XML единой строкой считаются все символы между открывающим < и закрывающим дескрипторами.