Книга: XSLT
Взаимодействие XT с Java
Взаимодействие XT с Java
Процессор XT также может работать с Java. API XT спроектирован для работы с классами, определенными в Project X TR2 фирмы Sun, которые поддерживают обработку XML. Вам будет необходим файл xml.jar
фирмы Sun, который можно получить, загрузив Project X TR2. Чтобы получить xml.jar
, необходимо зарегистрироваться на web-узле разработчиков Sun, http://developer.java.sun.com, что, к счастью, бесплатно, хотя и потребует от вас заполнения изрядного количества форм.
Файл xml.jar
нужен для класса com.sun.xml.tree.XmlDocument
. Этот класс поддерживает XML-документы, и я начну свой новый пример, xtjava.java
, с создания нового объекта XmlDocument
для исходного документа, таблицы стилей XSLT и результирующего документа:
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.TransformEngine;
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();
.
.
.
После этого я создаю объект XSLTranformationEngine
и вызываю его метод createTransform
для создания нового объекта Transform
на основе таблицы стилей XSLT
:
import java.io.IOException;
.
.
.
class xtjava {
public static void main(String[] args)
throws IOException, SAXException, TransformException {
XmlDocument doc = new XmlDocument();
XSLTransformEngine transformEngine = new XSLTransformEngine();
Transform transform = transformEngine.createTransform(XSLdoc);
.
.
.
Затем я могу преобразовать XML-документ в объект результирующего документа следующим способом:
import java.io.IOException;
.
.
.
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);
.
.
.
Так завершается преобразование. Осталось только записать результирующий документ, newdoc
, на диск, что можно сделать при помощи объекта FileOutputStream
(листинг 10.10).
Листинг 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:xtxt.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
Теперь все сделано.
- XSLT и JavaScript в Internet Explorer
- Обработка ошибок разбора
- Internet Explorer и динамические стили
- Internet Explorer и участки данных XML
- Вызов Java непосредственно из процессоров XSLT
- Работа с API XSLT для Java
- Взаимодействие Xalan с Java
- Взаимодействие Saxon с Java
- Взаимодействие процессора XSLT Oracle с Java
- Взаимодействие XT с Java
- Преобразование XML в реляционную базу данных
- Применение XSLT с активными серверными страницами
- Применение XSLT с Java Server Pages
- Применение XSLT с сервлетами Java
- Эффективное взаимодействие процессов архитектуры Classic Server
- Изменения оптимизатора, направленные на совместимость
- Действие
- Взаимодействие Xalan с Java
- Глава 12 Краткий курс JavaScript
- Применение XSLT с сервлетами Java
- Программное обеспечение
- Асинхронное удаленное взаимодействие
- Нежелательное взаимодействие прототипов
- Взаимодействие Saxon с Java
- Взаимодействие процессора XSLT Oracle с Java
- Преобразование XML в реляционную базу данных