Стивен Холзнер - XSLT

Тут можно читать онлайн Стивен Холзнер - XSLT - бесплатно полную версию книги (целиком) без сокращений. Жанр: Интернет, издательство Питер, год 2002. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Стивен Холзнер - XSLT краткое содержание

XSLT - описание и краткое содержание, автор Стивен Холзнер, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Эта книга посвящена XSLT — мощным и удобным системам преобразования документов. В ней не только рассматривается весь синтаксис XSLT, от основ до специальных аспектов, но и подробно излагаются современные способы использования XSLT.

Вы найдете сотни практических примеров, таких как осуществление преобразований XSLT на web-cepвepax, подключение к базам данных и использование браузеров для осуществления преобразований на лету.

Книга рассчитана на всех, кто хочет изучать XSLT и использовать его на практике

XSLT - читать онлайн бесплатно полную версию (весь текст целиком)

XSLT - читать книгу онлайн бесплатно, автор Стивен Холзнер
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать
Листинг 10.10. xtjava.java, взаимодействие XT с Java

import java.io.IOException;

import java.io.OutputStream;

import java.io.FileOutputStream;

import org.xml.sax.SAXException;

import com.sun.xml.tree.XmlDocument;

import com.jclark.xsl.dom.Transform;

import com.jclark.xsl.dom.Transform Engine;

import com.jclark.xsl.dom.TransformException;

import com.jclark.xsl.dom.XSLTransformEngine;

class xtjava {

public static void main(String[] args)

throws IOException, SAXException, TransformException {

XmlDocument XMLdoc =

new XmlDocument().createXmlDocument(args[0]);

XmlDocument XSLdoc =

new XmlDocument().createXmlDocument(args[1]);

XmlDocument newdoc = new XmlDocument();

XSLTransformEngine transformEngine = new XSLTransformEngine();

Transform transform = transformEngine.createTransform(XSLdoc);

transform.transform(XMLdoc, newdoc);

OutputStream out = new FileOutputStream(args[2]);

newdoc.write(out);

out.close();

}

}

Чтобы запустить пример, включите xt.jarи xml.jarв classpath:

C:\>set classpath=.;d:\xt\xt.jar;xml.jar

Скомпилируйте теперь xtjava.javaкомпилятором Java javacи запустите на выполнение следующим образом, передав URL документов XML и XSL (можно передать и URL файлов, как было показано ранее):

C:\>java xtjava http://www.starpowder.com/planets.xml http://www.starpowder.com/planets.xsl planets.html

Теперь все сделано.

Преобразование XML в реляционную базу данных

При обсуждении дополнительных возможностей XSLT стоит упомянуть элементы расширения SQL процессора Saxon. Через драйвер Java Database Connectivity (JDBC) можно работать с реляционными базами данных. Мы уже рассмотрели преобразования из XML в XML, в простой текст, в RTF, в JavaScript и т.д. Теперь пришла очередь преобразованию XML в реляционную базу данных.

РАБОТА С ИНТЕРПРЕТИРУЕМЫМ SAXON

Обратите внимание: для связи с базами данных через JDBC нельзя использовать исполняемый файл для Windows saxon.exe. Нужно запустить реализующий Saxon класс Java com.id.saxon.StyleSheet, как я сделаю в конце примера.

В примере я передам данные planets.xmlв базу данных формата Microsoft Access planets.mdb. Если вы хотите повторить пример, создайте этот файл базы данных, в нем — таблицу planetsс четырьмя текстовыми полями Name, Mass, Radiusи Day, а оставшуюся часть файла оставьте пустой. В Windows я зарегистрирую этот файл базы данных в качестве источника ODBC с именем «planets» через значок Data Sources (ODBC)(Источники данных (ODBC)) в панели управления (в Windows 2000 он расположен в панели управления в папке Administrative Tools(Администрирование)). При запуске пример считает данные планет из planets.xmlи добавит их в файл базы данных, planets.mdb.

Для подключения к этой базе данных через JDBC я применил элемент процессора Saxon. Префикс пространства имен sqlопределяется в Saxon следующим образом:

xmlns:sql="http://icl.com/saxon/extensions/com.icl.saxon.sql.SQLElementFactory"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.1">

.

.

.

