(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Создание серверных XSQL-страниц

Источник: oracloid

Используя утилиты из Oracle XML Developer's Kit, вы можете создавать динамические XML-страницы на основе SQL-запросов.

Oracle8 i содержит компоненты и утилиты, включая XSQL Servlet, которые позволяют использовать технологию XML в создаваемых вами приложениях для работы с базами данных. Следующий фрагмент из книги Oracle XML Handbook (Oracle Press 2000) расскажет, как это можно сделать.

Архитектура XSQL-страниц

XSQL Servlet - это средство, обрабатывающее SQL-запросы и поставляющее результирующие наборы данных в виде XML-документов. Этот процессор работает как Java Servlet, и в результате его работы получается XML-файл, содержащий в себе SQL-запрос. Он использует Oracle's XML Developer's Kit для осуществления большинства этих операций.

Использовать XSQL Servelt можно с любым Web-сервером, который поддерживает Java-сервлеты. Данные направляются от клиента к сервлету и возвращаются клиенту. Последовательность событий такова:

  • Пользователь в браузере задает адрес (URL), который обрабатывается и передается Java Web-сервером для XSQL Servelt. Адрес (URL) содержит имя конечного XSQL-файла (.xsql) и, возможно, набор параметров, таких как: значения и имя стиля. Кроме того, пользователь может вызвать XSQL Servelt из командной строки, минуя браузер и Java Web-сервер.
  • Сервлет передает XSQL-файл XML Java -разборщику, который разбирает XML и создает API для доступа к содержанию документа.
  • Процессор страниц (это компонент сервлета) использует API для передачи XML-параметров и SQL-выражений (находящихся между тегами "xsql:query" и "/xsql:query"). Кроме того, процессор страниц передает любые XSL-операторы XSLT-процессору.
  • Процессор страниц создает DOM (Document Object Model - объектная модель документа), посылая SQL-запрос под управлением Oracle8 i , который возвращает результат запроса. Результат размещается в XML-файле на месте, которое отмечено тегом "xsql:query".
  • Если это необходимо, результат запроса и любые другие XML-данные трансформируются XSLT-процессором с использованием заданных стилей. Данные могут быть преобразованы в HTML или любые другие форматы, определенные стилем. XSLT-процессор может выборочно применять различные стили, имея в виду тип клиента, который сделал исходный URL-запрос. Информация о клиенте получается от него посредством HTTP-запроса.
  • XSLT-процессор передает готовый документ обратно на браузер клиента, который в свою очередь отображает его пользователю.

Установка XSQL Servelt

Вы можете установить и настроить XSQL Servelt на различных Web-серверах, таких как Oracle8 i Lite Web-to-Go Server, Apache 1.3.9 (с JServ 1.0), и Sun JavaServer Web Development Kit (JSWDK) 1.0.1 Web Server.

В этой части мы рассмотрим установку XSQL Servelt на Apache 1.3.9 Web-сервер. Основные этапы установки следующие:

Этап 1: Правка CLASSPATH.

Убедитесь что все, необходимые для запуска XSQL Servelt, JAR- файлы прописаны в CLASSPATH для исполнительного механизма (runtime engine) Apache JServ. Вы должны добавить следующие строки в файл jserv.properties:

# Oracle XSQL Servlet
wrapper.classpath=C:\xsql\lib\oraclexsql.jar
# Oracle JDBC (8.1.5)
wrapper.classpath=C:\xsql\lib\classes111.zip
# Oracle XML Parser V2 (with XSLT Engine)
wrapper.classpath=C:\xsql\lib\xmlparserv2.jar
# XSQLConfig.xml File location
wrapper.classpath=C:\xsql\lib

Этап 2: Регистрация .xsql

Зарегистрируйте расширение .xsql для доступа к Java servlet class, который называется oracle.xml.xsql.XSQLServlet. Вы должны добавить следующие строки в файл конфигурации mod_jserv.conf

# Executes a servlet passing filename with proper extension
# property of servlet request.
# Syntax: ApJServAction [extension] [servlet-uri]
# Defaults: NONE
# Notes: This is used for external tools.
#ApJServAction .jsp /servlets/nl.nmg.jsp.JSPServlet
ApJServAction .xsql /servlets/oracle.xml.xsql.XSQLServlet

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

Преобразование SQL-запросов в динамические XML-документы

Oracle XSQL-страницы (pages) - это XML-страницы (datapages) с размещенными в них SQL-запросами для получения или вставки данных. Вы можете сделать XSQL-страницу, если исправите свой XML-файл, вставив тег "xsql:query" в месте, где должен исполняться SQL. Тег "xsql:query" будет заменен выходными данными XML в запросе.

XSQL Servelt использует файл конфигурации XSQLConfig.xml для доступа и подключения к базе данных. Простейший файл конфигурации выглядит следующим образом:

"?xml version="1.0" ?"
"XSQLConfig"
"connectiondefs dumpallowed="no""
"connection name="demo""
"username"scott"/username"
"password"tiger"/password"
"dburl"jdbc:oracle:thin:@localhost:1521: ORCL"/dburl"
"driver"oracle.jdbc.driver.OracleDriver "/driver"
"/connection"
"/connectiondefs"
:
"/XSQLConfig"

Вы можете определить дополнительные элементы подключения для идентификации различных пользователей или для использования разных драйверов JDBC. XSQL Servelt ищет атрибут "connection" в вашем корневом XML-документе, это значение должно содержать название подключения, описанного в файле конфигурации.

Использавание тега "xsql:query" можно показать так:

"?xml version="1.0"?"
"xsql:query xmlns:xsql="urn:oracle-xsql" connection="demo""
SELECT 'Hello World' AS "GREETING" FROM
DUAL
"/xsql:query"

Этот XSQL-код создаст следующий XML-документ:

"?xml version = '1.0'?"
"ROWSET"
"ROW id="1""
"GREETING"Hello World"/GREETING"
"/ROW"
"/ROWSET"

Вы можете преобразовать XML-документ в другие формы XML-документов или в HTML. Можно также подключить внешние стили в XSQL-коде, используя следующую инструкцию:

"?xml-stylesheet type="text/html" href="transform.xsl"?"

Вы можете использовать объектно-ориентированные запросы в своих XSQL-страницах. Вы также можете использовать URL для передачи параметров для этих страниц. Например, вы можете использовать объекно-ориентированные возможности Oracle8 i для создания пользовательского объектного типа POINT. Можно объявить этот новый тип POINT, как тип данных столбца ORIGIN в таблице LOCATIONS, используя следующие DDL-выражения.

CREATE TYPE POINT AS OBJECT (X NUMBER, Y NUMBER);
CREATE TABLE LOCATION (
NAME VARCHAR2(80),
ORIGIN POINT
);

Можно вставить строку в таблицу LOCATION, используя выражение INSERT с конструктором POINT():

SQL" INSERT INTO LOCATION VALUES ('Someplace', POINT(11,17) );
SQL" COMMIT;

Теперь вы можете использовать XSQL-страницу, как следующий point.xsql для запроса по таблице LOCATION, используя параметр x-coord.

"xsql:query connection="demo"
xmlns:xsql="urn:oracle-xsql""
SELECT name, origin
FROM location loc
WHERE loc.origin.x = {@x-coord}
"/xsql:query"

Используя следующий URL, можно получить все значения, для которых значение параметра x-coord равно 11.http://yourmachine.com/xsql/demo/point.xsql?
x-coord=11
"ROWSET"
"ROW num="1""
"NAME"Someplace"/NAME"
"ORIGIN"
"X"11"/X"
"Y"17"/Y"
"/ORIGIN"
"/ROW"
"/ROWSET"

В предыдущем примере хорошо видно, как параметры X и Y столбца ORIGIN, имеющего тип данных POINT, автоматически превращаются в элементы "X" и "Y" XML-файла.

Поддержка тегов XSLT в XSQL

XSQL-страницы Oracle привлекают тем, что позволяют собирать динамические XML-таблицы, основанные на одном или более параметрических SQL- запросах. Процессор, используя XSLT- трансформер для страниц, выводит результат в любом желаемом формате XML, HTML или текстовом. Тем не менее, можно использовать XSLT для формирования XML-страниц. Например, можно использовать XSLT для исполнения SQL запросов c условиями заданными тегами "xsl:choose" или "xsl:if". Следующий пример показывает как использовать тег "xsl:if" для нахождения полной или детальной информации в списке книг:

"?xml version="1.0"?"
"xsql:query connection="demo" xmlns:xsql="urn:oracle-xsql"
xmlns:xsl="http://www.w3.org/1999/XSL /Transform""
"xsl:if test="$detail = 'yes'""
SELECT * FROM scott.BookList
"/xsl:if"
"xsl:if test="$detail = 'no'""
SELECT Title, Authorname FROM scott.BookList"/xsql:query"
"/xsl:if"
"/xsql:query"

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 21.04.2008 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Oracle Database Personal Edition Named User Plus Software Update License & Support
Oracle Database Standard Edition 2 Processor License
Oracle Database Standard Edition 2 Named User Plus License
Oracle Database Personal Edition Named User Plus License
Stimulsoft Reports Server Team 10 users
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
Мир OLAP и Business Intelligence: новости, статьи, обзоры
Delphi - проблемы и решения
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100