Образовательный портал Claw.ru
Всё для учебы, работы и отдыха
» Шпаргалки, рефераты, курсовые
» Сочинения и изложения
» Конспекты и лекции
» Энциклопедии

Для форматирования результатов исполнения шаблона может быть использована 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

 </sql:query>

</my_root>

В нем используется та же схема преобразования, что и в предыдущем примере. Теперь попробуйте его вызвать (предположим, вы его сохранили под именем first_template.xml):

http://server/server_pubs/template/first_template.xml

Результат получается довольно странным: IE представляет HTML-документ (получаемый при трансформации) в формате XML. Делает он это на вполне законных основаниях, и чтобы результат выдавался все-таки в формате HTML, нужно явно указать тип выходного потока. Это легко сделать с помощью параметра contenttype.

http://server/server_pubs/template/first_template.xml?contenttype=text/html

Достоинства шаблонов очевидны:

Так как шаблон находится на сервере, вы полностью контролируете его содержимое;

Шаблоны намного проще в использовании;

Тело шаблона и используемая схема преобразования скрыты от пользователя;

Шаблоны можно динамически изменять или создавать, что придает интернет-серверу дополнительную гибкость;

С помощью шаблонов можно выполнять запросы XPath, но об этом уже в следующем разделе.

В шаблонах можно использовать следующие атрибуты (рассмотрены наиболее используемые):

client-side-xml – Булева переменная, принимающая значение 0 или 1. Если указывается 1, то при выборке используется форматирование XML-документа на клиенте. Т.е. SQL Server выполняет обычный запрос, передает рекордсет клиенту, и уже там производится формирование документа. Более подробно клиентские курсоры будут рассмотрены в разделе ADO и XML.

ПРИМЕЧАНИЕ

В данном случае клиентом является компьютер, откуда поступает запрос к SQL Server-y, то есть машина, где расположен SQLXMLOLEDB-провайдер. В случае использования ADO – это машина клиента. В случае использования шаблонов – сервер IIS.

nullvalue – позволяет задавать строку, которая в URL-запросе и запросе XPath будет означать NULL.

is-xml – атрибут параметра, принимающий значение 0 и 1, используется в разделе header. По умолчанию он равен 1. Это означает, что значение параметра интерпретируется как фрагмент xml, поэтому, например, < не заменяется. Если задано значение 0, параметр интерпретируется как обычный текст.

Назначение других атрибутов можно найти в MSDN.

Запросы XPath

XPath не рассчитан на работу с реляционными данными. Чтобы использовать XPath-запросы для выборки реляционных данных, необходимо создать схему данных XDR или XSD. XDR была разработана несколько лет назад при активном участии Microsoft, т.к. в то время необходимость в схемах данных была, а, по существу, самих схем не было. С появлением XSD популярность и актуальность применения XDR начали падать.

ПРИМЕЧАНИЕ

Спецификацию XSD можно найти в [5].

Схема данных выполняет две важные функции: задает структуру будущего XML-документа и определяет, какие поля и таблицы должны использоваться при выполнении запроса XPath. Такие схемы называются аннотированными схемами запросов, а атрибуты, связывающие объекты базы данных с XML-узлами – аннотациями. До выхода в свет SQLXML 2.0 можно было использовать только аннотированные схемы на основе SDR [6]. Однако сейчас лучше использовать аннотированные схемы на основе спецификации XSD [7]. Некоторую информацию по преобразованию схем из XDR в более новый формат XSD можно найти в [8].

Вот синтаксис шаблонов с использованием запросов XPath:

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

 <sql:header>

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

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

 </sql:header>

 <sql:xpath-query mapping-schema="your_schema.xml">

  XPath query

 </sql:xpath-query>

</your_root>


Рекомендуем скачать другие рефераты по теме: права человека реферат, реферат влияние.


Категории:




Предыдущая страница реферата | 16  17  18  19  20  21  22  23  24  25  26 |


Поделитесь этой записью или добавьте в закладки

   



Рефераты от А до Я


Полезные заметки

  •