Процессоры XSLT
Процессор XSLT может быть как самостоятельным приложением, либо частью приложения, выполняющего обработку документов XML.
Описанные выше средства выполнения преобразований документов XML в языке Java позволяют написать собственный процессор XSLT, который можно вставить в любую программу обработки документов XML.
Для случая, когда исходный документ XML и таблица стилей XSL находятся в файле и преобразованный документ также выводится в файл, фрагмент программы преобразования будет иметь следующий вид:
File xmlFile = new File (имя-файла-XML);
File xsltFile = new File(имя-файла-XSL);
Source xmlSource = new StreamSource(xmlFile);
Source xsltSource = new StreamSource(xsltFile);
try {
result = new StreamResult(
new FileOutputStream(имя-выходного-файла)
);
}
catch(IOException e) {
System.out.println("I/O Error:" + e.toString());
}
TransformerFactory transFact =
TransformerFactory.newInstance();
Transformer trans =
transFact.newTransformer(xsltSource);
trans.setOutputProperty(OutputKeys.ENCODING,
"windows-1251");
trans.transform(xmlSource, result);
Существует множество готовых процессоров XSLT, которые можно использовать как отдельно, так и в составе разрабатываемых приложений. Основными критериями выбора процессора XSLT являются:
· поддерживаемые программные или языковые платформы;
· поддержка расширений;
· полнота реализации;
· скорость.
Наиболее популярными свободно распространяемыми процессорами XSLT являются:
· процессор MSXML (Microsoft XML Core Services);
· процессор Xalan (разработчик Apache XML Project);
· процессор Saxon (разработчик Майкл Кей).
Процессор MSXML (последняя версия 6.0) разработан для платформы MS Windows. В состав MSXML, помимо процессора XSLT версии 1.0 входят также SAX-анализатор, DOM-анализатор и некоторые другие компоненты. Этот процессор встроен в Internet Explorer, и, кроме того, может использоваться отдельно в виде утилиты командной строки msxsl.exe, которая вызывается следующим образом:
msxsl.exe файл-XML файл-XSLT -о выходной-файл
Процессор MSXML поддерживает пользовательские функции расширения, которые могут быть написаны на языках сценариев VBScript и JScript и включены непосредственно в сами преобразования.
Процессор Xalan создан в двух вариантах: для языковых платформ Java и C++. Он поставляется с открытым исходным кодом и открытым API, что делает возможным его интеграцию в другие приложения. Процессор Xalan Java поддерживает набор интерфейсов TrAX (Transformation API for XML – программный интерфейс преобразований для XML), определяющий стандартные модели и методы преобразования документов XML в программах на языке Java. Процессор Xalan Java так же можно запускать из командной строки с помощью команды:
java -jar xalan.jar org.apache.xalan.xslt.Process
-in файл-XML -xsl файл-XSLT -out выходной-файл
Процессор Xalan Java, как и Xalan C++, реализует дополнительную библиотеку функций (которая по сравнению с Xalan C++ также намного шире). Помимо этого, Xalan Java позволяет создавать функции и элементы расширения на Java и других языках программирования.
Процессор Saxon, так же как и Xalan, является бесплатным продуктом с открытым кодом. Процессор Saxon поддерживает TrAX, а также позволяет применять пользовательские анализаторы и сериализаторы и предоставляет API для Java. Так же, как и рассмотренные выше процессоры XSLT, его можно запускать из командной строки с помощью команды:
java -jar saxon.jar -о выходной-файл файл-XML файл-XSLT.
Расширения для Saxon могут быть созданы на языке Java в виде функций и элементов.
Кроме того, последние версии процессора Saxon поддерживают многие черты спецификации XSLT 2.0 (автор этого процессора является редактором спецификации XSLT 2.0).
В пакете программ XMLSpy практически полностью реализована спецификация XSLT 2.0, а также спецификация XPath 2.0.
Дата добавления: 2015-03-20; просмотров: 1326;