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

</html>

</xsl:template>

</xsl:stylesheet>

Более подробную информацию о XSL можно найти в [4].

В ответ на следующий URL-запрос вы получите преобразованный XML-документ.

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&xsl = xsl_for_query.xsl

На самом деле работа с URL-запросами интересна только первые несколько минут. Действительно, очень неудобно возиться со строкой адреса и бесконечными символами процента в ней, к тому же URL-запросы не очень хороши в смысле безопасности. Альтернативой им являются шаблоны.

Шаблоны

Шаблоны в контексте этой статьи являются обычными XML-документами, составленными по определенным правилам. Основным их содержанием является SQL-запрос или вызов хранимой процедуры. Шаблоны также используются для запросов XPath, однако их я коснусь чуть позже. Параметры шаблона задаются в URL-строке. Если они там не указаны, берутся значения по умолчанию из соответствующих тегов <param>.

Шаблоны хранятся на сервере, поэтому в смысле безопасности их использование намного предпочтительнее, чем URL-запросов. Чтобы ISAPI-расширение, которое их обрабатывает, поняло, что вы вызываете шаблон, его нужно поместить в свой виртуальный каталог. Обычно он называется template. Настроить его можно в упоминавшемся ранее мастере "Configure SQL XML Support in IIS" на закладке Virtual Names.

Структура шаблона выглядит так:

<?xml version="1.0" ?>

<your_root xmlns:sql="urn:schemas-microsoft-com:xml-sql"

sql:xsl="xsl file name">

<xql:header>

<xql:param name="your_param_name"> param_value </sql:param>

<xql:param name="your_param_name"> param_value </sql:param>...n

</xql:header>

<sql:query>

любое SQL-выражение

</sql:query>

</your_root>

Для форматирования результатов исполнения шаблона может быть использована XSL-трансформация. Для этого необходимо задать атрибут xsl, значение которого есть относительный или полный путь до файла, содержащего шаблон трансформации. Атрибут xsl необязателен, как и раздел header.

Вот как будет выглядеть шаблон, основанный на изрядно уже поднадоевшем вам запросе.

<?xml version="1.0" ?>

<my_root xmlns:sql="urn:schemas-microsoft-com:xml-sql"

sql:xsl="xsl_for_query.xsl">

<sql:query>

select au_fname,au_lname,address

from authors where au_fname like 'M%' for xml raw

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