Для фактического подключения к источнику данных planetsслужит элемент расширения с атрибутами database, user, passwordи driver. Для работы через JDBC установите атрибут driverв « sun.jdbc.odbc.JdbcOdbcDriver», атрибут database— в источник данных ODBC, « jdbc:odbc:planets», а атрибуты userи password— в имя пользователя и пароль, нужные для подключения к базе данных. Здесь нам не требуется задавать имя пользователя и пароль, но я задал этим параметрам шаблонные значения, так как они требуются в большинстве приложений баз данных:

xmlns:sql="http://icl.com/saxon/extensions/com.icl.saxon.sql.SQLElementFactory"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.1">

password="{$password}" driver="sun.jdbc.odbc.JdbcOdbcDriver"

xsl:extension-element-prefixes="sql"/>

.

.

.

Затем я подключаюсь к источнику данных planets. Я хочу вставить в базу данных данные из каждого элемента , для чего я создаю новый шаблон, который выбирает элементы и вставляет данные в таблицу planetsбазы данных при помощи элемента Saxon :

xmlns:sql="http://icl.com/saxon/extensions/com.icl.saxon.sql.SQLElementFactory"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.1">

.

.

.

password="{$password}" driver="sun.jdbc.odbc.JdbcOdbcDriver"

xsl:extension-element-prefixes="sql"/>

.

.

.

Элемент вставляет в базу данных новую запись. Чтобы присвоить ее полям новые данные, используйте элемент , установив его атрибут name в имя столбца, в который вы хотите записать данные, и присвоив эти данные атрибуту select:

xmlns:sql="http://icl.com/saxon/extensions/com.icl.saxon.sql.SQLElementFactory"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.1">

.

.

.

В идеале этого должно быть достаточно, но при работе с самым последним драйвером Access в конце операции Saxon не сбрасывает все буфера данных. Это значит, что данные о последней планете в planets.xml, Земле, не будут отправлены в базу данных. Чтобы сбросить буферы данных, я явно вызываю шаблон как именованный шаблон, применяя с данными-заглушкой (листинг 10.11).

Листинг 10.11. Работа с реляционной базой данных

xmlns:sql="http://icl.com/saxon/extensions/com.icl.saxon.sql.SQLElementFactory"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.1">

password="{$password}" driver="sun.jdbc.odbc.JdbcOdbcDriver"

xsl:extension-element-prefixes="sql"/>

xsl:extension-element-prefixes="sql">

xsl:extension-element-prefixes="sql">

Эта таблица стилей правильно добавляет три записи в базу данных planets.mdb: по одной новой записи для каждой из планет. Как я говорил, здесь нельзя использовать готовый исполняемый файл saxon.exe, нужно применять класс Java com.icl.saxon.StyleSheet. Сначала нужно включить в classpathфайл saxon.jar:

C:\>set classpath=.;c:\saxon\saxon.jar

После этого я могу передать в класс com.icl.saxon.StyleSheetфайл planets.xmlи таблицу стилей из листинга 10.11:

C:\>java com.icl.saxon.StyleSheet planets.xml saxonsql.xsl

Теперь все сделано — данные планет вставлены в planets.mdb. Результаты применения этой таблицы стилей показаны на рис. 10.4, где я открыл planets.mdbв Microsoft Access. Таким образом, мы рассмотрели преобразование из XML в реляционную базу данных.

Рис 104Применение расширений SQL Saxon Еще один аспект XSLT в котором вам - фото 34

Рис. 10.4.Применение расширений SQL Saxon

Еще один аспект XSLT, в котором вам потребуется программирование, это поддержка XSLT на серверах. В качестве демонстрации далее я преобразую planets.xmlпри помощи planets.xslс использованием активных серверных страниц (Active Server Pages, ASP) фирмы Microsoft, серверных страниц Java (Java Server Pages, JSP) фирмы Sun и сервлетов (servlet) Java, выполняющихся на web-серверах и возвращающих результирующий документ браузеру пользователя.

За недостатком места мы не можем подробно рассмотреть эти технологии, и если вы с ними не знакомы, вы можете получить дополнительную информацию в Интернете (как всегда, URL могут измениться):

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Стивен Холзнер читать все книги автора по порядку

Стивен Холзнер - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




XSLT отзывы


Отзывы читателей о книге XSLT, автор: Стивен Холзнер. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x