Обработка баз данных на Visual Basic®.NET
Шрифт:
В настоящее время описанию XML посвящено много книг и ресурсов. Поэтому вместо подробного рассмотрения этой темы основное внимание в этой главе уделяется вопросам интеграции XML с платформой .NET. Читатели, которые хорошо знакомы с основами XML, могут пропустить обзорные разделы вплоть до раздела с описанием классов XML для платформы .NET.
Обзор XML
Язык XML предназначен только для работы с данными. Точнее говоря, он предназначен для создания набора сведений, или метаданных, которые описывают данные. Рассмотрим приведенный ниже простой фрагмент кода
Этот фрагмент содержит определение элемента form с атрибутами name, action и method. Атрибуты описывают отдельные элементы формы, сообщают Web-броузеру о выполняемых с ней действиях и являются простейшим примером метаданных. Обратите внимание на замыкающий дескриптор </form>, который обозначает конец контейнера элементов формы. В данном примере form – это универсальный контейнер с универсальными элементами. Экземпляр контейнера form образуется при размещении данных в его структуре.
В приведенном ниже коде показан способ использования элементов и атрибутов XML для описания конкретного фрагмента данных. В нем создается профиль пользователя, который сохраняется в виде узла. Узел (или элемент) Person содержит атрибуты, которые описывают данного пользователя.
Обратите внимание, что вся информация, независимо от конкретного пользователя, хранится в элементе Person. Любое приложение, которое может анализировать данные в формате XML (а это подвластно практически любому современному коммерческому приложению для работы с данными), способно извлечь из этого кода сведения о пользователе: имя, фамилию, адрес и номер телефона. Кроме того, поскольку с этим пользователем никакие другие данные не связаны, все сведения заканчиваются замыкающим дескриптором </Person>. В формате XML к синтаксису предъявляются очень строгие требования, например если не указать замыкающий дескриптор или пропустить какой-то элемент, то чтение всего документа может закончиться неудачей.
Семантика XML интересна тем, что на элемент можно ссылаться как на узел и наоборот. В некоторых публикациях элемент также называют дескриптором. Во избежание путаницы здесь и далее используются только термины "элемент" и"узел".
Элементы не только могут иметь атрибуты, но и подчиненные элементы; аналогично, подчиненные элементы могут иметь свои собственные атрибуты, как показано в листинге 9.1.
Как видите, элемент Person здесь нужно закрыть
Языку XML посвящено множество материалов, опубликованных в печатных изданиях и в Internet. Прекрасное введение в XML можно найти по адресу:Вот несколько других адресов Web-узлов, которые содержат наиболее полные сведения по этой теме:
• Web-узел консорциума World Wide Web Consortium содержит официальные и хорошо документированные спецификации XML;
• Web-узел компании Microsoft содержит постоянно обновляемые ресурсы, которые охватывают все вопросы использования XML и родственных технологий с программными продуктами Microsoft;
• Web-узел компании TopXML/VBXML.com предлагает разные ресурсы и примеры кодов для работы с технологией XML.
Семейство технологий XML
Язык XML не одинок и сосуществует с несколькими другими родственными технологиями.
• XML Path Language (XPATH) предлагает способ извлечения информации из XML-документа. Хотя синтаксис XPATH радикально отличается от синтаксиса XML, он работает аналогично SQL-запросам.
• Extensible StyleSheet Language Transformations (XSLT) предлагает способ преобразования (т.е. вставки, удаления или изменения) данных XML-документа в данные, которые могут использоваться в другом XML-документе. XSLT может использовать технологию XPATH для извлечения преобразуемых данных.
• Extensible StyleSheet Language (XSL) — это XSLT плюс объекты, которые позволяют разработчику описывать способ отображения информации в броузере или другом XSL-совместимом приложении.
• Document Object Model (DOM) содержит стандартный набор функций, которые позволяют программными средствами извлекать данные из XML- или HTML-документа.
• Simple Object Access Protocol (SOAP) – это спецификация вызовов Web-служб или других Web-ориентированных приложений и служб, а также форматирования отклика. Более подробно SOAP рассматривается в главе 12, "Web-службы и технологии промежуточного уровня".
РИС. 9.1. Иерархия технологий XML, XSL, XSLT u XPATH
На рис. 9.1 показана взаимосвязь между технологиями XML, XSL, XSLT и XPATH в приложении на основе XML. (Более подробно такие приложения рассматриваются далее, в разделе о классах XML на платформе .NET.) Обратите внимание, что XML-документ является источником данных, т.е. содержит отображаемые в приложении данные. XPATH-запрос элементов People/Person используется для сбора сведений обо всех элементах Person из XML-документа. XSL-стиль окружает данные элементами с указанием шрифта с помощью XSL-страницы стиля. После анализа и обработки полученный результат возвращается в формате HTML.
Учтите, что XML имеет очень строгие правила, причем все имена нужно приводить с учетом регистра символов.
Для демонстрации этой взаимосвязи вставьте код из листингов 9.2 и 9.3 в файлы simple.xml и simple.xsl, которые располагаются в одном каталоге. Откройте файл simple.xml в Web-броузере Internet Explorer версии 6.0 или выше. Результат выполнения этих действий будет иметь вид, представленный на рис. 9.1.