Чтение онлайн

на главную

Жанры

Обработка баз данных на Visual Basic®.NET

Прайс Кевин Т.

Шрифт:

<?xml version='1.0'?>

<?xml:stylesheet type="text/xsl" href="#"?>

<People>

 <Person>

John Doe

 </Person>

 <Person>

Jane Doe

 </Person>

</People>

Обратите внимание, что страница стиля связана с XML-документом. С помощью .NET-классов для XML или MSXML-анализатора Visual Basic можно динамически изменять результаты с представлением

их в нескольких разных форматах (например, WML).

ЛИСТИНГ 9.3. Файл simple.xsl

<?xml version="1.0"?>

<HTML xmlns:xsl="http://www.w3.org/TR/WD-xsl">

 <xsl:for-each select="People/Person">

<font face="Arial">

<xsl:value-of select="."/>

</font>

 </xsl:for-each>

</HTML>

Строка 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. (В замечании из предыдущего раздела приводятся ссылки на некоторые ресурсы

с более подробным описанием этих технологий.) Как уже отмечалось, основная цель XML заключается в структурировании и описании данных. Для этого на платформе .NET Framework предусмотрены классы пространства имен System.xml. В приведенных далее примерах используются некоторые другие новые компоненты Visual Basic .NET, которые подробно комментируются.

Применение модели 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 единой строкой считаются все символы между открывающим < и закрывающим дескрипторами.

ЛИСТИНГ 9.4. Файл simple2.xsl

<?xml version="1.0" encoding="utf-8?>

<customer>

 <tblCustomer ID="1" FirstName="Carole" LastName="Vermeren"Address="6227 East Crossing Drive" City="Ocean Glen" State="NH" PostalCode="98609" Phone="6034485994" />

 <tblCustomer ID="2" FirstName="Cathy" LastName="Johnson" Address="West River Street" City= "Big Center" State="NC" PostalCode="18602" Phone="9193669205" />

 <tblCustomer ID="3" FirstName="Eric" LastName="Haglund" Address="9193 West Beach Street" City="Brown Heights" State="OK" PostalCode="83481" Phone="4059310689" />

 <tblCustomer id="4" FirstName="Julie" LastName="Ryan" Address="9161 Fort Beach Way" City="South Point" State="KY" PostalCode="26973" Phone="5025245220" />

 <tblCustomer ID="5" FirstName="Richard" LastName="Halpin" Address="9760 Happy River Street" City="North Lake" State="MN" PostalCode="62875" Phone="6124066311" />

 <tblCustomer ID="6" FirstName="Kathleen" LastName="Johnson" Address="9385 West Heights Street" City="Brown Towne" State="MI" PostalCode="59609" Phone="3138032214" />

 <tblCustomer ID="7" FirstName="Sorel" LastName="Polito" Address="2104 Brown Brook Drive" City="Blue Valley" State="MT" PostalCode="54401" Phone="4067260212" />

 <tblCustomer ID="8" FirstName="Sorel" LastName="Terman" Address="1920 West Point Street" City="Blue Bluffs" State="WI" PostalCode="08965" Phone="6086246867" />

Поделиться:
Популярные книги

Эффект Фостера

Аллен Селина
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Эффект Фостера

Жена моего брата

Рам Янка
1. Черкасовы-Ольховские
Любовные романы:
современные любовные романы
6.25
рейтинг книги
Жена моего брата

Штуцер и тесак

Дроздов Анатолий Федорович
1. Штуцер и тесак
Фантастика:
боевая фантастика
альтернативная история
8.78
рейтинг книги
Штуцер и тесак

Любовь Носорога

Зайцева Мария
Любовные романы:
современные любовные романы
9.11
рейтинг книги
Любовь Носорога

Возвышение Меркурия

Кронос Александр
1. Меркурий
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия

Мастер Разума III

Кронос Александр
3. Мастер Разума
Фантастика:
героическая фантастика
попаданцы
аниме
5.25
рейтинг книги
Мастер Разума III

Виконт. Книга 4. Колонист

Юллем Евгений
Псевдоним `Испанец`
Фантастика:
фэнтези
попаданцы
аниме
7.50
рейтинг книги
Виконт. Книга 4. Колонист

Перерождение

Жгулёв Пётр Николаевич
9. Real-Rpg
Фантастика:
фэнтези
рпг
5.00
рейтинг книги
Перерождение

Имперец. Том 1 и Том 2

Романов Михаил Яковлевич
1. Имперец
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Имперец. Том 1 и Том 2

Вечная Война. Книга II

Винокуров Юрий
2. Вечная война.
Фантастика:
юмористическая фантастика
космическая фантастика
8.37
рейтинг книги
Вечная Война. Книга II

Архонт

Прокофьев Роман Юрьевич
5. Стеллар
Фантастика:
боевая фантастика
рпг
7.80
рейтинг книги
Архонт

Смерть может танцевать 4

Вальтер Макс
4. Безликий
Фантастика:
боевая фантастика
5.85
рейтинг книги
Смерть может танцевать 4

Кодекс Охотника. Книга XVI

Винокуров Юрий
16. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XVI

Утопающий во лжи 3

Жуковский Лев
3. Утопающий во лжи
Фантастика:
фэнтези
рпг
5.00
рейтинг книги
Утопающий во лжи 3