Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ППТС-2 / Лекции / Lect4-07.doc
Скачиваний:
7
Добавлен:
12.05.2015
Размер:
332.29 Кб
Скачать

5.3.3.2. Процессоры 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) разработан для платформыMSWindows. В составMSXML, помимо процессораXSLT версии1.0 входят такжеSAX-анализатор,DOM-анализатор и некоторые другие компоненты. Этот процессор встроен вInternetExplorer, и, кроме того, может использоваться отдельно в виде утилиты командной строкиmsxsl.exe, которая вызывается следующим образом:

msxsl.exeфайл-XML файл-XSLTвыходной-файл

Процессор MSXMLподдерживает пользовательские функции расширения, которые могут быть написаны на языках сценариевVBScriptиJScriptи включены непосредственно в сами преобразования.

Процессор Xalanсоздан в двух вариантах: для языковых платформJavaиC++. Он поставляется с открытым исходным кодом и открытымAPI, что делает возможным его интеграцию в другие приложения. ПроцессорXalanJavaпод­держивает набор интерфейсовTrAX(TransformationAPIforXML– программный интерфейс преобразований для XML), определяющий стан­дартные модели и методы преобразования документов XML в программах на языкеJava. ПроцессорXalanJavaтак же можно запускать из командной строки с помощью команды:

java -jar xalan.jar org.apache.xalan.xslt.Process

-in файл-XML -xsl файл-XSLT -out выходной-файл

Процессор XalanJava, как иXalanC++, реализует дополнительную библиотеку функций (которая по сравне­нию сXalanC++ также намного шире). Помимо этого,XalanJavaпозволяет создавать функции и элементы расширения наJavaи других языках программирования.

Процессор Saxon, так же как иXalan, является бесплатным продуктом с открытым кодом. ПроцессорSaxonподдерживаетTrAX, а также позволяет применять пользовательские анализаторы и сериализаторы и предоставляетAPIдляJava. Так же, как и рассмотренные выше процессорыXSLT, его можно запускать из командной строки с помощью команды:

java -jar saxon.jarвыходной-файлфайл-XMLфайл-XSLT.

Расширения для Saxonмогут быть созданы на языкеJavaв виде функций и элементов.

Кроме того, последние версии процессора Saxonподдерживают многие черты спецификацииXSLT2.0 (автор этого процессора является редактором спецификацииXSLT2.0).

В пакете программ XMLSpyпрактически полностью реализована спецификация XSLT 2.0, а также спецификацияXPath2.0.

Соседние файлы в папке Лекции