Реферат: Использование XML совместно с SQL

Итак, предположим, вы сконфигурировали виртуальный каталог для использования базы данных PUBS и назвали его server_pubs. Положим, ваш компьютер называется server. Попробуем написать первый URL-запрос:

http://server/server_pubs/?sql=select au_fname, au_lname, address from authors where au_fname like 'M%' for xml raw

Но не все так просто. Ответ будет таким:

XML document must have a top level element.

Первый блин, как всегда, комом! Дело в том, что XML-документ, формируемый SQL Server’ом, не имеет главного корневого элемента, без которого документ не может считаться правильно оформленным. Для указания корневого элемента нужно добавить параметр root.

http://server/server_pubs/?sql=select au_fname,au_lname,address from authors where au_fname like 'M%' for xml raw&root=my_root

В ответ будет выдано:

Incorrect syntax near 'M'.

Что ж, опытные пользователи, наверное, сразу бы приметили знак процента в запросе. Он является зарезервированным символом в имени URL, его код равен 25. Учитывая это, перепишем запрос так:

http://server/server_pubs/?sql=select au_fname,au_lname,address from authors where au_fname like 'M%25' for xml raw&root=my_root

Ура! Получилось. Результат будет примерно таким же, как в самом первом примере этой статьи.

На случай, если вам нужно получить результаты в виде обычного HTML, можно создать шаблон преобразования на языке XSL и указать еще один параметр в URL – xsl. В качестве значения параметра нужно указать путь относительно выбранной вами виртуальной директории.

Составим шаблон трансформации:

<?xml version="1.0" ?>

<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 = "row">

<li>

<table><tr>

<td><xsl:value-of select = "attribute::au_fname" /></td>

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

<td>Address: <xsl:value-of select = "attribute::address" /></td>

</tr></table>

</li>

</xsl:template>

<xsl:template match = "/">

<html>

<body>

<ul>

<xsl:apply-templates select = "my_root" />

</ul>

К-во Просмотров: 544
Бесплатно скачать Реферат: Использование XML совместно с SQL