Рейтинговые книги
Читем онлайн Обработка баз данных на Visual Basic®.NET - Джеффри Мак-Манус

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 67 68 69 70 71 72 73 74 75 ... 88

Применение XML, XSLT и SQLXML для создания отчета

Попробуем теперь применить описанные ранее сведения в практической ситуации, например для создания списка адресов клиентов. Как будет показано далее, изменение HTML-содержимого с помощью XSL-файла не вызывает больших трудностей. Поэтому такой способ часто применяется для форматирования страниц, которые предполагается распечатать, или вместе с JavaScript/ASP.NET для повышения функциональности и надежности.

SQL Server предоставляет данные в формате XML, а для сохранения запроса используется шаблон в файле noveltytemplate.xml. Единственным назначением этого файла является сбор данных и присвоение страницы стиля.

<?xml version =1.0' encoding='UTF-8 '?>

<root xmlns:sql='urn:schemas-microsoft-com:xml-sql' sql:xsl='noveltyxsl.xsl' >

 <sql:query>

  SELECT FirstName, LastName, Address, City, State FROM tblCustomer FOR XML AUTO

 </sql:query>

</root>

В первой строке задается базовый XML-документ и способ связывания со страницей стиля, который аналогичен применению элемента xml:stylesheet в листинге 9.2. Следующий элемент sql:query является контейнером команды SQL или выполняемого запроса. Предложение FOR XML AUTO сообщает SQL Server о возвращении результатов в формате XML. В шаблоне предполагается, что корневой элемент называется root, поэтому его не нужно указывать в шаблоне запроса.

НА ЗАМЕТКУ

Для динамического присвоения страницы стиля с помощью SQLXML нужно добавить в URL-указатель параметр запроса xsl= и указать используемый файл в формате http://имя_компьютера/виртуальный_каталог_шаблонов/имя_шаблона.xml?xsl=имя файла_стиля.xsl.

 В листинге 9.7 показана страница стиля XSL, которая используется для создания итогового XML-документа. Для указания атрибута в ней применяется технология XPATH. С помощью синтаксиса CSS и HTML создается формат представления извлеченной информации в окне Web-броузера.

ЛИСТИНГ 9.7. Файл noveltyxsl.xsl

<?xml version='1.0' encoding='UTF-8'?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

 <xsl:template match = '*'>

  <xsl:apply-templates />

 </xsl:template>

 <!-- Имя запрашиваемой таблицы извлекается из дочерних элементов. -->

 <xsl:template match = 'tblCustomer'>

  <TR>

   <!-- Обратите внимание на использование XPATH для сбора данных из полей. -->

   <TD><xsl:value-of select='@FirstName' /></TD>

   <TD><xsl:value-of select='@LastName' /></TD>

   <TD><xsl:value-of select='@Address' /></TD>

   <TD><xsl:value-of select='@City' /></TD>

   <TD><xsl:value-of select='@State' /></TD>

  </TR>

 </xsl:template>

 <xsl:template match = '/'>

  <HTML>

   <HEAD>

    <STYLE>th {background-color: #000080; color: #ffffff;} td {font-family: Arial} </STYLE>

   </HEAD>

   <BODY>

    <TABLE border='1' style='width:600;'>

     <TR><TH colspan='9' >Customers</TH></TR>

     <TR>

      <TH>First name</TH>

      <TH>Last name</TH>

      <TH>Address</TH>

      <TH>City</TH>

      <TH>State</TH>

     </TR>

     <xsl:apply-templates select = 'root' />

     </TABLE>

    </BODY>

   </HTML>

  </xsl:template>

</xsl:stylesheet>

Разместите оба файла (noveltytemplate.xml и noveltyxsl.xsl) в подчиненном каталоге templates виртуального Web-каталога Novelty, который описывается в предыдущем разделе. После этого откройте Web-броузер Internet Explorer версии 6.0 или выше и введите в нем следующий URL-указатель:

http://localhost/Novelty/templates/noveltytemplate.xml?contenttype=text/html

 Параметр contenttype используется для указания формата представления конечного результата, т.е. в виде HTML-страницы. После выполнения описанных действий данные в окне Web-броузера будут иметь такой вид, как на рис. 9.14.

РИС. 9.14. Результат представления данных с помощью XML-шаблона и технологии XSL

Резюме

В этой главе представлены базовые сведения о языке XML и его назначении. Здесь демонстрируются способы применения XML на платформе.NET Framework и взаимодействия XML с Visual Basic.NET. В конце главы показан способ конфигурирования Web-сервера IIS и СУБД SQL Server 2000 для представления информации в виде XML-документов, на основе которых можно легко создавать HTML-страницы. Большая часть приведенной здесь информации играет роль введения в главу 10, "ADO.NET и XML".

Вопросы и ответы

Что означает "создание схемы" в контексте XML?

В контексте баз данных "создание схемы" означает создание документа с определениями объектов и сущностей. В контексте XML это понятие может быть расширено и охватывать другие сведения, например определение поля без неопределенных значений (NOT NULL) в таблице базы данных.

Что произойдет, если для названия элемента в 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.

1 ... 67 68 69 70 71 72 73 74 75 ... 88
На этой странице вы можете бесплатно читать книгу Обработка баз данных на Visual Basic®.NET - Джеффри Мак-Манус бесплатно.

Оставить комментарий