Базы данных Oracle - статьи

         

Встроенный сервлет DBURIServlet


Сервлет DBURIServlet написан на C и готов для употребления при установленном репозитарии по адресу /oradb/схема_БД/имя_таблицы[...]. Тем не менее он параметризован, и поэтому представляет интерес для конечных потребителей БД.

Пример обращения:

Правила формирования адреса соответствуют правилам типа DBURITYPE.

Упражнение. Проверить работу сервлета DBURIServlet на следующих обращениях:

Сервлет DBURIServlet имеет параметры:

  • rowsettag - для смены имени корневого элемента, например:
  • contenttype - для указания типа MIME, например:
  • transform - для преобразования текста XML средствами XSLT.

Зарегистрируем в качестве ресурса /public/dept.xsl следующий текст:

<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > <xsl:output method="html" />

<xsl:template match="ROW"> <tr> <td><xsl:value-of select="DEPTNO"/></td> <td><xsl:value-of select="DNAME"/></td> <td><xsl:value-of select="LOC"/></td> </tr> </xsl:template>

<xsl:template match="DEPT"> <html><head></head><body><title>Departments</title> <table border="3" bordercolor="green">

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

</table> </body></html> </xsl:template>

</xsl:stylesheet>

Теперь обращение к XML DB по адресу:

даст следующий результат:

Текст с определением преобразования XSLT можно разместить и в таблице БД, обратившись за ним опять-таки через DBURITYPE примерно так:

transform=/oradb/SCOTT/XSLTDEFS/ROW[TAB='DEPT']/DEFINITION/text()

Упражнение. Создать таблицу XSLTDEFS с определением преобразования XSLT для таблицы DEPT (столбец TAB для имени таблицы и столбец DEFINITION для текста преобразования) и указать сервлету взять данные преобразования оттуда, а не из ресурса XML DB. Указание: поле DEFINITION определить типом VARCHAR2.

Прочие свойства сервлета приведены в документации по XML DB.



Содержание раздела