Технология преобразования
В общем случае в преобразовании участвуют три документа:
· входной документ, над которым выполняется преобразование (документ XML);
· входной документ, описывающий преобразование (документ XSLT);
· выходной документ – результат преобразования.
Процесс преобразования входного документа в соответствии с описанными правилами называется применением преобразования к входному документу или просто выполнением преобразования. Это выполнение осуществляют специальные программы, которые называются процессорами XSLT.
Документ XSLT, содержащий правила преобразования, также является документом XML (обычно с расширением .xsl), формируемым в соответствии с инструкциями и объявлениями языка XSLT, определенными в пространстве имен этого языка. Документ XSLT может также содержать элементы, которые определены в других пространствах имен, например, в пространстве имен функций XPath 2.0.
Процессор XSLT выполняет операции над исходным документом XML в три этапа:
· этап анализа;
· этап преобразования;
· этап сериализации.
На этапе анализа процессор XSLT преобразует входные текстовые документы в их иерархическое представление (рис. 5.3.1). В спецификации определены два типа процессоров XSLT: процессоры без использования схемы и процессоры с использованием схемы. Последний тип проверяет действительность документа, т.е. его соответствие своей схеме. При анализе входных документов обычно используется встроенный или внешний SAX-анализатор или DOM-анализатор.
Рис. 5.3.1. Анализ и преобразование входных документов
в иерархические структуры
На этапе преобразования процессор XSLT применяет правила преобразования, описанные в документе XSLT, к иерархической структуре входного документа XML. В результате преобразования получается иерархическая структура выходного документа (рис. 5.3.2).
Рис. 5.3.2. Преобразование документа XML процессором XSLT
На этапе сериализации полученная структура выходного документа представляется в текстовой форме заданного вида, которая может быть записана в файл или выведена на экран.
Спецификация XSLT 2.0 определяет четыре обязательных вида сериализации, которые должен поддерживать процессор XSLT: документ XML, документ HTML, документ XHTML и чисто текстовый документ, не содержащий элементов разметки.
Конкретная реализация процессора XSLT может поддерживать и другие виды сериализации, например, формат Word или формат PDF.
Этап сериализации показан на рис. 5.3.3.
Рис. 5.3.3. Сериализация структуры выходного документа процессором XSLT
В отличие от языка схем, спецификация языка XSLT позволяет вводить собственные функции и элементы и использовать их в преобразованиях. Однако использование расширений может привести к потере переносимости при выполнении преобразований на различных компьютерных платформах.
Расширения можно создавать на различных языках программирования, но наиболее часто используется язык Java, поскольку в нем есть средства, облегчающие разработку новых элементов и функций.
Дата добавления: 2015-03-20; просмотров: 1014;